HAL库编写的STM32F103程序,主循环外开启了ADC的DMA功能,在ADC中断里置了标志位。 后来发现,开启独立看门狗后,有很小的几率复位。觉得可能是ADC的中断的影响。 是不是开启DMA后,ADC就不停的进入了中断,从而影响了主循环里的喂狗程序? 如果是的话,如何避免这种情况?
你ADC读一次用很短时间呀,无论你是否使用DMA,都不会导致2秒还不回来喂狗狗。
真的触发了看门狗,您还是找一找别的原因吧,首先看看是否在正确的时间和地点喂狗。
评分
查看全部评分
评分
查看全部评分
谢谢。
我用的HAL库,配置成DMA方式时,会有DMA中断。
那么会不会是DMA不停进入中断,进而影响了主循环的时间?
DMA的中断应该也不至于影响到看门狗吧。可以先把ADC中断禁止了试看看。再有是看门狗的定时周期设置长一点。
我之前说错了,不好意思。
没有ADC中断,只有DMA传输中断;看门狗复位时间已经设为4秒了,个人感觉很长了。
那可能是你在DMA中断里做了许多事情,才有可能导致看门狗复位。
中断服务程序中不出现死循环的代码,不处理占用周期较长代码,,快进快出。对于中断触发要处理的复杂功能,中断中只置个软件标志,在主循环中判断标志去执行,然后清标志。
评分
查看全部评分
请问楼主最后怎么解决不断进入DMA中断的问题?以及内部接收ADC数据的buffer不断被刷新的问题?