请教关于msp430串口波特率计算的问题

2019-03-24 13:59发布

在用户手册上看到如果时钟为32.768K,波特率设置为9600,那么uxbr0 = 0x03,uxmctl=0x4a.不太明白uxmctl=0x4a的由来。按照公式计算出来是3.41,整数部分为3,小数部分为0.41,0.41*8去整后得到为3,怎么变换得到0x4a呢?看网上有人解答说是1的分均匀化?求解! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
3g465
1楼-- · 2019-03-24 17:31
你用的什么系列的?5系列貌似已经没有UxMCTL控制位了。
我搜了一下。
这个3表示在UxMCTL中的8位里要有3个1,并且,UxMCTL分为First Stage Modulation和Second Stage Modulation,也就是前者为高4位,取值范围0-F,后者为低4位,注意后4位最好选择偶数。把上步的到的小数部分取整后的数值分散到高位和低位,如3,可以写为0x16。
-------
大意就是,你的出来的3,要在UxMCTL的8位中占有3个1.而且后4位中1的个数最好是偶数。所以说0x4a= 01001010,这样,有3个1,且后4位1的个数为偶数。这样的话0x16之类的也是符合的
qianguang1989
2楼-- · 2019-03-24 17:55
< :TI_MSP430_内容页_SA7 --> 哦,明白了!谢谢!
cl1217982730
3楼-- · 2019-03-24 19:42
 精彩回答 2  元偷偷看……
lijunfeng518
4楼-- · 2019-03-24 23:32
学习了~~~~

一周热门 更多>

相关问题

    相关文章