第一节 串口介绍 3 第二节 串口基础寄存器介绍 4 第三节 实验 9 第四节 实验现象 11 官网地址:http://www.fengke.club 购买链接: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之后返回,如下图所示:
|