在日常調(diào)試中,使用串口打印log或者串口通信的用戶(hù)是很多的,那么在不同的主頻下,哪些波特率可用,哪些不可用呢,那么就需要計(jì)算誤差來(lái)看了。
在代碼中,波特率參數(shù)是么設(shè)置的:
void UART1_BaudRateCfg(uint32_t baudrate)
{
uint32_t x;
x = 10 * GetSysClock() / 8 / baudrate;
x = (x + 5) / 10;
R16_UART1_DL = (uint16_t)x;
}
結(jié)果一般是是小數(shù),采取了四舍五入的方法,如果的得數(shù)大,那么四舍五入的影響就不大,如果結(jié)果個(gè)位數(shù),那么0.4對(duì)于他而言誤差是很大的,計(jì)算偏差大于%2不建議使用。
浙公網(wǎng)安備 33010602011771號(hào)