历史上的今天
返回首页

历史上的今天

今天是:2025年02月21日(星期五)

正在发生

2020年02月21日 | stm32cubemx 多路adc采集

2020-02-21 来源:eefocus

采用的软件是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。

Stm32cubeMx配置ADC多通道采集

先使能几个通道,我这里设置为0、1、4、5.

然后就要配置ADC的参数:

Stm32cubeMx配置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系列的芯片,其他型号的配置可能略有不同,大体思路一样。

推荐阅读

史海拾趣

富信半导体(FOSAN)公司的发展小趣事

台湾第一电阻(Firstohm)公司的发展故事

故事一:创立与早期技术积累

台湾第一电阻电容器股份有限公司(Firstohm)成立于1969年,初期便专注于电阻器的生产制造。在那个电子工业刚刚起步的年代,Firstohm凭借其敏锐的市场洞察力和对技术的不懈追求,逐步在电阻器领域站稳脚跟。1970年,公司开始接受日本东京应濑无线公司的代工订单,外销至日本市场,这一合作为Firstohm打开了国际市场的大门。此后,公司不断引进和吸收先进技术,如1986年从日本横演电子精工取得的精密级金属皮膜电阻技术,为公司的技术积累奠定了坚实基础。

故事二:晶圆电阻的突破

1987年,Firstohm成功研发并量产晶圆电阻(又称MELF电阻),这一成就标志着公司在电阻器制造技术上的重大突破。晶圆电阻以其优异的性能和广泛的应用领域,迅速获得了市场的认可。Firstohm也因此成为全球少数几家具备晶圆电阻生产能力的厂商之一,为公司后续的发展奠定了技术领先地位。

故事三:国际认证与品质提升

进入21世纪,Firstohm更加重视产品品质和国际化发展。2001年,公司获得ISO14001 Green Dove奖项及ISO9001认证,标志着公司在环境管理和质量管理方面达到了国际先进水平。此后,公司不断通过国际认证,如ISO9001:2008、IECQ品质认证等,进一步提升了产品的竞争力和市场信誉。这些认证不仅是对公司产品质量的认可,也为公司拓展国际市场提供了有力支持。

故事四:创新产品的研发

Firstohm始终坚持创新驱动发展战略,不断推出符合市场需求的新产品。例如,2012年,公司间隙式突波吸收器(SGS)获得日本、中国大陆及韩国专利许可;2017年,成功开发AEC-Q200车规级晶圆电阻;2020年,又成功开发出心电导线图(ECG cable)专用电阻器SSWAT系列。这些创新产品的研发和推出,不仅丰富了公司的产品线,也进一步巩固了公司在电阻器领域的市场地位。

故事五:自动化生产与全球化布局

随着电子行业的快速发展和市场竞争的加剧,Firstohm不断加大在自动化生产和全球化布局方面的投入。公司生产线高度自动化,生产效率和产品品质显著提升。同时,Firstohm积极拓展海外市场,与全球多家知名电子企业建立了长期稳定的合作关系。例如,与美国通用、THOMSON、法国雷诺等公司的合作,不仅提升了公司的品牌知名度,也为公司带来了更多的市场机遇和发展空间。

Custom Components Inc公司的发展小趣事

Custom Components Inc(简称CCI)公司的发展历程始于一个技术突破。在公司成立的初期,CCI的研发团队成功开发了一种新型的电子元件,这种元件在性能和成本上均优于市场上的同类产品。这一技术突破立即引起了行业的关注,多家电子设备制造商纷纷向CCI抛出橄榄枝,希望建立长期合作关系。

随着市场需求的不断增长,CCI逐步扩大了生产规模,并通过技术创新不断提升产品质量。同时,公司还积极开拓国际市场,与海外客户建立了稳定的业务往来。凭借卓越的产品性能和良好的市场口碑,CCI逐渐在电子行业中崭露头角。

GS Technology公司的发展小趣事
用于显示电信号的波形和峰值。
Adam Tech公司的发展小趣事

随着电子行业的快速发展,Adam Tech意识到只有不断创新才能在激烈的市场竞争中立于不败之地。因此,公司加大了对研发的投入,不断推出具有创新性的电子连接器产品。同时,公司还积极拓展产品线,从最初的插头、插座逐渐扩展到线束、端子、电缆组件等多个领域。这些举措不仅提升了公司的市场竞争力,也为客户提供了更加丰富的选择。

DIOTEC公司的发展小趣事

为了进一步拓展欧洲市场,DIOTEC于1989年在斯洛文尼亚的特尔博夫列建立了第二家工厂。这座工厂成为了DIOTEC在欧洲的重要生产基地,不仅提高了产能,还使得公司能够更好地服务欧洲客户。斯洛文尼亚工厂的建成,标志着DIOTEC在欧洲市场的地位得到了进一步巩固。

DUBILIER公司的发展小趣事

随着技术的不断进步和市场的不断变化,DUBILIER公司意识到必须不断拓展市场以保持竞争力。因此,公司决定采取多元化的市场战略,进入多个不同的细分市场。通过与行业合作伙伴建立紧密的合作关系,DUBILIER公司成功地将其产品推广到了更广泛的领域。同时,公司还积极开拓国际市场,将产品出口到世界各地。这些努力不仅为公司带来了更多的商业机会,还进一步巩固了其在全球电子行业的地位。

问答坊 | AI 解惑

关于CDMA DTU的开发

各位前辈:     小女子现在手上有一个任务:使用lpc2136 ARM7芯片加扩展卡DTL800,在uC/OS-II操作系统上设计一款CDMA DTU, 实现AT指令操作,比如短信,语音,拨号上网等方式,用的是2.5G的  全名是:CDMA低速上网卡。 &nbs ...…

查看全部问答>

驱动开发头文件,很简单的问题

驱动开发头文件,很简单的问题, 请赐教. 我现在正在学习一个关于步进电机的嵌入式驱动开发的C程序.这个程序的头文件不同一般的c语言.初学.请赐教一二. #include #include #include #include #include #include #include #include #includ ...…

查看全部问答>

求一报警器设置知道

一物体经过后要确定它外表是否具有标签。其中标签上面有一圈是黄色的 求指导~~~经过的时间暂定是1秒一个吧~~物体长度大概是5cm…

查看全部问答>

找一个几十篇UCOSII下载的地方

http://www.armjishu.com/bbs/viewtopic.php?id=1980 因为太大了,大家自己去下载吧…

查看全部问答>

镍氢电池充电器的三阶段式充电方式的设计,求电路图或设计思路

同时对2节镍氢电池进行并行充电。电源电路输出最大功率5W。当单节电池电压大于1.3V时停止充电,并指示充电完成。当充电电池短路时具有短路保护功能。 电池充电分为3阶段,第一阶段电池电压0.9V-1V时,充电电流控制在300mA,第二阶段电池电压在1V-1 ...…

查看全部问答>

DIY手机 方案细节征集

GSM模块采用SIM900A,对外提供SMA接口,耳机(带mic耳机)和扬声器接口,板载mic,串口可连接到MCU或者引出供网友DIY,SIM卡座 MCU选用LPC176X(或者其他?) 电源:LM2596S-ADJ 提供4.0V电压;  TC1262-3.3VDB 提供3.3V电压 按键:1 ...…

查看全部问答>

顶标C80 88Z的芯片具体型号(已知是用作4分频)

如图,芯片顶标 第一行:C80,第二行:88Z 已知在电路中是用作4分频的元件。 求具体型号,或者类似功能的芯片型号。 …

查看全部问答>

非對稱半橋仿真

用proteus進行仿真 半橋IC為IR2109 操作頻率30K 想利用LC諧振震盪產生一個高壓 但目前發現VDS波形怪怪的 並不是一個半方波 看過其他PAPER應該是要半方坡才對 不知道有沒有人知道原因 …

查看全部问答>

湖南省四旋翼飞行器开放题大讨论——不容错过的思维大碰撞

2014年湖南省大学生电子设计竞赛 公开赛题    四旋翼自主飞行器(A) 一.任务 设计并制作一个四旋翼自主飞行器,能够在规定的测试场地完成规定的测试内容.所设计的四旋翼飞行器带防撞圈,外形尺寸(含防撞圈)限定为:长度≤50cm,宽度≤ ...…

查看全部问答>

求利用独立四键输入四位数,显示在lcd1206第二行中间位置

求利用独立四键输入四位数,显示在lcd1206第二行中间位置…

查看全部问答>