为什么 HAL_UART_Receive_IT() 收到的数据不正确?

Why the data received by HAL_UART_Receive_IT() is not correct?

我正在尝试使用 STM32f407 从 Rpi4 接收一个字符。 我使用 function-HAL_UART_Receive_IT() 接收从 Rpi4 传输的数据,而我的 Rpi4 使用 中包含的函数,serialPutchar()。 但是,当我从 Rpi4 传递十进制的 48(ascii 码中的“0”)时,我的 STM32 中接收到的数据是十进制的 252。 有人可以告诉我如何解决吗? 非常感谢大家!

仔细检查两侧的串行配置(极性、比特率、停止位、奇偶校验...等),如果这还不够,请使用示波器检查传输并验证线路上的内容是否符合预期设置。

你可能想检查stm32的时钟配置。我遇到过类似的情况,时钟频率设置错误。

SYSCLK 应为 168 MHz,APB1 频率应为 42 MHz。