YTM32B1HA01 因没有清空中断标志位,导致串口中断一直触发的问题
未解决
YTM32B1H系列
-

如果此处触发串口异常中断调用 LINFlexD_UART_DRV_ErrIRQHandler -> LINFlexD_UART_DRV_CompleteReceiveUsingInterrupts 清除 isRxBusy 后,LINFlexD_UART_DRV_StartReceiveUsingInterrupts 继续运行,执行 /* Enable the receiver */
LINFlexD_SetReceiverState(base, true);/* Enable receive data full interrupt */ LINFlexD_SetInterruptMode(base, LINFlexD_DATA_RECEPTION_COMPLETE_INT, true); 是否会导致这个问题 -
我们当前的流程是任务A负责调用 LINFlexD_UART_DRV_ReceiveData 开启接收,之后等待接收回调函数触发。另有一个软件定时器监控接收超时,超时后会调用 LINFlexD_UART_DRV_AbortReceivingData 将接收abort。(已知软件定时器不会抢占 任务A 的时间片,因此不会出现任务A执行 LINFlexD_UART_DRV_ReceiveData 接口的同时被软件定时器回调函数打断)。
我刚刚的意思是任务A执行LINFlexD_UART_DRV_ReceiveData 的过程被LINFlexD_UART_DRV_ErrIRQHandler 打断进而有概率出现“状态是 isRxBusy 是 false,但中断仍使能”的情况
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...




