新手入门
- 积分
- 4
- 金钱
- 4
- 注册时间
- 2019-9-3
- 在线时间
- 0 小时
|
3金钱
最近开发一个项目,芯片采用的是STM32F407VET6,需要3个ADC,ADC1,ADC2和ADC3都开启了,都是独立工作模式,同时每个ADC都是用的DMA中断传输功能。ADC1采集PA0、PA1通道电压,ADC2采集PA2、PA3通道电压,ADC3采集PA6、PA7通道电压;
ADC1用DMA2_Stream0传输,ADC1用DMA2_Stream3传输,ADC1用DMA2_Stream1传输。
1:调试发现,ADC1、ADC2和ADC3都开启后,ADC1的DMA2_Stream0一直中断出不来,连主程序都无法正常运行,调整DMA中断优先级,发现程序要么卡在ADC1的DMA中断,要么卡在ADC2的DMA中断出不来。
2:关闭ADC1功能,开启ADC2和ADC3功能,程序和中断都正常,两个ADC各自通道采集的数据也正确。
3:关闭ADC2功能,开启ADC1和ADC3,程序和中断都正常,两个ADC各自通道采集的数据也正确。
4:关闭ADC3功能,同时开启ADC1和ADC2,与同时开启三个ADC的现象一样,程序要么卡在ADC1的DMA中断,要么卡在ADC2的DMA中断处;
把调试遇到的问题发出来,请教各位大神能人,有遇到过同样的问题么,请指教,谢谢。
|
|