- DTCMRAM是CPU的亲儿子,不支持DMA操作。参考:https://www.jianshu.com/p/ba1034136ae8
- RAM1支持DMA,但是和CPU不亲,不经常见面。需要刷新数据,数组才能更新。
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc_buf_u16, 128);
HAL_Delay(10);
HAL_ADC_Stop_DMA(&hadc1);
SCB_InvalidateDCache_by_Addr((uint32_t *) &adc_buf_u16[0], 128);
SCB_CleanInvalidateDCache(); - 还有说要调整ADC/DMA生成的代码顺序 ,我也照做了。
https://blog.csdn.net/m0_51274562/article/details/126911833?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-4-126911833-blog-128308375.235v31pc_relevant_default_base&spm=1001.2101.3001.4242.3&utm_relevant_index=7
以上三招解决问题。
STM32H7单片机解决ADC DMA的问题
最新推荐文章于 2024-05-23 21:02:26 发布