TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3235SF 上电初始化时串口接收异常

Other Parts Discussed in Thread:CC3235SF

 在使用CC3235SF的过程中,使用DMA做串口数据的收发。若先开启串口的DMA接收使能,在初始化wifi的sl_Task过程中出现异常,串口会收到大量的异常数据,最终可能会导致wifi启动失败即sl_Start返回错误状态,致使模块不能正常工作。只有在启动wifi的sl_Task之后的一段时间开启串口DMA接收使能才能正常收到数据。大致过程如下面所示:

若按照第一段代码会出现异常,主要表现形式就是串口会收到大量的异常数据,或者RX不能接收数据,或者模块重启

freertos task1

{

dma_uart_init();

MAP_UARTDMAEnable(UARTA0_BASE, UART_DMA_RX);

uart_recv();

}

freertos task2

{

pthread_create(&spawn_thread, &pAttrs_spawn, sl_Task, NULL);

ret= sl_Start(NULL, NULL, NULL);

wifi_recv();

}

若在使能DMA串口的时候加入大于3秒的延时,模块就能正常工作

freertos task1

{

dma_uart_init();

vTaskDelay(3000);//

MAP_UARTDMAEnable(UARTA0_BASE, UART_DMA_RX);

uart_recv();

}

freertos task2

{

pthread_create(&spawn_thread, &pAttrs_spawn, sl_Task, NULL);

ret= sl_Start(NULL, NULL, NULL);

wifi_recv();

}

我猜测是否在初始化wifi协议栈期间模块的串口或者DMA通道出现异常所致?

我已经测试过很多次,若是在初始化期间不使能串口DMA或者延迟使能,就不会异常

Susan Yang:

请您确保CC3235的系统内 sl_Task的优先级为最高优先级

,

babober:

sl_Task是最高优先级的任务,通过逻辑分析仪抓取RX引脚(串口引脚是与LAUNCHMOD板一致,GPIO01,GPIO02),从硬件上来看没有收到数据,但是在软件仿真的时候串口确实收到了很多杂乱的数据。还有一个现象就是连接上Wifi-Direct之后再断开连接,串口接收使能就被关了,必须要重新打开一次(MAP_UARTDMAEnable)。

赞(0)
未经允许不得转载:TI中文支持网 » CC3235SF 上电初始化时串口接收异常
分享到: 更多 (0)