查看原文
其他

ADC多通道随机选择性转换应用示例

Miler 茶话MCU 2022-09-10

我们在做ADC的时候,有时可能要用到多个通道,但并希望它们被同时启动,只是想依据不同的条件在不同的时刻对其中某一个ADC通达进行转换。基于这种应用场景,对有些STM32新手来说似乎还有点困难,这里使用STM32F4系列的一个开发板做个简单的应用演示,以供参考。

基本思路是这样的:

先使用STM32CubeMx做基本的配置,并生成初始化代码。在用CubeMx配置ADC时,只选择可能用到的多个通道的其中1个进行配置。这里我用到3个通道,分别是ADC1的CH8、CH12、CH17【CH17为Vrefint专用通道】。在用户代码中再做通道的改变。这里ADC选择软件启动。

这里我没有开启ADC相关中断,具体应用时可以按需配置。

当生成完初始化代码后,我在其基础上借助Cube库重新组织一个函数,用来针对任意ADC通道进行初始化。该函数用到两个参数,分别是通道号和对应于该通道的采样时间。

我在main()的主循环里,循环地针对CH8/CH9/CH17进行ADC转换。

这里我将CH8接GND,CH12接VDD,CH17内接Vrefint. 编译运行后可查看结果:

显然,整个过程还是非常简单的。不同的系列可能会略有差异,使用时结合具体的初始化代码灵活调整即可。

=========================================

往期话题链接【点击阅读】:

1、基于STM32H7 DMA传输的SPI 应用示例

2、一个跟初始化顺序有关的异常话题

3、一个SPI通信功能异常的案例

4、一个低功耗应用的案例分析

5、定时器触发DMA数据传输失败之案例

     

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存