完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,最近在做一个项目,主要需要实现的是多路ADC采集电压,通过DMA读取到RAM。不加低功耗模式(halt)的时候是正常的,但是一旦加上Halt模式之后,ADC转换完之后DMA就不产生中断。
代码逻辑:ADC扫描不同通道的数据 》》DMA中断 》》处理电压值》》电压小于2.8,开启RTC唤醒,进入低功耗模式 》》 睡眠中..... 》》RTC唤醒,修改时钟》》初始化ADC、初始化DMA》》开启ADC转换,进入之前的ADC扫描状态 问题出现在第二次循环,第一次循环是正常的,能进入DMA中断,但是第二次循环,就不进入DMA中断了,而且以后也不会进入DMA中断。 自检查:去掉DMA,能正常ADC读取或者ADC中断》》》判定ADC正常 注:每次退出halt模式之后,我都会重新初始化DMA的 |
|
相关推荐
1个回答
|
|
根据您提供的信息,您在使用STM8L051微控制器进行多路ADC采集电压,并通过DMA读取到RAM。在不使用低功耗模式(Halt)时,系统工作正常。但是,当您尝试使用低功耗模式时,ADC转换完成后DMA不再产生中断。以下是可能的解决方案:
1. 确保在进入低功耗模式之前,所有必要的硬件(如ADC和DMA)都已正确配置。这包括时钟、触发源、数据对齐等。 2. 在进入低功耗模式之前,确保DMA中断使能位已设置。这可以通过设置DMA通道的CR寄存器中的相关位来实现。 3. 在RTC唤醒后,确保重新初始化ADC和DMA。这可能包括重新配置ADC通道、触发源、数据对齐等,以及重新配置DMA通道的源地址、目标地址、数据大小等。 4. 在RTC唤醒后,确保重新使能DMA中断。这可以通过设置DMA通道的CR寄存器中的相关位来实现。 5. 检查您的中断服务例程(ISR)是否正确处理了DMA中断。确保在ISR中清除了DMA中断标志,并在处理完数据后重新启动DMA传输。 6. 确保在低功耗模式下,系统时钟和电源管理设置正确。这可能包括设置低功耗模式下的系统时钟、使能唤醒源等。 7. 如果问题仍然存在,请检查您的硬件连接,确保没有硬件故障或连接问题。 8. 考虑使用STM8L051的参考手册和数据手册,以获取有关ADC、DMA和低功耗模式的详细信息。 9. 如果可能,请尝试使用STM8L051的评估板或开发板进行测试,以排除硬件问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1750 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1608 浏览 1 评论
1049 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1665 浏览 2 评论
1924浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
709浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
559浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:24 , Processed in 1.045309 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号