MCU频繁进入串口溢出中断的原因:usart->dat中的存在有效数据的时候(未被读取),新的字节到来,要存入usart->dat,却没位置存放了。于是,产生溢出中断。其实就是没来得及读取usart->dat,产生的溢出中断。
由于使用了DMA来接收usart->dat,所以,产生溢出中断是因为DMA没来得及读取usart->dat。检查代码发现是接收完一帧数据后关掉了DMA,且没有再次打开DMA!导致usart->dat没来得及被读取!
文章讨论了MCU在USART数据接收时,由于使用DMA而频繁出现串口溢出中断的原因,即在接收一帧数据后未持续开启DMA导致新数据到来无法存储,从而引发中断。解决方法是确保DMA在接收到数据后持续工作,直到所有数据都被读取。
MCU频繁进入串口溢出中断的原因:usart->dat中的存在有效数据的时候(未被读取),新的字节到来,要存入usart->dat,却没位置存放了。于是,产生溢出中断。其实就是没来得及读取usart->dat,产生的溢出中断。
由于使用了DMA来接收usart->dat,所以,产生溢出中断是因为DMA没来得及读取usart->dat。检查代码发现是接收完一帧数据后关掉了DMA,且没有再次打开DMA!导致usart->dat没来得及被读取!
5162
3194
776

被折叠的 条评论
为什么被折叠?