【TI 技术资料分享】基于MSP430F149单片机的串口0驱动程序
2019-07-30 18:32发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
基于MSP430F149单片机的串口0驱动程序
基于MSP430F149单片机的串口0驱动程序.zip
(1.15 KB, 下载次数: 4)
2015-3-10 12:03 上传
点击文件名下载附件
- #include "msp430x14x.h"
- #include "Uart0.h"
- //增加与PC机的握手协议--开始
- void Iint_Uart0(void) //初始化com0
- {
- UCTL0&=~SWRST; //SWRST复位,USART允许
- UCTL0=0X10; //8位数据位,1位停止位,无效位
- UBR00=0X03;
- UBR10=0X00; //使用32KHz,波特率为9600
- UMCTL0=0X4A;
- UTCTL0=0X10; //选定ACLK(32KHz晶振)为时钟源
-
- ME1|=UTXE0+URXE0;
- //ME2|=UTXE1;
- P3SEL|=0X30; //P3.4 P3.5 0011 0000
- P3DIR|=0X28; // 0010 0000
- IE1|=URXIE0;
-
- }
- void fnUart0_Send_Byte(unsigned char aa)
- {
- P3OUT|=BIT3;
- TXBUF0=aa;
- while((UTCTL0&0X01)==0X00)
- {
- ;
- }
- P3OUT&=~(BIT3);
- }
- #pragma vector=USART0RX_VECTOR
- __interrupt void usart0_rx (void)
- {
-
- switch(cRcv_Stat0)
- {
- case 0:
- new_data=RXBUF0;
- if((new_data==0xa6)&&(last_data==0x02))
- {
- PC_data[1]=new_data;
- PC_data[0]=last_data;
- cRcv_Stat0=1; //是帧头
- cal=2;
-
- }
- else //
- {
- last_data=new_data;
- cal=0;
- cRcv_Stat0=0;
- }
- break;
-
- case 1:
- PC_data[cal]=RXBUF0; //帧数据
-
- if((PC_data[cal]==0x0a)&&(PC_data[cal-1]==0x0d))
- {
- cValid_flag=0x55;
- cRcv_Stat0=0;
- cal=0;
- new_data=0;
- last_data=0;
-
- }
- else
- {
- cal++;
- }
- break;
-
- default:
- cRcv_Stat0=0;
- break;
-
- }
-
- }
- //增加与PC机的握手协议--结束
复制代码
一周热门 更多>