请教STC8串口通信初值计算问题
STC8H单片机,串口通信时,采用1T模式,T3做定时器,范例中给出的初值计算为
(65536-(MAIN_Fosc/Baudrate/4))
搞不清楚式中的4是哪来的?
所谓波特率就是定时器的溢出率
假设初值为X
一次溢出所需时间=(65536-X)/MAIN_Fosc
那么溢出率,即波特率为
Baudrate=1/(65536-X)/MAIN_Fosc
那么初值X为,
X=65536-MAIN_Fosc/Baudrate
范例中的4是哪来的?
规格书里有介绍串口波特率计算公式:
计算公式中的4代表4倍采样
也就是硬件会对串口信号的每个bit都采样4次,以确保采样的信号是稳定的
(传统的8051的串口1是16倍采样) zhp 发表于 2024-5-9 17:05
计算公式中的4代表4倍采样
也就是硬件会对串口信号的每个bit都采样4次,以确保采样的信号是稳定的
{:4_196:}感谢! 原来串口波特率是这样计算的啊,如果采用12t在除以12,正常除以4或者16看几倍采样 4是硬件决定的,是串口模块需要4个串口时钟处理一个bit,以前老51是16个串口时钟。
串口接收是需要串口时钟来驱动的,串口时钟=fosc/baudrate。
页:
[1]