MSP430g2553 串口通信 MSP430 的不同型号,其串行通讯工作模式是一样的。以MSP430G2553 为例进行说明。MSP430G2553 是20 个引脚的16 位单片机。具有内置的16 位定时器、16k 的FLASH 和 512B的RAM,以及一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外还具有一个10 位的模数(A/D)转换器。其引脚排布如图 1.1 所示。其功能表如表 1.1 所示。 串行通讯模块主要由三个部分组成:波特率生成部分、发送控制器以及接收控制器。如图1.2 所示。 一、UART 模式 在异步模式下,接收器自身实现帧的同步,外部的通讯设备并不使用这一时钟。波特率的产生是在本地完成的。异步帧格式由 1 个起始位、7 或 8 个数据位、校验位(奇/偶/无)、1 个地址位、和 1 或 2 个停止位。一般最小帧为9 个位,最大为13 位。 图 1.2 串行通讯模块内部结构图 图 1.1 MSP430G2553 引脚图 (一)UART 的初始化 单片机工作的时钟源来自内部三个时钟或者外部输入时钟,由SSEL1、SSEL0,以决定最终进入模块的时钟信号 BRCLK 的频率。所以配置串行通讯的第一步就是选择时钟。 通过选择时钟源和波特率寄存器的数据来确定位周期。所以波特率的配置是串行通讯中最重要的一部分。波特率设置用三个寄存器实现:UxBR0(选择控制器 0):波特率发生器分频系数低 8 位。UxBR1(选择控制器 1):波特率发生器分频系数高 8 位。UxMCTL 数据传输的格式,以及数据传输的模式是通过配置控制寄存器 UCTL 来进行设置。 接收控制部分和发送控制部分。首先需要串行口进行配置、使能以及开启中断。串口接收数据一般采用中断方式,发送数据采用主动发送。当接收到一个完整的数据,产生一个信号:URXIFG0=1(类似于 51 单片机的接收中断标志位),表示接收完整的数据。当数据 正 在 发 送 中 ,UTXIFG0=1 ,此 时不 能再 发 送 数 据 ,必 须等 当 前 数 据 发 送 完毕(UTXIFG0=0)才能进行发送。程序实例如下: Void UART_init() { WDTCTL = WDTPW + WDTHOLD; P1SEL|= 0x06; //I/O 口的功能寄存器配置。为 1 时作为模块输出或者输出,0为端口输入或者输出。配置 P1.1,P1.2 为串行口。 P2DIR=0x04; //串口发送端为输出,串口接收端为输入。0 为输入,1 为输出 U0CTL |= CHAR; // 配置控制寄存器,数据类型为 8 位。 U0TCTL |= SSEL0; // 选择时钟UCLK= ACLK。 ...