开源改变世界!!

UBRR 计算错误? #1078

推推 grbl 2年前 (2023-01-23) 57次浏览

关闭
coco243 开启了这个问题 2016 年 9 月 4 日 · 2 条评论
关闭

UBRR 计算错误?#1078

coco243 开启了这个问题 2016 年 9 月 4 日 · 2 条评论

注释

UBRR 计算错误? #1078

我认为 serial.c 中的 UBRR 公式不正确

uint16_t UBRR0_value = ((F_CPU / (8L * BAUD_RATE)) – 1)/2 ;

不应该吗?

uint16_t UBRR0_value = ((F_CPU / (16L * BAUD_RATE)) – 1) ;

UBRR 计算错误? #1078
失误 评论了 2016 年 9 月 4 日  

使用这些设置,代码已经/已经运行良好多年。是什么让你认为这是错误的?
关于波特率的非常非常长的讨论也没有提出这个#837,你真的读过那个问题吗?

UBRR 计算错误? #1078

第二个等式是数据表中显示的,据我所知,它归结为舍入与截断

((16M / (8 * 115200)) – 1)/2 = 8.18
((16M / (16 * 115200)) – 1) = 7.68

如果你四舍五入它们都会得到正确的 8(111111 波特)
如果你截断第二个方程是 7(125000 波特)

喜欢 (0)