MSP430单片机串口通信实例(已验证)
/*main.c 功能串口通信 日期2013.9.11 姓名MRT notice无论接收发送只要标志位TIRI置位立马进入中断一般情况即使中断 不允许的情况下buffer中任然接收到数据并存储 * ** / includemsp430 xl4x.hH includewhole.h includemain.h struct power guss; unsigned char buffer_value; void main WDTCTL WDTPW WDTHOLD; init_usart; init_clk; _eint; whilel } } pragma vector USARTORX_VECTOR _interrupt void usartO_rxvoid buffer_value; guss.buffer[O] RXBUFO; ifbuffer_valuel guss.buffer[l] RXBUFO; guss.value guss.buffer[l]; guss.value4; } ifbuffer_value2 guss.buffer[2] RXBUFO; buffer_value 0; } /**basic.c 功能串口通信基础函数配置 日期2013.9.11 姓名MRT notice无论接收发送只要标志位(TIRI)置位 立马进入中断一般情况即使中断 不允许的情况下buffer中任然接收到数据并存储 includemsp430 xl4x.hH includewhole.h includemain.h void init_usart UTCTLO |SSEL1;//串口时钟源选择的是SMCLK UBR00 0Xa0; UBR10 0X01; UMCTLO OXcO;// 波特率 19200 UCTLO SWRST; UCTLO CHAR; MEI |UTXEO URXEO;//串口接收中断打开 IE1 |URXIEO;〃使能接收中断 } void init_clk unsigned int iqO; BCSCTL1XT2OFF;〃打开 XT2 振荡器 IFG1 OFIFG; //清除振荡器失效标志 BCSCTL2 SELM_2SELS; 〃选择 MCLK、SMCLK 为 XT, for iqO OxFF; iqO 0; iqO-;// 延时,等待 XT2 起振 //判断XT2是否起振 while IFG10FIFG 0; P4SEL |BIT1;// P4.1 接内部模块 TBCCRO 400; TBCCTL1 OUTMOD_7;// CCR1 reset/set TBCCR1 50;//CCR1 PWM duty cycle TBCTL TBSSEL_2 MC_1;// ******************************Qnrl****************************************