|
1、平台
stm32f412、freertos cmis_v2
2、配置背景
通过cube配置的环境,uart1、uart2、uart3、uart6;DMA方式rx,普通方式tx(vApplicationIdleHook 里面发送)
DMA我使用的是idle方式(串口空闲下来了就触发 HAL_UARTEx_RxEventCallback)
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
DMA中断优先级(DMA rx 是circur模式)和uart 全局优先级都是5
HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
//
/* USART1 interrupt Init */
HAL_NVIC_SetPriority(USART1_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(USART1_IRQn);
//
3、外设,开机后外设初始化比stm32快,所以外部串口一会儿就开始发串口数据了
4、问题
反复开关机,有的时候串口dma rx 没有响应,具体为进入不到 HAL_UARTEx_RxEventCallback, 这个函数;
请教一下,这个可能是什么原因?
|
|