找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1525|回复: 9
打印 上一主题 下一主题
收起左侧

两个单片机uart串口通信用内部时钟导致定时器计时波特率不准?

[复制链接]
跳转到指定楼层
楼主
ID:70267 发表于 2022-6-27 14:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是内部时钟,定时器计时时间一会慢一会快,串口中断是不定时的,是不是这个原因导致定时器计时不准,有没有什么办法能解决这个问题呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:913577 发表于 2022-6-27 16:37 | 只看该作者
首先需看下差异有多大,正常都会有一定误差的;其次看下中断处理函数是否占用太多处理资源,可通过置位标志位,然后中断外处理
回复

使用道具 举报

板凳
ID:883242 发表于 2022-6-27 17:52 | 只看该作者
你先把串口断开,看看定时器准不准不就知道了吗?
回复

使用道具 举报

地板
ID:401564 发表于 2022-6-27 19:29 | 只看该作者
定时器时间怎么会一会快,一会慢呢?
一般来说,误差多少是有点的,但绝大多数单片机的内部RC时钟是可以满足串口通讯的时钟要求的
一个定时器如果是用作串口通讯的波特率时钟,那么,这个定时器就不要再用作其它的功能了
回复

使用道具 举报

5#
ID:195496 发表于 2022-6-28 14:57 | 只看该作者
加上外晶振,测试程序正常,说明可能是这个原因,如果用外晶振,还有错码,就可能是程序的原因了。
回复

使用道具 举报

6#
ID:160197 发表于 2022-6-28 16:03 | 只看该作者
定时器不准。与你的硬件设计有关。检测MCU的GPIO口是不是接入了5VDC(MCU工作电压3.3VDC)信号。这个问题我遇到过相同的问题。
回复

使用道具 举报

7#
ID:160197 发表于 2022-6-28 16:04 | 只看该作者
检测硬件设计
回复

使用道具 举报

8#
ID:195496 发表于 2022-6-28 17:51 | 只看该作者
有些单片机定时器与看门狗用的时钟源会有冲突
回复

使用道具 举报

9#
ID:383215 发表于 2022-6-29 11:59 | 只看该作者
我用AVR和STC单片机内部RC振荡器完成的串口通讯非常稳定,担心有问题,做了温度测试,结果是20几度到60度左右,串口通讯的误差都没有超过1%,所以,楼主定时器计时时间一会慢一会快,与内部RC振荡器没有关系,就算改用外部晶体,这个问题依然存在。建议楼主把需要要完成的任务按模块编写程序,要求就是完成这些模块的主程序、子程序、中断程序互相不要干扰,楼主的问题也就解决了。比如我的外部中断是过零触发可控硅,为了读出两个18B20的温度互相不受干扰,我就把读两个18B20的程序安排在外部中断执行过零触发可控硅之后,并且按步数读出,一共十八步读出两个温度,发送数据也是安排在外部中断执行过零触发可控硅之后,每进入一次中断只发一位数据,接收数据也是在空闲处打开接收允许立即接收数据然后就关闭接收允许,串行口用的定时器是自动重装,不存在处理任何程序问题,我就做到了过零触发、18B20、串口收发,还有HX711、数码管、按键去抖动这些程序互相没有影响,所有程序是互相支持的关系,而不是互相依赖。
回复

使用道具 举报

10#
ID:1037785 发表于 2022-6-30 17:18 | 只看该作者
检查一下硬件设计
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表