文档介绍:MSP430g2553串口通信MSP430的不同型号,其串行通讯工作模式是一样的。以MSP430G2553为例进行说明。MSP430G2553是20个引脚的16位单片机。具有内置的16位定时器、16k的FLASH和512B的RAM,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外还具有一个10位的模数(A/D)转换器。。。串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。。、UART模式在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。波特率的产生是在本地完成的。异步帧格式由1个起始位、7或8个数据位、校验位(奇/偶/无)、1个地址位、和1或2个停止位。一般最小帧为9个位,最大为13位。(一)UART的初始化单片机工作的时钟源来自内部三个时钟或者外部输入时钟,由SSEL1、SSEL0,以决定最终进入模块的时钟信号BRCLK的频率。所以配置串行通讯的第一步就是选择时钟。通过选择时钟源和波特率寄存器的数据来确定位周期。所以波特率的配置是串行通讯中最重要的一部分。波特率设置用三个寄存器实现:UxBR0(选择控制器0):波特率发生器分频系数低8位。UxBR1(选择控制器1):波特率发生器分频系数高8位。UxMCTL数据传输的格式,以及数据传输的模式是通过配置控制寄存器UCTL来进行设置。接收控制部分和发送控制部分。首先需要串行口进行配置、使能以及开启中断。串口接收数据一般采用中断方式,发送数据采用主动发送。当接收到一个完整的数据,产生一个信号:URXIFG0=1(类似于51单片机的接收中断标志位),表示接收完整的数据。当数据正在发送中,UTXIFG0=1,此时不能再发送数据,必须等当前数据发送完毕(UTXIFG0=0)才能进行发送。程序实例如下:VoidUART_init(){WDTCTL=WDTPW+WDTHOLD;P1SEL|=0x06;//I/O口的功能寄存器配置。为1时作为模块输出或者输出,0为端口输入或者输出。,。P2DIR=0x04;//串口发送端为输出,串口接收端为输入。0为输入,1为输出U0CTL|=CHAR;//配置控制寄存器,数据类型为8位。U0TCTL|=SSEL0;//选择时钟UCLK=ACLK。U0BR0=0x45;//分频系数的高8位,8MHz时钟下波特率为115200U0BR1=0x00;//分频系数的低8位。U0MCTL=0x00;//波特率的调整。U0CTL&=~SWRST;//系统复位。只有对SWRST复位,USART才能重新被允许。而接收和发送允许标志URXE和UTXE不会因SWRST而更改。ME1|=UTXE0+URXE0;//使能USART0TXD/RXD模块USART中特有的使能配置。IE1|=URXIE0;//使能USART0接收中断_EINT();//开启全部中断。_BIS_SR(LPM0_bits+GIE);//初始化完毕,进入睡眠状态。等待工作。该程序直接调用。}发送数据函数:__interruptvoidusart0_rx(void){while(!(IFG1&UTXIFG0));//判断