完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
以上为赛元官方文档和官方demo TH1 = Fsys/baud>>8 TL1 = Fsys/baud; 我搞不懂的是定时器工作模式2时8位自动重装载,此时TL1为初值,TH1为重载值,按理应该要一样吧? 另外一个疑惑是为什么不需要用最大值减去计数值,不是256-Fsys/baud。 官方demo跑了仿真,得到的波特率也不正确: 当然也有可能是软件有问题 现在我不知道问题到底出在哪,有大佬抽空解答一下,谢谢! |
|
相关推荐
1 条评论
1个回答
|
|
关于赛元单片机串口初值设置的疑问,我将逐一解答。
1. 定时器工作模式2时8位自动重装载,此时TL1为初值,TH1为重载值,按理应该要一样吧? 答:在定时器工作模式2时,确实是8位自动重装载。TL1作为初值,TH1作为重载值。理论上,它们应该是一样的。但在实际应用中,可能由于硬件或软件的原因,导致波特率计算不准确。因此,需要根据实际情况进行调整。 2. 另外一个疑惑是为什么不需要用最大值减去计数值,不是256-Fsys/baud。 答:在计算波特率时,我们通常使用以下公式: 波特率 = Fsys / (32 * (256 - TH1)) 其中,Fsys是系统时钟频率,TH1是定时器初值。这里使用的是256减去TH1,而不是最大值减去计数值。这是因为在定时器工作模式2时,定时器的计数范围是从0到255。所以,我们需要计算从0到TH1之间的计数,而不是从最大值减去计数值。 3. 官方demo跑了仿真,得到的波特率也不正确:当然也有可能是软件有问题现在我不知道问题到底出在哪,有大佬抽空解答一下,谢谢! 答:关于波特率计算不准确的问题,可能有以下几个原因: a. 硬件问题:可能是单片机硬件存在问题,导致波特率计算不准确。可以尝试更换单片机或检查硬件连接是否正确。 b. 软件问题:可能是官方demo代码存在问题,导致波特率计算不准确。可以尝试修改代码,或者查找其他可靠的代码示例进行对比。 c. 波特率计算公式问题:可能是波特率计算公式不适用于您的单片机。可以尝试查找适用于您单片机的波特率计算公式。 建议您根据以上原因进行排查,找到问题所在并进行相应的调整。希望这些解答能帮助您解决问题。如有其他疑问,请随时提问。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-运动追踪之开发板测试
526 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-运动追踪之编写程序
752 浏览 0 评论
938 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1935 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1296 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11880 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-6 19:34 , Processed in 0.442955 second(s), Total 44, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号