STM32CubeMX|多通道ADC(DMA方式)+串口空闲中断接收

STM32CubeMX及所需环境阿里云盘下载地址(需要先安装Java环境):  

阿里云盘分享

1.功能需求:

所用核心板的芯片型号为STM32H750VBT6, 需要用到的功能有:

  • 4路ADC(DMA方式)
  • 1路DAC(作为输出给运放提供参考电压)
  • 1路UART(DMA方式收发,接收中断用空闲中断)

打开STM32CubeMX软件,选择对应的芯片型号,进入配置页面:

2.RCC参数配置:

  • 时钟系统对于CPU来说就相当于人的脉搏,系统会按照时钟信号执行代码(即每一条指令对应一个时钟周期),但是STM32的系统通常会有多个时钟源,这是因为外设不一定像CPU那样需要频率非常高的时钟信号(外设兼容的时钟上限不同)。
  • 我们设置选项HSELSE的值为Crystal/Ceramic Resonator(使用晶振/陶瓷振荡器)。(Bypass ClockSource 是旁路时钟源的意思,即不使用晶振/陶瓷振荡器,直接通过外部输入 4-26MHz 时钟信号。)
  • 在Configuration选项卡中将Power Regulator Voltage Scale选项改为:Power Regulator Voltage Scale 0,这个选项是稳压器的输出电压,直接关系到CPU的最大运行频率,分别是VOS0~3四个等级,默认VOS3是最低等级(功耗最低)。勾选为VOS0后我们可以根据需求在时钟树里面设置自己需要的频率。​​​​​​
  • 在时钟树里的CPU Clocks中输入需要的频率值并按下回车键,系统会自动帮你设定好其他参数。

3.ADC参数配置

配置ADC参数之前先解释一下ADC_INPADC_INN的区别,通过数据手册可知是正、负输入通道,同时[0:5]是快速通道,[6:19]是慢速通道,在硬件设计的时候需要注意。

另外有几点需要注意:

  • ADC 转换时间与 AHB 总线时钟频率无关;
  • 可通过降低分辨率来缩短转换时间;
  • ADCx_INNy 信号只能在相应的 ADC 输入通道配置为差分模式时使用。

下一步勾选用到的IO引脚,配置模式,通常用到的都是单端输入模式,因此选择Single-ended,如果是差分输入就选Differential

3.1 Clock Prescaler(时钟分频器),选项有两大类,分别是Asynchronous clock mode divided by X(异步时钟模式分频数)和Synchronous clock mode divided by X(同步时钟模式分频数)。

通过查阅数据手册可以知道同步时钟即为AHB时钟源,分频系数可选1、2、4;异步时钟为一个特定时钟源,分频系数可选更多。

因为ADC最大可以接受的采样频率为36MHz,因此需要保证分频以后的频率小于36,而我配置的异步时钟频率(PLL2P时钟)为144MHz,所以选择异步时钟的4分频,给到ADC的频率正好是144/4=36MHz。

3.2 Resolution(分辨率),分辨率越高精度越高,相应的ADC转换时间也越长,根据需要选择对应的分辨率,这里我选择12位分辨率。 

3.3 Scan Conversion Mode(扫描转换模式),单通道默认关闭,多通道时默认开启。

3.4 Continuous Conversion Mode(连续转换模式)和Discontinuous Conversion Mode(断续转换模式),如果要用DMA形式的话必须使能连续转换模式,且连续转换模式与断续转换模式不能共存,必须选择使能一个同时关闭另一个。连续转换模式下ADC会自动开启下一次采集,不用手动开启,如果对采集的时序有要求的话,比如采集之前要进行一些外设功能的切换等,就要考虑断续转换模式。

4.DAC参数配置

4.1 DAC的Output Buffer参数,使能后驱动能力更强,电压范围为:0.2V~Vdda-0.2V,外部电路可以省略运放;不使能的情况下驱动能力弱,电压范围为:0V~Vdda,需要搭配运放使用。

 

--------------------------------------------------未完待续2023.1.5--------------------------------------

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值