我正在使用STM32发现板与需要ASCII命令的设备通信。
我使用HAL_UART_TRANSMIT_IT
发送数据,效果很好。
我想将ASCII命令XM3发送到设备。当我使用虚拟端口程序作为实时术语时,我只需单击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发送到设备。
答案 0 :(得分:2)
如果通过 Realterm 发送命令并选中+CR
选项,则 Realterm 会附加一个Carriage Return,即ASCII码{{1 }}。
为了在您的代码中重现此行为,您应该按以下方式定义命令:
13
分别,如果接收方还希望接收Newline,即ASCII码char txD[4]="XM3\r";
,则应按以下方式进行定义:
10