STM32 软件触发ADC采集详解
创作时间:
作者:
@小白创作中心
STM32 软件触发ADC采集详解
引用
CSDN
1.
https://blog.csdn.net/longgyue/article/details/142448117
STM32的ADC(模数转换器)功能是单片机开发中非常重要的一个模块,广泛应用于各种传感器数据采集场景。本文将通过STM32F103C8T6为例,详细介绍如何通过软件触发方式实现ADC数据采集。
0.91寸OLED屏幕大小的音频频谱,炫酷!
STM32的ADC模块功能强大,但相应的配置也较为复杂。对于软件触发ADC方式,其基本流程如下图所示:
最基本的ADC采样方式,不经过外部触发,采样转换完成不触发中断。
接下来,我们将详细讲解ADC的操作步骤,以ADC1的通道0为例。
时钟配置
STM32系列ADC的时钟来源于APB2时钟分频。首先需要将APB2时钟分频到36M,然后将ADC时钟分频到12M。具体配置如下:
void clock_config()
{
RCC->CFGR&=~(1<<14);
RCC->CFGR|=(1<<14);
while(!(RCC->CFGR&(1<<14)));
RCC->CR|=1;
while(!(RCC->CR&1));
RCC->CFGR&=~(1<<14);
}
GPIO初始化
要实现ADC采集功能,需要将对应的GPIO设置成模拟输入模式。这里以PA0为例:
void gpio_init()
{
RCC->APB2ENR|=(1<<2)|(1<<9);//GPIOA时钟使能
GPIOA->CRL&=~(0X0F<<0);//PA0 模拟输入模式
}
ADC模块初始化
ADC模块的初始化相对复杂,需要配置多种寄存器参数。以下是具体的初始化代码:
void adc_init()
{
ADC1->CR2|=(1<<0);
ADC1->CR1&=~(0X0F<<16);//independent mode
//ADC1->CR1&=~(7<<13);//1个通道
//ADC1->CR1|=(1<<11);
ADC1->CR1&=~(1<<8);//扫描模式关闭
ADC1->CR2|=(1<<20);
ADC1->CR2|=(7<<17);
ADC1->CR2&=~(1<<11);//right align
ADC1->CR2|=(1<<3);
while(ADC1->CR2&(1<<3));
ADC1->CR2|=(1<<2);
while(ADC1->CR2&(1<<2));
ADC1->CR2&=~(1<<1);
ADC1->SMPR2&=~(7<<0);
ADC1->SQR3&=~(0X1F<<0);
}
控制ADC采集
最后是控制ADC采集的过程,通过软件触发方式启动ADC转换:
unsigned int start_adc()
{
ADC1->CR2|=(1<<22);//开始转换
while(!(ADC1->SR&(1<<1)));
return(ADC1->DR);
}
显示ADC采集结果
之前介绍过关于OLED的显示功能,这里我们通过OLED将ADC采集到的值显示出来。实际效果如下:
STM32 软件触发ADC采集的实际效果
通过以上步骤,我们就可以实现STM32单片机的软件触发ADC数据采集功能。这个功能在各种传感器数据采集场景中都有广泛的应用,希望本文能帮助读者更好地理解和掌握这一重要功能。
热门推荐
脐带血,真的有必要为孩子保存吗?
无需密码即可解锁 iPad
新车发生事故以后都需要年检吗(撞过人的车要一年一审吗)
三相电系统的“三足鼎立”:三线、四线与五线的奥秘
波鸿与勒沃库森:德甲赛场上的交锋与较量
可以手术让舌头变长?到底是不是真的行不行
什么是价格异议?从定义到处理方式全解析
《山海经》:神话故事中的女性形象之美及对后世的意义
2024年一季度重庆经济运行情况分析:GDP同比增长6.2%
世俗和非世俗国家:宗教如何影响国家?
10分钟带你看懂现代艺术的16个艺术流派
公司配股如何进行合理操作?这种操作会带来哪些变化?
Vlog拍摄方法详解:从入门到精通的全面指南
肾病也会伤骨头?肾病患者如何延缓骨病的发生?
家庭壁挂新风机安装全过程图文介绍
乳胶漆施工10个关键步骤,打造完美墙面攻略
揭秘!腐殖酸刺激作物根系发育,让作物 “扎根” 有术
有效预防鱼刺卡喉的实用方法
PPP项目管理指南:从风险到创新的全方位管理策略
监控安装需要什么资质
RH(D)阳性正常吗
基于物联网和云计算技术的空调节能管控平台研究
咖啡品鉴术语全解析:从口感、滋味到香气的完整指南
一晚上醒好几次,8 个办法让你睡整觉
Omega-3脂肪酸对自身免疫性疾病的影响:最新研究综述
个人独资企业税收优惠政策解析与实务操作
冬季大棚大蒜种植技术详解
什么是次新股?如何选择次新股进行投资?
如何提高购买股票时抽新股的成功率?这种成功率受哪些因素的影响?
15个迹象表明你的狗狗可能生病了