打印
[STM32H7]

STM32H743+CubeMX-ADC+DMA采样三路模拟量(并行)

[复制链接]
660|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量(并行),没过采样

一、前言
在实际项目上,ADC采样必须与DMA组合使用,实现并行采样。这里的“并行采样”并不是多个通道同时采样,而是ADC控制器一边采样,CPU一边干其他非常重要的活。当CPU在需要ADC采样的数据时,通过cache获取内存里模拟量的值即可。

这个笔记实现ADC3+DMA采样三路模拟量,分别是ADC_IN9, Vrefint Channel(MCU内部), Temperature Sensor Channel(MCU内部).


使用特权

评论回复
沙发
键盘手没手|  楼主 | 2021-12-31 16:27 | 只看该作者
系统框图如下(从右到左):

ADC3采样各个通道的模拟量,每当采样完成时,让DMA将采样的数据存放到内存RAM_D3里(声明一个全局数组ADC3_Data[3])。

每隔300ms,CPU通过cache获取全局变量ADC_Data[0] ~ ADC_Data[2]一共3个模拟量。

使用特权

评论回复
板凳
键盘手没手|  楼主 | 2021-12-31 16:29 | 只看该作者
STM32工程:

链接:https://pan.baidu.com/s/1KbbWJ7K4SgKxjOns4iLOPA
提取码:kexw

使用特权

评论回复
地板
键盘手没手|  楼主 | 2021-12-31 16:42 | 只看该作者
二、CubeMX
2.1、RCC,SYS,Clock Configuration

使用特权

评论回复
5
键盘手没手|  楼主 | 2021-12-31 16:46 | 只看该作者
2.2、CORTEX_M7(cache与MPU)
DMA不能访问DTCM内存,所以要开辟RAM_D3内存,让DMA有地方放数据。基于这个目的,需要开启Cortex_M7的cache与MPU功能。

使用特权

评论回复
6
键盘手没手|  楼主 | 2021-12-31 16:52 | 只看该作者

使用特权

评论回复
7
yanzp_2014| | 2022-10-6 23:19 | 只看该作者
请问楼主,可以分享一下代码吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1180

帖子

0

粉丝