通过UART传递数据-ESP8266和STM32

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

我使用以下代码从 ESP8266 传递数据:

int sendData(const char* data)
{
    const int len = strlen(data);
    const int txBytes = uart_write_bytes(UART_NUM_0, data, len);

    return txBytes;
}

sendData("10001");

并使用以下代码在STM32端接收它:

char recvd_data_string[6];
recvd_data_string[5] = '\0';
HAL_UART_Receive(&huart1, recvd_data_string, strlen(recvd_data_string), 200);
printf("RECEIVED DATA : %s \n", recvd_data_string);

但是它打印出像“CüàhD”这样的乱码。我究竟做错了什么?请帮忙。

c embedded stm32 esp8266 uart
1个回答
0
投票

如果recvd_data_string是局部变量,调用HAL_UART_Receive时的strlen(recvd_data_string)可能是0到5之间的任意值,这不是你想要的。

JW

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