- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MSP430程序库二、UART异步串口
HYPERLINK /Engin/archive/2011/07/06/2098990.html MSP430程序库二UART异步串口
串行通信接口是处理器与其他设备进行数据通信最常用的方式之一。我的这个程序库是针对MSP430f14系列和MSP430f16系列的,我常用的单片机是这两款:msp430f149,msp430f169。这两款单片机中均有两个增强型串行通信接口,都可以进行同步或是异步通信,甚至169的模块USART0还能进行进行I2C协议通信。在这里,我们只讨论异步串行通信。
硬件介绍:
MSP单片机的USART模块可以配置成SPI(同步通信)模式或UART(异步通信)模式,这里只讨论UART方式。UART数据传输格式如下:
起始位,数据位由高到低7/8位,地址位 0/1位,奇偶校验位 奇偶或无,停止位1/2位。数据位位数、地址位、奇偶校验位、停止位均可由单片机内部寄存器控制;这两款单片机都有两个USART模块,有两套独立的寄存器组;以下寄存器命中出现x代表0或是1,0代表对应0模块的寄存器,1代表对应1模块的寄存器;其中,与串口模式设置相关的控制位都位于UxCTL寄存器,与接收相关的控制位都位于UxRCTL寄存器,与发送相关的控制位都位于UxTCTL寄存器;波特率设置用UxBR0、UxBR1、UxMCTL三个寄存器;接收与发送有独立的缓存UxRXBUF、UxTXBUF,并具有独立的移位寄存器和独立的中断;中断允许控制位位于IE1/2寄存器,中断标志位位于IFG1/2寄存器。
波特率设置:430的波特率设置用三个寄存器实现, UxBR0:波特率发生器分频系数低8位。 UxBR1:波特率发生器分频系数高8位。 UxMCTL:波特率发生器分频系数的小数部分实现。 设置波特率时,首先要选择合适的时钟源:USART模块可以设置的时钟源有UCLK引脚、ACLK、SMCLK;对于较低的波特率(9600以下),可选ACLK作为时钟源,这样,在LPM3(低功耗3)模式下,串口仍能正常发送接收数据;另外,由于串口接收过程有一个三取二判决逻辑,这至少需要三个时钟周期,因此分频系数必须大于3;波特率高于9600时,将不能使用ACLK作为时钟源,要调为频率较高的SMCLK作为时钟源;另外还可以外部输入UCLK时钟。分频系数计算公式如下:
小数分频是MSP430单片机的串口特色之一,UxMCTL寄存器的作用就是控制小数的分频,控制方法如下:对应位是1,则分频系数加一,0则分频系数不变;小数分频器会自动依次取出每一位来调整分频系数。其计算方法:可以先计算小数部分1的个数,然后把1均匀的放入UxMCTL的8位中,这样计算比较简单,分频系数的小数部分乘以8即得到1的位数,查表得到对应的UxMCTL值;另外一种通过计算每一位的错误率,交互计算,直到得到最小错误率的UxMCTL值,这种方法比较复杂,但得到的小数分频误差更小,这种方法也是TI给的计算方法,详细参考 HYPERLINK /cn/litv/pdf/slau049f UserGuide。
另外,有关寄存器,以及其他单片机硬件有关知识请参考 HYPERLINK /Engin/archive/2011/07/06/ 德州仪器提供的 HYPERLINK /cn/mcu/docs/mcuprodtechdoc.tsp?sectionId=95tabId=1204familyId=911techDoc=6docCategoryId=6viewType=mostrecent 用户指南和 HYPERLINK /cn/mcu/docs/mcuprodtechdoc.tsp?sectionId=95viewType=mostusefultabId=1204rootFamilyId=4familyId=911docCategoryId=1 数据手册等资料。
程序实现:
宏定义:是程序具有更好的移植性。
对模块的寄存器进行宏定义,把0/1换成x,使用时,只需更改宏定义即可更改程序是使用哪个模块;这样程序就具有了比较好的移植性。
/***********************************宏定义*********************************/
#define UxCTL U0CTL
#define UxRCTL U0RCTL
#define UXTCTL U0TCTL
#define UxBR0 U0BR0
#define UxBR1 U0BR1
#define UxMCTL U0MCTL
#define UxRXBUF U0RXBUF
#define UxTXBUF U0TXBUF
#define UxME U
您可能关注的文档
最近下载
- 专题22.7 二次函数图象与系数的关系选填压轴专项训练(30道)(解析版).pdf VIP
- 浙江省嘉兴市第一中学2024-2025学年高一上学期10月阶段性测试物理试卷(含答案).pdf VIP
- 1.新版历年全国高考英语高频词汇必备表汇总打印版.docx
- 矿山生态修复技术规范第3部分:金属矿山.pdf VIP
- 〖地 理〗世界的地形第一课时说课稿-2024-2025学年七年级地理上学期(湘教版2024).docx VIP
- 《物理学发展史》课件.ppt VIP
- 《物理学的发展史》课件.docx VIP
- 2026秋季中国电建集团北京勘测设计研究院有限公司校园招聘笔试参考题库附答案解析.docx VIP
- 浙江省嘉兴市2023-2024学年高一上学期10月月考物理含解析.pdf VIP
- 美国特色介绍.pptx VIP
文档评论(0)