为什么RS232接收到错误的HEX值?

问题描述 投票:0回答:1

我不明白为什么 RS232 收到错误的十六进制值。
例如:

  • 类似于从 PC 0x01 发送,但在 STM32 上,其接收 7F。
  • 如果从 PC 0x03 发送并在 STM32 上,则收到 7E。

我尝试用2台PC检查RS232,完全没问题,但是当我尝试将其发送到STM32时,读数似乎不正确。我在谷歌上查了一下,这是由于 ASCII 引起的。但不知道如何解决。

我使用的是标准功能

HAL_UART_Receive(&huart3, receiveData, 2, 100);

有没有更容易理解的方法?

serial-port stm32 uart
1个回答
0
投票

感谢llya的提示,再次检查代码,发现UART配置设置错误。将反转更改为禁用后。 TX 和 RX 工作正常。以下是 2 个配置。

huart3.AdvancedInit.TxPinLevelInvert = UART_ADVFEATURE_TXINV_DISABLE; huart3.AdvancedInit.RxPinLevelInvert = UART_ADVFEATURE_RXINV_DISABLE;

© www.soinside.com 2019 - 2024. All rights reserved.