涂鸦OS版本3.11.2 T5开发板 UART和SPI问题

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
Post Reply
Gzz_lin
Posts: 6

1、在线程中使用UART阻塞读,无法结束线程。使用异步读写,发现无法写出,翻看代码注释也不能理解,也无法正确读取,希望出一个demo。

Code: Select all

/*UART初始化参数 */
CONST TAL_UART_CFG_T GX_UART_CFG = {
    .base_cfg.baudrate = 9600,
    .base_cfg.databits = TUYA_UART_DATA_LEN_8BIT,
    .base_cfg.parity = TUYA_UART_PARITY_TYPE_NONE,
    .base_cfg.stopbits = TUYA_UART_STOP_LEN_1BIT,
    .rx_buffer_size = 64,
    .open_mode = O_BLOCK//阻塞
};

//UART接收数据线程
STATIC VOID_T co2_prv_uart_recv_task(VOID_T *arg) {
    UINT8_T data[16];
    UINT8_T length;
    UINT8_T i=0;

while(gb_co2_flag)
{

    length=tal_uart_read(CO2_UART_PORT_NUM, &data, 16);
    if(length>0)
    {
        for(i=0;i<length;i++)
        {
            tal_queue_post(gx_uart_data_queue, &(data[i]), 0);
        }
    }
    else
    {
        tal_system_sleep(100);
    }
    
}
tal_thread_delete(gx_uart_recv_handle);
gx_uart_recv_handle=NULL;
   
}

2、SPI无法软件控制CS引脚,导致总线上只能挂一个设备

Code: Select all

/*spi init*/
CONST TUYA_SPI_BASE_CFG_T GX_SPI_CFG = {
    .mode = TUYA_SPI_MODE3,
    .freq_hz = SPI_FREQ,
    .databits = TUYA_SPI_DATA_BIT8,
    .bitorder = TUYA_SPI_ORDER_MSB2LSB,
    .role = TUYA_SPI_ROLE_MASTER,
    .type = TUYA_SPI_SOFT_TYPE,//TUYA_SPI_AUTO_TYPE,//
    .spi_dma_flags=0
};

3、SPI速度过慢,使用DMA只能在内存间搬运数据,从Flash搬运到屏幕怎么解决,不知道用DMA搬到缓冲区再从缓冲区搬到屏幕快不快。SPI的中断里面只能接收到02标志,其他标志均为收到。


Tags:
愚者千虑必有一得
Posts: 543

Re: 涂鸦OS版本3.11.2 T5开发板 UART和SPI问题

外设demo我们整理中,会尽快发布,最迟3月底前。

Gzz_lin
Posts: 6

Re: 涂鸦OS版本3.11.2 T5开发板 UART和SPI问题

愚者千虑必有一得 2025年 Mar 21日 11:29

外设demo我们整理中,会尽快发布,最迟3月底前。

那SPI的CS引脚无法软件控制是什么原因?

Post Reply