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数据采集功能。这个功能在各种传感器数据采集场景中都有广泛的应用,希望本文能帮助读者更好地理解和掌握这一重要功能。
热门推荐
喝过期牛奶中毒怎么办
多长的子线最适合钓鱼?这些数据告诉你
盐酸格拉司琼注射液正确的指导说明书
航空插头接线全攻略:从工具准备到测试验收
685分!646分!福清一中学子在2024年高考中再创佳绩
经常失眠多梦睡不好?平时可以多吃6种食物养好精气神,改善睡眠质量
去掉最高最低分:提升评分公平性与技术实施指南
多源数据融合的方法与实践:从特征融合到模型融合
马润是什么意思,为什么要叫四等马润
古代美人王昭君:落雁之美与和平使者
南方医科大学携手澳门科技大学,揭秘肝癌发生的新机制
皇室战争 后排输出法师玩法 火法搭配攻略
8个免费在线编程游戏网站,让每个人都可以学习编程
员工离职是挑战还是机遇?如何正确看待职场人才流动?
肾的八大主要功能及日常养护指南
飞到多高才能逃出地球引力?揭秘宇宙速度与引力的奥秘
2025高速免费大放送:节假日畅行无阻,你准备好了吗?
文化传媒公司起名技巧与建议
预防跌倒有技巧,做个健康“不倒翁”
读《遥远的救世主》,记忆尤深的三句话是……
颅内正常血管解剖-动脉系统
财务要学哪些办公软件
良好生产规范 (GMP) 审核基本指南
作为反佛陀者的尼采
厨师,不仅仅是烹饪的艺术,更是文化的传承者
AI智能客服系统:开启智慧服务新时代
糖姜片的功效与作用及制作方法详解
文学是属于我们的春和景明
经典混合动力的技术方案盘点
吃杏仁对身体有什么好处和坏处