Page 1 of 1

【已解决】Tlsr825x平台串口使用问题

Posted: 2026年 Feb 4日 11:05
by xiaoluo

初始化:

Code: Select all

TAL_UART_CFG_T cfg;
    tal_system_memset(&cfg, 0, SIZEOF(TAL_UART_CFG_T));

optRet = tal_uart_deinit(TUYA_UART_NUM_0);
if(OPRT_OK != optRet) {
    TAL_PR_ERR("Uart uninit err: %d!", optRet);
}

cfg.rx_buffer_size = 128;
cfg.open_mode = 0;
cfg.base_cfg.baudrate = 115200;
cfg.base_cfg.parity = TUYA_UART_PARITY_TYPE_NONE;
cfg.base_cfg.databits = TUYA_UART_DATA_LEN_8BIT;
cfg.base_cfg.stopbits =TUYA_UART_STOP_LEN_1BIT;
cfg.base_cfg.flowctrl = TUYA_UART_FLOWCTRL_NONE;
optRet = tal_uart_init(TUYA_UART_NUM_0, &cfg);
if(OPRT_OK != optRet) {
    TAL_PR_ERR("Uart init err: %d!", optRet);
    return optRet;
} else {
	TAL_PR_DEBUG("Uart init ok!");
}

初始化是成功了(有Log输出)。
有调用接口注册中断函数:tal_uart_rx_reg_irq_cb(TUYA_UART_NUM_0, apps_system_uart_irq_callback);
发送数据:

Code: Select all

int ret = tal_uart_write(TUYA_UART_NUM_0, in, length);
    if(OPRT_OK != ret) {
        TAL_PR_ERR("uart_send_data error: %d", ret);
    }

实际会发送不成功,刚上电那会报的error code: -4. 后面报的1
初始化是在tuya_init_last 中进行的。请教下这是什么原因导致的发送失败呢?


Re: 【求助】Tlsr825x平台串口使用问题

Posted: 2026年 Feb 4日 11:22
by huanghuan

1.你好,报1是发送成功,你看下你报1的时候串口发送是否正常。


Re: 【求助】Tlsr825x平台串口使用问题

Posted: 2026年 Feb 4日 11:44
by xiaoluo

但是用串口工具没有收到数据呢? 用串口工具发送数据,模块能收到。模块换了个了


Re: 【求助】Tlsr825x平台串口使用问题

Posted: 2026年 Feb 4日 11:47
by xiaoluo

硬件串口工具也换了一个了,也是同样的情况


Re: 【求助】Tlsr825x平台串口使用问题

Posted: 2026年 Feb 4日 14:18
by huanghuan

1.你好,我这边实际测试,是deinit 时报-4,是因为本身没有init的情况下,不需要deinit,所以报的-4;实际后续init是成功的。
2.send函数结果 非负为成功。上述返回值是会有些歧义,我们后续会进行优化。
3.请确认串口管脚是 PB1 tx,PB7 rx。我这边实际测试功能正常,详见附件,tuyaos 3.12.0 demo