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数据采集功能。这个功能在各种传感器数据采集场景中都有广泛的应用,希望本文能帮助读者更好地理解和掌握这一重要功能。
热门推荐
智能农业:科技赋能下的农业2.0时代
2024高考数学提分攻略:从选择到大题的全方位突破
2024高考数学全国卷:题量减少,更重思维过程
95后眼中的“门当户对”:传统观念的现代演绎
从王府到伪满:载沣溥仪的退位人生
从不会系扣子到植物园工人:溥仪的改造重生
2024哈尔滨冰雪节:百万平米冰雕城堡与实用游玩攻略
张医生揭秘湿热下注的三大妙招
玫瑰花的秘密:古今中外的浪漫花语
沈阳故宫大政殿与崇政殿:见证清朝兴衰的宫廷建筑
捷达伙伴车门锁的秘密揭晓
捷达车门锁故障解决方案:左前门无法锁止和右前门无法解锁怎么办?
一位殉国一位重生,两位末代皇帝的命运转折
车门未关好行驶将被罚200元记3分,这些安全隐患不容忽视
拼多多平台介入全额退款商品自行处理,商家要求退货如何处理
水仙花冬季养护指南:5-15℃最适宜,6小时光照是关键
内容营销制胜法宝:从用户洞察到创意表达
内容营销爆火,教你写出吸金文案
跳舞:提升身心健康的社交艺术
从户外到社交:六大方式让“玩”提升生活质量
福州一日游:打卡网红景点,感受千年古城魅力
证监会重磅出手:暂停转融券业务,上调融券保证金比例
证监会暂停转融券业务,上调融券保证金比例至100%
公募基金加码转融通:市场规模三年增两倍,科创板引领发展
火兔装饰品迎新年,财运滚滚来
坚定意志助朱德克服磨难,从南昌起义走向井冈山
肠癌高危人群必知:早期症状与筛查指南
王奕鸣教授提醒:这些肠癌早期信号别忽视
中医养生预防肠癌,这样做最有效!
你真的知道如何正确使用优甲乐吗?