STM32以ASCII格式发送命令

Transmit commands in ASCII format STM32

我正在使用 STM32 探索板与接受 ASCII 命令的设备通信。

我用HAL_UART_TRANSMIT_IT发送数据,没问题。

我想发送 ASCII 命令 XM3 到设备。当我使用虚拟端口程序作为 realterm 时,我只需单击 ascii 并输入波特率、databitc 等,当我输入 XM3 并单击 +CR 它发送命令并且它工作正常,如果不包括 CR 它就不起作用.

当我尝试从我的 MCU 执行此操作时,我使用了这段代码,但它不起作用,关于如何通过串行端口在 C 中发送 ASCII 命令有什么想法吗?

char txD[3]="XM3";
__HAL_UART_ENABLE_IT(&huart1, UART_IT_TC);
HAL_UART_Transmit_IT(&huart1, (uint8_t *)txD ,3);

当我将它发送到 realterm 时它显示 XM3 但是当我将它发送到设备时没有任何反应。

我需要知道如何将 XM3 和 CR 发送到设备。

如果您通过 Realterm 发送命令并选中 +CR 选项,Realterm 会附加一个 Carriage Return,即ASCII码13.

为了在您的代码中重现此行为,您应该按如下方式定义命令:

char txD[4]="XM3\r";

分别如果接收方还希望收到一个Newline,即ASCII码10,则应定义如下:

char txD[5]="XM3\r\n";