
有人使用STM32U5系列MCU开发产品,在用到ADC结合DMA传输时遇到点障碍,这里针对片内ADC1和ADC4基于DMA标准请求模式和链表模式演示下实现过程,以供参考。 先对ADC1基于DMA标准请求模式做演示。 随意选择ADC1的4个通道,扫描模式,连续转换,DMA传输转换结果并令DMA工作在外设字到内存字的循环传输模式。使用CubeMx进行配置。其中DMA通道使用Channel 1。 ![]() ![]() ![]() 相关代码:
运行结果如下图所示:【目前4个通道我是悬空的】 ![]() 现在对ADC4基于DMA链表模式做演示,其实就一个节点。 选择ADC4的4个内部信号通道,扫描模式,连续转换,DMA传输转换结果,并令DMA工作在外设字到内存字的循环模式。使用CubeMx进行配置。其中DMA通道使用Channel 0。对于内部信号的采样,往往有最小采样时间要求,我这里的演示随便选了个参数,具体应用时请参考数据手册及当时ADC时钟具体拟定。特此提醒! ![]() 关于DMA链表模式的配置在CubeMx界面里的Utility菜单下。 ![]() ![]() ![]() 相关用户代码:
结果验证【显示了2组数据】: ![]() 最后还提醒下,如果CubeMx版本比较低时,HAL_PWREx_EnableVddA()函数需要自己手动添加。我目前CubeMx 6.9.0版本已经不用手动添加了,创建工程时会将其自动生成于相应位置。 如有侵权请联系删除 转载自: 茶话MCU |
经验分享 | STM32 ADC模拟看门狗应用演示
STM32U5低功耗测试
STM32怎么选型
内存配置的艺术:STM32为嵌入式系统高端UI优化RAM和闪存的三大策略
基于STM32使用ADC的多通道采样经验分享
【STM32U545】实现CAN数据收发
基于STM32利用ADC+DMA采样显示经验分享
【我的STM32U5 项目秀】+04-MPU6050在STM32U5上的移植
基于STM32的ADC+DMA采样与板载运放跟随经验分享
基于STM32F407和Cubemx的ADC采集+DMA传输实现简易示波器经验分享
学习一下