51单片机波特率公式

2020-02-03 10:13发布

  1.         //-----------------------------------------------------
  2.         //查询波特率是否加倍
  3.              TimerTH = 256 - (Focs/(384*2400));
  4.              TimerTL = 256 - (Focs/(384*2400));
  5.              P0 = TimerTH;
复制代码请问为何这样算出来的值不是0xF4 而是 0x74呢?
如果直接用公式笔算是0xf4,但进过单片就就是0x74了?为何?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
HeP028
2020-02-04 07:51
lmserver 发表于 2012-10-9 04:10
编译器会自动转换类型
256=0X100,是双字节,如果编译器把它转为单字节就是0X00
试下这样写:
  1. //-----------------------------------------------------
  2.            TimerTH = 256 - (Focs/(384*getUsersetbaudrate())) | 0x80;
  3.            TimerTL = 256 - (Focs/(384*getUsersetbaudrate())) | 0x80;
  4.         //-----------------------------------------------------
  5.         P0 = TimerTH;
复制代码这样就么有问题了。 | 0x80,

一周热门 更多>