找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机定时器的计算-baud 不理解

[复制链接]
跳转到指定楼层
楼主
ID:1078938 发表于 2023-6-4 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void ConfigUART(unsigned int baud)
{

   TMOD &= 0XF0;
         TMOD |= 0X02; //模式2 ,自动重装模式
         TH0 = 256 - 11059200 / 12 / baud ;
         
}

不理解为什么 TH0 要求 256 - 11059200 /12 /baud  而不用 65536 - 11059200 /12/baud;

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:123289 发表于 2023-6-5 10:58 | 只看该作者
只要是自动重装必然会遇到一个问题:
假设你算出来的重装时常数的X,那么重装时,这个X从哪进能取到呢?

你要看书,知道这个X需要事先放在何处,这样你就明白了。

定时模式2,是8位计数方式,只用TL进行计数,而TH这时干什么呢,就是用来放X的。
当TL计数计满后,从TH中取出X,装入TL进行再次计数。
回复

使用道具 举报

板凳
ID:1078938 发表于 2023-6-4 18:03 | 只看该作者
定时器0模式2配置波特率,计算TH0值。
回复

使用道具 举报

地板
ID:1078938 发表于 2023-6-4 20:50 | 只看该作者
理解:
发送的数据都是8位计算的,2的8次方 = 256,因此按照256计算溢出值
回复

使用道具 举报

5#
ID:883242 发表于 2023-6-4 21:10 | 只看该作者
TH0是个8位计数器,你用65536装不下!
回复

使用道具 举报

6#
ID:1064915 发表于 2023-6-5 10:41 | 只看该作者
11059200 /12 /baud
1.11059200 /12 /9600=96
2.11059200 /12 /4800=192
3.11059200 /12 /2400=384>256
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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