以ASCII格式STM32

时间:2018-07-24 09:32:01

标签: format ascii stm32 transmitfile

我正在使用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发送到设备。

1 个答案:

答案 0 :(得分:2)

如果通过 Realterm 发送命令并选中+CR选项,则 Realterm 会附加一个Carriage Return,即ASCII码{{1 }}。

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

13

分别,如果接收方还希望接收Newline,即ASCII码char txD[4]="XM3\r"; ,则应按以下方式进行定义:

10