3859|11

43

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

波特率设置 [复制链接]

 
          大家好,我在写串口通信的时候,设置波特率9600时,计数器这样设置:TH1=256-11059200/(12*16*9600),发现有问题,接收不到,然后就改成了:TH1=256-11059200/12/16/9600就行了,我就奇怪了,这两个表达式不是一样的效果么? 去调试观测,发现两个表达式结果真的不一样,前面是TH1=0xEA,后者是TH1=0XFA.    请问各位大神,怎么去解释呢?
此帖出自51单片机论坛

最新回复

从可靠性角度讲,这当然有问题,结果亦然,否则楼主干嘛疑惑?机器总有其局限性,人该明白这一点。想看得清楚、修改容易同时兼顾严谨性当然有的是办法,当然会麻烦一些,但这才是好习惯。  详情 回复 发表于 2017-3-10 12:16
点赞 关注
 

回复
举报

1万

帖子

24

TA的资源

版主

沙发
 
整数计算溢出了。默认好像是2字节整数。
此帖出自51单片机论坛

点评

问题解决了,确实是。 那平时怎么看出是溢出呢?  详情 回复 发表于 2017-2-28 15:24
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

板凳
 
乘积溢出了。
你写成TH1=256-110592/(12*16*96),指定行。
此帖出自51单片机论坛
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

4
 
或者写成,TH1=256-11059200/(12*16*9600L)
此帖出自51单片机论坛

点评

厉害!问题解决了~ 第一次见这种写法,加L是什么功能?  详情 回复 发表于 2017-2-28 15:25
 
 
 

回复

43

帖子

0

TA的资源

一粒金砂(中级)

5
 
dcexpert 发表于 2017-2-28 14:40
整数计算溢出了。默认好像是2字节整数。

问题解决了,确实是。 那平时怎么看出是溢出呢?
此帖出自51单片机论坛
 
 
 

回复

43

帖子

0

TA的资源

一粒金砂(中级)

6
 
gs001588 发表于 2017-2-28 14:50
或者写成,TH1=256-11059200/(12*16*9600L)

厉害!问题解决了~    第一次见这种写法,加L是什么功能?
此帖出自51单片机论坛

点评

L表示长整形  详情 回复 发表于 2017-2-28 15:27
 
 
 

回复

664

帖子

108

TA的资源

纯净的硅(中级)

7
 
本帖最后由 gs001588 于 2017-2-28 15:30 编辑
liangzhanghuai 发表于 2017-2-28 15:25
厉害!问题解决了~    第一次见这种写法,加L是什么功能?

L表示长整形,51中的长整形就是32位,4亿大小那个;整形是16位,16x12x9600显然超过16位了
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

142

TA的资源

版主

8
 
确实是溢出问题,但即使未溢出,直接列表达式的方法实在太懒,应直接进行常数赋值,自己计算好即可。最好同时计算好多种可能用到的波特率,然后用“注释”的方法进行选择。
此帖出自51单片机论坛

点评

写法没有问题,看着清楚,也好改,编译器会做赋值优化  详情 回复 发表于 2017-3-10 12:00
说得很对,谢谢指正不良习惯  详情 回复 发表于 2017-2-28 15:59
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

43

帖子

0

TA的资源

一粒金砂(中级)

9
 
chunyang 发表于 2017-2-28 15:42
确实是溢出问题,但即使未溢出,直接列表达式的方法实在太懒,应直接进行常数赋值,自己计算好即可。最好同 ...

说得很对,谢谢指正不良习惯
此帖出自51单片机论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

10
 
哦,原来是溢出,看了此贴,又学到新东西了
此帖出自51单片机论坛
 
 
 

回复

4005

帖子

0

TA的资源

版主

11
 
chunyang 发表于 2017-2-28 15:42
确实是溢出问题,但即使未溢出,直接列表达式的方法实在太懒,应直接进行常数赋值,自己计算好即可。最好同 ...

写法没有问题,看着清楚,也好改,编译器会做赋值优化
此帖出自51单片机论坛

点评

从可靠性角度讲,这当然有问题,结果亦然,否则楼主干嘛疑惑?机器总有其局限性,人该明白这一点。想看得清楚、修改容易同时兼顾严谨性当然有的是办法,当然会麻烦一些,但这才是好习惯。  详情 回复 发表于 2017-3-10 12:16
 
 
 

回复

1万

帖子

142

TA的资源

版主

12
 
huo_hu 发表于 2017-3-10 12:00
写法没有问题,看着清楚,也好改,编译器会做赋值优化

从可靠性角度讲,这当然有问题,结果亦然,否则楼主干嘛疑惑?机器总有其局限性,人该明白这一点。想看得清楚、修改容易同时兼顾严谨性当然有的是办法,当然会麻烦一些,但这才是好习惯。
此帖出自51单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表