采用的软件是STM32CUBEMX+KEIL5
硬件为stm32F103C8T6
我与原文作者做的区别在于
External Trigger Conversion Edge,我在进行配置的时间没有None选项,我选择的是默认的Regular Conversion launched by software
原文地址:
http://www.eemaker.com/stm32cubemxadc.html
实现功能:stm32cubeMX配置ADC多通道采集(非dma和中断方式)
Stm32ADC的转换模式还是很灵活,很强大,模式种类很多,那么这也导致很多人使用的时候没细心研究参考手册的情况下容易混淆。不知道该用哪种方式来实现自己想要的功能。网上也可以搜到很多资料,但是大部分是针对之前老版本的标准库的。昨天帮客户解决这个问题,正好做个总结:使用stm32cubeMX配置生成多通道采集的例子。
软件:stm32cubemx MDK
硬件:eemaker板(基于stm32F103c8的)
在百度搜索ADC多通道采集,大部分的都是基于采用dma模式才实现的。而我讲的使用非dma方法。首先有几个概念要搞清楚:
扫描模式(想采集多通道必须开启):是一次对所选中的通道进行转换,比如开了ch0,ch1,ch4,ch5。Ch0转换完以后就会自动转换通道0,1,4,5直到转换完。但是这种连续性并不是不能被打断。这就引入了间断模式,可以说是对扫描模式的一种补充。它可以把0,1,4,5这四个通道进行分组。可以分成0,1一组,4,5一组。也可以每个通道配置为一组。这样每一组转换之前都需要先触发一次。
Stm32 ADC的单次模式和连续模式。这两中模式的概念是相对应的。这里的单次模式并不是指一个通道。假如你同时开了ch0,ch1,ch4,ch5这四个通道。单次模式转换模式下会把这四个通道采集一边就停止了。而连续模式就是这四个通道转换完以后再循环过来再从ch0开始。
另外还有规则组和注入组的概念,因为我这个例程只用到了规则组,就不多介绍这两个概念,想要弄清楚请自行查阅手册。
下面进入正题,配置stm32cubeMX。
先使能几个通道,我这里设置为0、1、4、5.
然后就要配置ADC的参数:
目前经过我的测试,要想用非dma和中断模式只有这样配置可以正确进行多通道转换:扫描模式+单次转换模式+间断转换模式(每个间断组一个通道)。
分析配置成这样的模式,扫描模式是在配置为多个通道必须打开的,stm32cubeMX上也默认好了,只能enable。单次转换模式是我不需要不停的去采集每个通道值,而是把四个通道采集完以后就让它停止。这里间断配置是关键,间断模式可以让扫描的四个通道进行分成四个组,stm32cubeMX参数里面number of Discontinous Conversions是配置间断组每个组有几个通道的,这里必须配置为1(否则在获取ad值得时候只能读取到每个间断组最后一个通道)。
生成mdk工程代码。这时候还没有完成,只是实现了ADC的初始化,需要采集这四个通道值得函数还要自己写。下面这个是我main函数的while循环:
for(i=1;i<5;i++)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,0xffff);
adcBuf[i]=HAL_ADC_GetValue(&hadc1);
printf("------ch:%d--%d-------rn",i,adcBuf[i]);
}
HAL_ADC_Stop(&hadc1);
HAL_Delay(1000);
调用hal库接口函数也需要注意,HAL_ADC_Start一定要放在for里面,即每一个通道都要触发。四个通道都采集完了,再去调用HAL_ADC_Stop(&hadc1);结束本次ADC采集。
最后说下,这个是针对stm32F103系列的芯片,其他型号的配置可能略有不同,大体思路一样。
上一篇:浅谈stm32f1两路adc采集(非DMA)
下一篇:stm32L151 tim trigger adc定时器触发单通道adc采样dma传输
- 热门资源推荐
- 热门放大器推荐
设计资源 培训 开发板 精华推荐
- WRL-13287,基于 ESP8266 802.11 无线局域网的 SparkFun Wi-Fi Shield
- 适用于STM8S207K8 MCU的STM8 Nucleo-32开发板,支持Arduino Nano连接
- EVAL-ADF7012EB2,ADF7012 ISM 频段发射器、单芯片低功耗 UHF 发射器评估板
- 150 mA CMOS 低 Iq 低压降稳压器的典型应用
- DI-123 - 9.65 W,用于住宅供暖控制的双输出电源
- LT3973HDD-5 1.8V 降压转换器的典型应用
- ESP32光伏MPPT_升/降压同步整流
- ADA4062-4ARUZ-RLOp-Amp 用作反相解决方案电路的典型应用电路
- 【训练营】WS2812B灯带-884670A
- 易微联四路开关继电器板
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展
- 下载安森美半导体 KNX 技术文档赢精美礼品!
- Murata旗舰店1周年淘宝直播
- 【社区大讲堂】ARM+DSP双核处理器应用程序开发
- 2016 TI嵌入式产品研讨会全网首映,下载有好礼!
- 下载有礼:2017年泰克亚太专家大讲堂第四期: 如何应对新型半导体材料表征测试挑战
- 【已结束】直播|Microchip MPU解决方案及典型应用
- 泰克MDO3000系列示波器结合MDO3PWR功率分析模块 立即询价享春季好礼!
- Silicon Labs EFM32PG22开发套件 传你所思 创你所想!申请进行时!
- Arrow&allegro有奖直播:下一代磁感应解决方案:XtremeSense™ TMR 技术如何促进高效应用