完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32h7 开启Cache后,串口使用发送DMA发送数据会导致中断触发(只开启接收空闲中断),接收和发送的缓存指定在手动分配的内存区域(此区域通过MPU配置,关闭了Cache功能),此问题有办法解决吗?
|
|
相关推荐
1个回答
|
|
这个问题可能是由于使用DMA发送数据时,数据还没有完全发送完成就触发了中断,导致中断处理函数读取了错误的数据。
解决这个问题的方法有几种: 1. 等待DMA发送完成后再触发中断:可以使用DMA的传输完成中断来控制中断触发的时机,当DMA发送完成时再触发接收中断。 2. 使用双缓冲区:使用双缓冲区来解决数据发送未完成就触发中断的问题。可以使用两个缓冲区交替使用,当一个缓冲区的数据发送完成后,切换到另一个缓冲区发送数据,这样就不会导致中断触发时发送还未完成。 3. 使用软件延时:在触发中断之前增加一段软件延时,等待DMA发送完成。可以通过计数循环等方式实现延时,确保数据发送完毕后再触发中断。 需要根据具体的应用场景选择合适的解决方法。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1618 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1545 浏览 1 评论
979 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1597 浏览 2 评论
1864浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 21:24 , Processed in 0.773084 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号