本文主要是介绍STM32 ADC+DMA导致写FLASH失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下;
一、ADC+DMA采样时进入死循环;
解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客
将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Buffer_Size,原本ADC_Buffer_Size是1,改为5之后就不会进入hard_fault死循环了;
二、ADC+DMA连续转换导致写FLASH失败
网上有人说写FLASH之前需要__disable_irq()禁用中断,写FLASH结束再恢复中断,我这么做了但是还是无法写成功(不开启ADC+DMA连续转换前是可以写FLASH的),于是就把连续转换改成了手动软件触发,每次需要ADC数据的时候就软件触发一次,这样才可以正常写入FLASH,也不知道为什么;
这篇关于STM32 ADC+DMA导致写FLASH失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!