一、NUCLEO-U575ZI-Q开发板
本次拿到的ST开发板板载了U5系列MCU,U5 MCU的特点是主打高性能、低功耗,STM32U575ZIT6Q有着丰富的片内外设资源,其中Flash容量高达2Mb、SRAM 768Kb,可以轻松胜任各类大中型应用开发。其详细参数如下:
STM32U575xx器件属于超低功耗微控制器(STM32U5系列),基于高性能Arm® Cortex®-M33 32位RISC内核。工作频率高达160 MHz。
Cortex®-M33内核带有单精度FPU(浮点运算单元),支持所有ARM®单精度数据处理指令和所有数据类型。
提供有一个快速14位ADC (2.5 Msps)、一个12位ADC (2.5 Msps)、两个比较器、两个运算放大器、两个DAC通道、一个内部电压参考缓冲器、一个低功耗RTC、四个32位通用定时器、两个专用于电机控制的16位PWM定时器、三个16位通用定时器、两个16位基本定时器,以及四个16位低功耗定时器。
片内资源
NUCLEO-U575ZI-Q开发板开箱图
二、ADC+DMA协同采样
这里使用MCU片内的16bit ADC进行模数转换,DMA为直接内存访问技术,其优点是可接管外设<->内存、内存<->外设、内存<->内存、外设<->外设的数据传输工作,数据传输完成后则可选发送相应中断。
2.1
新建CubeMX工程,进行ADC、DMA参数配置
启用ADC1 通道1,使能连续转换模式,转换数据管理模式为 DMA Circular Mode
其他设置保持默认
2.2
启用GPDMA1,DMA的作用是将ADC每轮采集、转换完成的数据传输至内存当中
这里使能DMA 通道10,在CH10通道设置中将执行模式设为Circular,分配转换端口为Port1
其他设置保持默认
2.3
时钟树设置
四、实验结果
4.1
在程序中初始化ADC、DMA完成后,在Keil开启Debug模式观察ADC采样结果
ADC1 通道1对应的引脚为PC0,将PC0引脚连接到3V3电压,可以看到采集的数据为16383
已知ADC的参考电压为3.3V,根据16bit ADC转换计算公式,得到采集电压值为:
3.3*(16383/2^14)=3.3V
4.2
将PC0引脚连接到GND
采集结果为0,可以得出采集电压值为0
五、
以上开发内容对应的CubeMX示例工程链接: