标题:
关于单片机定时器的计算-baud 不理解
[打印本页]
作者:
哈兰德
时间:
2023-6-4 18:02
标题:
关于单片机定时器的计算-baud 不理解
void ConfigUART(unsigned int baud)
{
TMOD &= 0XF0;
TMOD |= 0X02; //模式2 ,自动重装模式
TH0 = 256 - 11059200 / 12 / baud ;
}
不理解为什么 TH0 要求 256 - 11059200 /12 /baud 而不用 65536 - 11059200 /12/baud;
作者:
哈兰德
时间:
2023-6-4 18:03
定时器0模式2配置波特率,计算TH0值。
作者:
哈兰德
时间:
2023-6-4 20:50
理解:
发送的数据都是8位计算的,2的8次方 = 256,因此按照256计算溢出值
作者:
Hephaestus
时间:
2023-6-4 21:10
TH0是个8位计数器,你用65536装不下!
作者:
joyb
时间:
2023-6-5 10:41
11059200 /12 /baud
1.11059200 /12 /9600=96
2.11059200 /12 /4800=192
3.11059200 /12 /2400=384>256
作者:
yzwzfyz
时间:
2023-6-5 10:58
只要是自动重装必然会遇到一个问题:
假设你算出来的重装时常数的X,那么重装时,这个X从哪进能取到呢?
你要看书,知道这个X需要事先放在何处,这样你就明白了。
定时模式2,是8位计数方式,只用TL进行计数,而TH这时干什么呢,就是用来放X的。
当TL计数计满后,从TH中取出X,装入TL进行再次计数。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1