STM32
直播中

贾熹

8年用户 1687经验值
私信 关注
[问答]

STM32CUBEMX4.22.1在main函数里面添加一行语句就死机的原因?

STM32CUBEMX4.22.1版本,内嵌FREERTOS,想把4路ADC通过DMA方式采集,但是在main函数里面添加一行语句:                              HAL_ADC_Start_DMA( hadc1, ADC_DMA_Buf[0],4);后就死机了

回帖(3)

张志诚

2024-4-11 09:59:00
是不是缓冲区越界了?
举报

肖晓新

2024-4-11 10:00:05
进入debug模式下主循环一直没执行,单步调试一直在adcDMA回调里面。
由于adc的采样速度太快,而DMA缓存的大小很小,而一直进入中断更改ADC时钟就可以了
举报

李丽

2024-4-11 14:56:46
导致程序死机的原因可能是与硬件设置、中断优先级或内存分配等有关。你可以尝试以下几个解决方法:

1. 检查硬件设置:确保ADC的引脚、时钟等设置正确。
2. 检查中断优先级:请确保ADC的DMA中断的优先级比其他中断的优先级低。
3. 检查内存分配:确保为DMA分配的缓冲区足够大,且正确分配内存。
4. 检查系统初始化:确保在调用HAL_ADC_Start_DMA之前,正确初始化了ADC和DMA的配置。

如果以上方法都不能解决问题,你可以尝试将相关代码从main函数中移动到其他函数中进行调用,或者使用调试工具来定位问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分