Format 以ASCII格式STM32传输命令

Format 以ASCII格式STM32传输命令,format,ascii,stm32,transmitfile,Format,Ascii,Stm32,Transmitfile,我使用STM32发现板与接受ASCII命令的设备通信 我使用HAL\u UART\u TRANSMIT\u IT发送数据,效果很好 我想向设备发送ASCII命令XM3。当我使用虚拟端口程序作为realterm时,我只需点击ascii并输入波特率、databitc等,当我输入XM3并点击+CR时,它发送命令并正常工作,如果不包括CR,它就正常工作 当我尝试从我的MCU中执行此操作时,我使用此代码,但它不起作用,您知道如何通过串行端口在C中发送ASCII命令吗 char txD[3]="XM3";

我使用STM32发现板与接受ASCII命令的设备通信

我使用
HAL\u UART\u TRANSMIT\u 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会附加一个,即ASCII码
13

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

char txD[4]="XM3\r";
char txD[5]="XM3\r\n";
分别地,如果接收者还希望接收一个,即ASCII码10,则应按如下定义:

char txD[4]="XM3\r";
char txD[5]="XM3\r\n";
char txD[3]=“XM3\n”您的设备可能会等待\n和
HAL\u UART\u传输它(&huart1,(uint8\u t*)txD,strlen(txD))
char txD[]=“XM3\n”当然