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数据采集功能。这个功能在各种传感器数据采集场景中都有广泛的应用,希望本文能帮助读者更好地理解和掌握这一重要功能。
热门推荐
学pr真的可以挣钱吗,学pr能赚多少钱
注册电气工程师证的价值分析与报考建议
如何管理奇葩客户:29个实用策略
鸣潮漂泊者特征是什么 鸣潮漂泊者详解
天界弃子的救赎:一位堕落天使的悔改之路
安康游玩景点有哪些地方?安康的旅游景点?
set的常见短语
DNF手游鬼剑士(男):从“鬼手”到传奇剑士的蜕变之路
放下的智慧:如何在生活中实践放下
VA面板和IPS面板的比较(探索不同显示技术的优缺点)
地支的象征意义与藏干规律
一图胜千言:全球烟盒图形警示政策趋势与效果
中央汇金扩容三大AMC及证金公司划入 129家A股公司被中央汇金间接持股
综合评价方法
开启轮回眼都需要什么条件?宇智波斑也不清楚真正原因
赫尔曼黑塞的语录35条
解决手机卡顿问题的有效方法与技巧解析
处方减重药有效吗?医生:非减肥捷径
精准发力,提高投资效益(财经眼·提高宏观调控的前瞻性、针对性、有效性)
《教父》:生活与权力的无间交错
连亏三年+25年开局不利 博纳影业已不容有失
如何正确清理手机外壳(简单有效的方法让你的手机外壳焕然一新)
2024计算机考研经验分享:从零基础到成功上岸
从梦里提炼五大正能量,让你自信满满
真武剑阁:武术秘境与精神修炼的象征
从开发到部署,搭建离线私有大模型知识库
《绝地求生》进阶教学:多种游戏设置优化让你揽件更容易
老歌,为何总是能“偷心”?
“夏虫不可语于冰”是什么意思?有什么出处?
想让周围人“尊重你,喜欢你”,一定要有这4个心眼,看你有几个