请教关于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
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之类的也是符合的

一周热门 更多>

相关问题

    相关文章