我不明白为什么 RS232 收到错误的十六进制值。
例如:
我尝试用2台PC检查RS232,完全没问题,但是当我尝试将其发送到STM32时,读数似乎不正确。我在谷歌上查了一下,这是由于 ASCII 引起的。但不知道如何解决。
我使用的是标准功能
HAL_UART_Receive(&huart3, receiveData, 2, 100);
有没有更容易理解的方法?
感谢llya的提示,再次检查代码,发现UART配置设置错误。将反转更改为禁用后。 TX 和 RX 工作正常。以下是 2 个配置。
huart3.AdvancedInit.TxPinLevelInvert = UART_ADVFEATURE_TXINV_DISABLE; huart3.AdvancedInit.RxPinLevelInvert = UART_ADVFEATURE_RXINV_DISABLE;