首先说一下什么是USART。USART:(UniversalSynchronous/Asynchronous Receiver/Transmitter) 通用同步/异步串行接收/发送器。MSP430F149的USART模块可以工作在UART模式、IIC模式、SPI模式。这里只讲一下UART模式,其他模式自己参照用户指南配置一下寄存器使用就行,相信学会了UART模式其他模式就SO EASY了。
通信的重要性就不用说了,那么学习通信涉及到比较多的东西,我们学习使用单片机的通信功能模块也会涉及到比较多的东西,我不建议一下子什么协议啦什么的全都搞的明白通透,还是本着用的目的先会用,然后在用的过程中逐渐研究通透。那么我们就先了解一下使用USART模块的寄存器,先会用再说。
USART模块工作在UART模式时的寄存器情况:
1、 通用串口通信模块涉及到的主要寄存器,四类:
模块基本操作控制寄存器:U0CTL、U1CTL共两个。分别控制两个独立的串口通讯模块。
发送和接收操作控制寄存器:U0TCTL、U1TCTL共两个分别控制两个串口通讯模块的发送操作。U0RCTL、U1RCTL共两个分别控制两个串口通讯模块的接收操作。
波特率控制寄存器:U0MCTL、U0BR0、U0BR1、U1MCTL、U1BR0、U1BR1共六个,前三个控制串口通讯模块0的波特率,后三个控制串口通讯模块1的波特率。
接收和发送数据寄存器:U0RXBUF、U1RXBUF共两个,分别存放两个串口通讯模块的接收到的数据。U0TXBUF、U1TXBUF共两个,分别存放两个串口通讯模块的要发送的数据。
特别注意的是:还有几个寄存器是使用串口通讯模块必须用到的。分别是中断使能寄存器、模块使能寄存器、中断标志寄存器。
中断使能寄存器有IE1和IE2两个,
IE1控制
UTXIE0和URXIE0(串口通讯模块0的发送和接收中断)、
ACCVIE(Flash存储器非法访问中断)、
NMIIE(非屏蔽中断使能)、
OFIE(晶振异常中断)、
WDTIE(看门狗中断)
共六个中断。
IE2控制
UTXIE1和URXIE1(串口通讯模块1的发送和接收中断)
共两个中断。
模块使能寄存器有ME1何ME2两个。
EM1控制
UTXE0(串口通讯模块0的传输使能)
URXE0/USPIE0(串口通讯模块0作为UART时控制UART的接收使能,当串口通讯模块0作为SPI时控制SPI使能)
EM2控制
UTXE1(串口通讯模块1的传输使能)
URXE1/USPIE1(串口通讯模块1作为UART时控制UART的接收使能,当串口通讯模块1作为SPI时控制SPI使能)
中断标志寄存器有IFG1和IFG2两个。
IFG1控制:
UTXIFG0(USART0发送中断标志)、URXIFG0(USART0接收中断标志)、NMIIFG(非屏蔽中断标志)、OFIFG(晶体异常中断标志)、
WDTIFG(看门狗中断标志)
IFG2控制
UTXIFG1(USART1发送中断标志)、URXIFG1(USART1接收中断标志)
除了这些特殊功能寄存器,用到USART模块常常需要用中断功能,UART中断向量有:
USART0接收中断向量:UART0RX_VECTOR
USART0发送中断向量:UART0TX_VECTOR
USART1接收中断向量:UART1RX_VECTOR
USART1发送中断向量:UART1TX_VECTOR
因为USARTx有UART、SPI、IIC三种模式,所以每一种模式的寄存器配置都有所不同,具体参考芯片的用户指南。