完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,大家好。
这是我的项目的简短描述: 我有一个 ADC,它通过一个常规通道对数据进行采样,并通过 DMA 发送结果。该 DMA 在正常模式下工作,因此在 DMA 完成传输后,我处理接收到的数据,然后通过重新启动 DMA 启用下一次 ADC 转换。 对于 DMA,我启用了一个中断 TC,还在 NVIC 中启用了 DMA 中断。一开始它工作正常,但一段时间后(在 209 次 DMA IRQ 处理程序调用之后)DMA 中断没有触发。 在我的项目中,我还启用了多个中断 - 来自另一个 DMA 的中断、来自 2 个不同定时器的中断、USB 中断和 Systick 中断。所以我认为中断优先级可能存在一些问题,但是当我更改所需 DMA 的优先级时,没有任何变化。 有人知道发生了什么事吗? 这是我项目中的一些代码。我在这个项目中使用 SPL ADC & DMA 初始化:
|
|
相关推荐
1个回答
|
|
您使用连续转换模式
> ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; 这意味着,ADC 永远不会停止,如果您没有足够快地选择转换后的值,就会发生溢出。 一种解决方案可能是在循环模式下使用 DMA,缓冲区大小可能加倍,并使用半传输和传输完成中断来处理来自缓冲区各自一半的数据。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2452 浏览 1 评论
3159 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1726 浏览 1 评论
3544 浏览 6 评论
5904 浏览 21 评论
883浏览 4评论
1261浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
527浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1244浏览 3评论
1298浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 05:51 , Processed in 1.078189 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号