
DMA
文章平均质量分 70
freedompoi
想起来就写
展开
-
STM32F429+FreeRTOS队列 串口DMA双缓存数据接收
前言最近做项目需要用到数据大量数据处理的应用场景,本来想使用串口空闲中断+DMA传输+FreeRTOS队列的方式接收数据,然而实际使用中发现效果不理想,经常丢包。最后查明原因为在空闲中断频繁关闭/开启DMA接收会影响数据接收效率,所以在查找了相关资料之后,决定使用DMA双缓存的方式接收数据,实际测试结果表明,这种方式大大增加了数据接收效率,现在把这个知识分享给大家。一、开发环境芯片:STM32F429开发软件:keilv5、STM32CubeMXos:FreeRTOS二、原理通过原创 2022-01-06 20:58:07 · 5600 阅读 · 4 评论 -
STM32L476 DMA空闲中断使用问题
项目场景:使用STM32L476最小核心板与4G模块通信问题描述:使用了HAL DMA空闲中断的方式与模块通信。测试中发现,串口会时不时的接收数据失败,重新初始化串口,又可以使用了。这个是串口正常值:这个是串口异常时寄存器的值:原因分析:在串口空闲中断中调用了HAL_UART_DMAStop()函数,这个函数使uart接收和发送同时关闭,这样会使串口在有数据过来的时候会出现溢出错误,必须要读取串口缓存值或者重新初始化一次串口才能修复错误。解决方案:将HAL_UAR原创 2020-12-02 17:34:09 · 568 阅读 · 1 评论