我在官方库里面发现波特率计算公式有一些出入,特此请教。
void UART0_BaudRateCfg(uint32_t baudrate) { uint32_t x; x = 10 * GetSysClock() / 8 / baudrate; x = (x + 5) / 10; R16_UART0_DL = (uint16_t)x; }
疑问的点是为什么要先乘10,然后再加5除以10,这是在规避什么错误吗?因为看datasheet的公式是 波特率公式 =Fsys * 2 / R8_UARTx_DIV / 16 / R16_UARTx_DL,没有乘10除以10的步骤。
热门产品 :
CH585: 集成高速USB和NFC的蓝牙MCU