目录
购买链接:http://shop115904315.taobao.com/
官方QQ群:457586268
第一节 串口介绍MSP430F5438A单片机带有通用串行通信接口(USCI),在同一个硬件模块下支持多种串行通信模式。不同的USCI模块支持不同的模式,每个不同的USCI模块以不同的字母命名,例如,USCI_A,USCI_B等等。如果在一个设备上实现了多个相同的USCI模块,那这些模块将以递增的数字命名。例如当一个设备上有两个USCI_A模块时,这两个模块应该被命名为USCI_A0和USCI_A1。可以通过查阅设备数据表来了解设备包含有哪些USCI模块。
USCI_Ax模块支持的功能:
1、UART模式;
2、脉冲整形的IrDA;
3、自动波特率检测的LIN通信;
4、SPI模式。
USCI_Bx模块支持的功能:
1、I2C模式;
2、SPI模式。
本教程中主要介绍通用异步收发器(UART)。USCI_Ax模块通过两个外部引脚:发送引脚UCAxRXD和接收引脚UCAxTXD把MSP430和一个外部系统连接起来。当UCSYNC位被清零时就选择了UART模式。
UART模式的特征包括:
1、传输7或8位数据,可采用奇校验、偶校验或者无校验;
2、独立的发送和接收以为寄存器;
3、独立的发送和接收数据缓存器;
4、支持最低位优先或最高位优先的数据发送和接收方式;
5、针对多机通信的内置空闲检测和地址位的通信协议;
6、接收器开始边缘检测来自动从低功耗模式中唤醒;
7、支持带小数的可编程的调制波特率;
8、错误检测和修正的状态标志位;
9、地址检测的状态标志位;
10、独立的发送和接收中断。
第二节 串口基础寄存器介绍
串口寄存器列表如下图所示:
1.控制寄存器0UCAxCTL0
UCPEN:奇偶校验使能位
0,禁止校验;
1,允许校验。
UCPAR:校验选择位,该位在校验禁止时无效
0,奇校验;
1,偶校验。
UCMSB:高位在前选择,控制接收和发送移位寄存器的方向
0,低位在前;
1,高位在前。
UC7BIT:字符长度。选择7位或者8位字符长度
0,8位数据;
1,7位数据。
UCSPB:停止位选择,停止位的位数
0,1位停止位;
1,2位停止位。
UCMODEx:USCI模式。当UCSYNC=0时,UCMODEx位选择异步模式。
00,串口模式;
01,空闲多机通信模式;
10,地址位多机通信模式;
11,波特率自动检测的UART模式。
UCSYNC:同步模式使能
0,异步模式;
1,同步模式。
2.控制寄存器1(UCAxCTL1)
UCSSELx:USCI时钟源选择。
00,UCAxCLK
01,ACLK
10,SMCLK
11,SMCLK
UCRXEIE:接收出错中断允许位
0,禁止中断;
1,允许中断。
UCBRKIE:字符接收打断中断允许位
0,禁止中断;
1,允许中断。
UCDORM:睡眠状态
0,不睡眠,所有接收字符都会设置UCRXIFG标志;
1,睡眠,只有在空闲线路之前的字符或在地址位置位的字符能置位UCRXIFG标志。在自动波特率检测的UART模式中,只有打断和同步域的联合能置位UCRXIFG标志位。
UCTXADDR:发送地址位。
0,发送的下一帧为数据;
1,发送的下一帧为地址。
UCTXBRK:发送被打断。在自动波特率检测的UART模式下,0x55H必须被写入
发送缓冲UCAxTXBUF中以产生要求的中断/同步域。否则在发送缓冲中必须
写入0;
0,发送的下一帧不是打断;
1,发送端下一帧是打断或中断/同步域。
UCSWRST:软件复位允许位
0,禁止。USCI复位释放操作;
1,允许。在复位状态下USCI保持逻辑电平。
3.波特率控制寄存器(UCAxBR0和UCAxBR1)
UCBRx:波特率发生器的时钟分频设置。分频因子为16位(UCAxBR0+UCAxBR1*256)。
4.调制控制寄存器(UCAxMCTL)
UCBRFx:第一个调制阶段选择。当UCOS16=1时,这些位决定了BITCLK16的调
制模式。当UCOS16=0时,忽略这些位的作用。
UCBRSx:第二个调制阶段选择。这些位决定了BITCLK的调制模式。
UCOS16:过采样模式使能
0,禁止;
1,使能。
6.状态寄存器(UCAxSTAT)
UCLISTEN:监听使能位
0,禁止;
1,允许。UCAxTXD在内部反馈给接收器。
UCFE:帧错误标志
0,没有错误;
1,出错。
UCOE:溢出标志位。当UCAxRXBUF被读取之前又有一个字符传入,则该位会被
置位。当读取UCAxRXBUF时会自动清除,并且不能软件清零,不然不能正
常工作。
0,无错误;
1,溢出错误。
UCPE:校验错误标志。当UCPEN=0时,UCPE的读取值为0。
0,没有错误;
1,接收的字符校验错误。
UCBRK:检测打断错误
0,没有错误;
1,打断错误。
UCRXERR:接收错误标志位。当UCRXERR=1时,UCFE,UCPE或者UCOE也被置
位。读取UCAxRXBUF时清零UCRXERR。
0,无错误;
1,接收错误。
UCADDR:在地址位多机通信模式中,地址被接收。读取UCAxRXBUF来清零。
0,接收的是数据;
1,接收的是地址。
UCIDLE:在空闲线多机通信模式中,空闲线被检测。读取UCAxRXBUF来清零。
0,没有检测到空闲线;
1,检测到空闲线。
UCBUSY:USCI忙。该位显示是否正在接收或发送数据。
0,USCI空闲;
1,USCI正在发送或接收。
7.接收缓存寄存器(UCAxRXBUF)
UCRXBUFx:只读寄存器。
8.发送缓存寄存器(UCAxTXBUF)
UCTXBUFx:存放发送的数据,可读可写。
9.IrDA发送控制寄存器(UCAxIRTCTL)
UCIRTXPLx:发送脉宽长度
UCIRTXCLK:IrDA发送脉冲时钟选择
0,BRCLK;
1,当UCOS16=1时,为BITCLK16,否则为BRCLK。
UCIREN:IrDA编解码使能
0,禁止编解码;
1,使能编解码。
10.IrDA接收控制寄存器
UCIRRXFLx:接收滤波长度
UCIRRXPL:接收输入极性
0,当检测到光脉冲时发送高电平;
1,当检测到光脉冲时发送低电平。
UCIRRXFE:接收过滤器使能
0,禁止接收过滤器;
1,使能接收过滤器。
11.自动波特率控制寄存器(UCAxABCTL)
UCDELIMx:打断/同步分隔符长度
00,1位时长
01,2位时长
10,3位时长
11,4位时长
UCSTOE:同步域超时错误
0,没有错误;
1,长度超出可测时长。
UCBTOE:打断超时错误
0,没有错误;
1,打断域长度超出22位时长。
UCABDEN:自动波特率检测允许
0,禁止波特率检测;
1,允许波特率检测。
12.中断允许寄存器(UCAxIE)
UCTXIE:发送中断允许
0,禁止中断;
1,允许中断。
UCRXIE:接收中断允许
0,禁止中断;
1,允许中断。
13.中断标志寄存器(UCAxIFG)
UCTXIFG:发送中断标志位。当UCAxTXBUF为空时,UCTXIFG置位。
0,没有中断;
1,有中断。
UCRXIFG:接收中断标志位。当UCAxRXBUF接收到一个完整的字符时,UCRXIFG
置位。
0,没有中断;
1,有中断。
14.中断向量寄存器(UCAxIV)
详细的寄存器介绍可以参考官方数据手册中的相关章节。
第三节 实验开发板上集成里USB转串芯片CH340G,所以直接使用USB数据线连接电脑,使用串口调试助手来进行通信。硬件连接如下图所示:
开发接口连接可以参考《开发接口连接教程》,路径为:..\MSP430\0.从这里开始\2.快速上手。
开发板供电可以参考《如何上电》教程,路径为:..\MSP430\0.从这里开始\0.开机测试。
下面打开串口实验工程文件UART.eww,路径为:..\MSP430\03 教程\04 UART,如下图所示:
打开之后,点击编译按钮,下方出现编译完成并且没有错误之后,点击DEBUG按钮进行仿真调试,同时程序也下载进单片机中,如下图所示:
进入仿真之后就可以看到仿真界面,如下图所示:
点击全速云心按钮,运行程序,可以进行暂停或者停止操作,如下图所示:
第四节 实验现象
完成第三节的操作之后,就会看到串口调试助手打印出的相关信息,发送一个字符就会将该字符加1之后返回,如下图所示: