问题描述
如果四舍五入的UBRR值为3749,如何将其分配给UBRRL和UBRRH?我的想法是UBRRL = 0xA5和UBRRH = 0x0E
解决方法
如果您将avr-gcc与标准工具链一起使用,则只需分配UBRRn = 3749
(其中n
是USART的编号)
否则,您首先需要写UBRRnH
,然后写UBRRnL
。写入UBRRnL
会重置波特率发生器,因此必须在此之前写入UBRRnH
。
3749 = 0x0EA5
UBRRnH = 0x0E;
UBRRnL = 0xA5;
尽管数字3749看起来可疑。即使启用了16MHz和2x模式,它也只能提供533波特/秒的速度。您确定号码正确吗?