usart0,4mhz,9600.c

来自「包含了msp430单片机上的ADC、定时器A、定时器B、基础时钟、看门狗的初始化」· C语言 代码 · 共 48 行

C
48
字号
/**********************************************************/
//MSP430 Advanced Developping Components - [BaseComponents_42.C]
////USART0, UART 9600 Echo ISR, HF XTAL SMCLK
////->>> http://www.dutzm.cn
////->>> tel :(0)13130044096
/**********************************************************/
//MSP430高级实验开发组件 - USART0,4MHz,9600
//时钟设置:
////SMCLK = MCLK = UCLK0 = LFXT1 = 4MHz
////@9600 = 4M/9600 = 416.66
//当前演示程序功能描述:
////模拟接收端,在RX中断程序中将接收到的数据发送回去
/*********************************************************/

#include <msp430x14x.h>

void main(void) {
	unsigned char i;
	WDTCTL = WDTPW + WDTHOLD;		//停止看门狗
	
	P3SEL |= (BIT4 + BIT5);			//P34,P35 USART0 TXD/RXD
	
    BCSCTL1 &= ~XT2OFF;    //XT2 = HF XTAL
    do
    {
        IFG1 &= ~OFIFG;
        for (i=0xFF;i>0;i--);
    } while((IFG1&OFIFG));
    BCSCTL2 |= (SELM1 + SELS);   //MCLK = XT2,SMCLK = XT2
	
	ME1 |= UTXE0 + URXE0;			//允许USART0 TXD/RXD
	UCTL0 |= CHAR;				//8-bit
	UTCTL0 |= SSEL0 + SSEL1;			//UCLK = MCLK
	UBR00 = 0x9F;
	UBR10 = 0x01;
	UMCTL0 = 0xB5;				//Modulation
	UCTL0 &= ~SWRST;			//初始化USART状态机
	IE1 |= URXIE0;				//允许USART0 RX中断
	
	_BIS_SR(GIE);
}

#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void) {
	while(!(IFG1&UTXIFG0));			//等待
	TXBUF0 = RXBUF0;			//将收到的数据发送出去
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?