关于ESP32外接串口通讯测试问题,求大神指点

ESP新手一枚,写了一段串口代码如下:

const int uart_num = UART_NUM_0;
void uart_init(void)
{
    //串口配置结构体
    uart_config_t uart_config = {
        .baud_rate = 115200,
        .data_bits = UART_DATA_8_BITS,
        .parity = UART_PARITY_DISABLE,
        .stop_bits = UART_STOP_BITS_1,
        .flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
        .rx_flow_ctrl_thresh = 122,
    };

    printf("!!!!!!!!!!!!!!\n");
    ESP_ERROR_CHECK(uart_param_config(uart_num, &uart_config)); //设置串口

    //IO映射-> T:IO16  R:IO17
    printf("@@@@@@@@@@@@@@@@\n");
    ESP_ERROR_CHECK(uart_set_pin(uart_num, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));

    //注册串口服务即使能+设置缓存区大小
    printf("###############\n");
    ESP_ERROR_CHECK(uart_driver_install(uart_num, RX_BUF_SIZE * 2, TX_BUF_SIZE * 2, 0, NULL, 0));
}

void uart_rx_task()
{
    static const char *RX_TASK_TAG = "RX_TASK";
    uint8_t* data = (uint8_t*) malloc(RX_BUF_SIZE+1);//分配内存,用于串口接收

    while (1) {

        //获取串口1接收的数据

        const int rxBytes = uart_read_bytes(uart_num, data, RX_BUF_SIZE, 10 / portTICK_RATE_MS);

        if (rxBytes > 0) {
            data[rxBytes] = 0;//在串口接收的数据增加结束符
            ESP_LOGI(RX_TASK_TAG, "Read %d bytes: '%s'", rxBytes, data);
                        ESP_LOG_BUFFER_HEXDUMP(RX_TASK_TAG, data, rxBytes, ESP_LOG_INFO);
             //将接收到的数据发出去

            uart_write_bytes(uart_num, (char *)data, rxBytes);

        }

    }

    free(data);//释放申请的内存

}

烧写后mointor打印如下:图片说明monitor中没有错误信息,我认为串口配置正确,然后想测试串口收发数据是否正常,根据开发文档提示,将RX,TX,GND与另外一个UAB转串口进行链接,连线图:
使能UART,将RXD,TXD与RXD0,TXD0跳帽链接

重新给开发板上电,monitor打印如下图片说明,各位大神帮我看看,问题出在哪里了,在这里谢过了

1个回答

ofccw
ofccw 是只能用回环的方式测试吗?我想外接出来,可行吗
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问