STM32单通道ADC连续采集

devtools/2024/10/18 10:14:27/

图片

0.91寸OLED屏幕大小的音频频谱,炫酷!

RTT——一种代替串口打印的调试神器

经典振荡器电路及原理分析(超值文章)

超级简单的画PCB封装技巧,从此告别繁琐计算

前面介绍了关于ADC单通道单次采样软件触发的方式《STM32 软件触发ADC采集》,这回同样是单通道但是连续采样的方式。

对于连续采样,就不得不采用中断的方式,因为如果仍然采用阻塞查询方式的话,那单片机就别干其他的事了,永远处于等待采样完成。单次采样不需要考虑是因为能够控制何时进行采样,而连续采样是一开始就一直采样,直到关闭ADC。

图片

这里依然是用ADC1的0通道。

与单次采样不同的地方就是中断的设置和连续采样的设置。

其他的不多说,直接放源码。

对于GPIO的初始化没什么改变

void gpio_init(){  RCC->CFGR|=(2<<14);  RCC->APB2ENR|=(1<<2)|(1<<9);//GPIOA时钟使能  GPIOA->CRL&=~(0X0F<<0);//PA0 模拟输入模式  }

接下来是ADC的初始化

void adc_init(){  ADC1->CR2|=(1<<0);  ADC1->CR1&=~(0X0F<<16);//independent mode  ADC1->CR1&=~(1<<8);//扫描模式关闭  ADC1->CR1|=(1<<5);//  
  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);    NVIC->ISER[0]|=1<<ADC1_2_IRQn; //18  NVIC->IP[18]=(2<<4)|(2<<0);    ADC1->CR2|=(1<<22);//开始转换  }

然后是ADC中断处理函数

float adc_value;void ADC1_2_IRQHandler(){  if(ADC1->SR&(1<<1))  {        adc_value=ADC1->DR;    ADC1->SR&=~(1<<1);  }}

以上就是核心代码,经过试验,效果如下

图片

拆机音频插座及其原理分析

一个简单实用的负电压生成电路(核心电路)

为什么共集电极放大电路无法放大电压

一眼分清三极管引脚名字的小技巧,从此再也不用对照手册啦

很少有人提起的关于STM32电池备份域的一些细节

JLINK无法烧写程序,原因让人意外

关于推挽电路的说明

炫彩LED

CX32l003输出PWM

Keil中添加对CX32L003系列芯片的支持


http://www.ppmy.cn/devtools/117452.html

相关文章

图像面积计算一般方法及MATLAB实现

一、引言 在数字图像处理中&#xff0c;经常需要获取感兴趣区域的面积属性&#xff0c;下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…

获取 Jupyter Notebook IPython kernel 在电脑中的目录位置

获取 Jupyter Notebook IPython kernel 在电脑中的目录位置 正文 正文 在 VS code 的 terminal 中或者 Windows 的命令行中使用如下代码即可。 ipython locate运行后得到如下结果&#xff1a; 如图所示&#xff0c;我们获取到了 ipython 的位置。 如果大家觉得有用&#xf…

YOLOv5白皮书-第Y2周:训练自己的数据集(云jupyter运行版 )

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](小团体&#xff5e;第八波) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊](K同学啊-CSDN博客)** 目录 前言 一、.xml文件里保存的是什么 二、准备好自己的数据 三、创建split_tr…

【jvm】动态链接为什么需要常量池

目录 1. 常量池的作用2. 动态链接与常量池的关系3. 动态链接的必要性 1. 常量池的作用 1.常量池是JVM&#xff08;Java虚拟机&#xff09;中用于存储字面量&#xff08;如字符串常量、整数常量等&#xff09;和符号引用&#xff08;如类和接口的完全限定名、字段的名称和描述符…

Vue 入门之 computed 计算属性

文章目录 一、基础语法二、计算属性 vs 方法三、完整写法四、代码样例 在 Vue 开发中&#xff0c;computed计算属性是一个非常强大且常用的特性。它可以帮助我们更高效地处理数据的转换和派生&#xff0c;使代码更加简洁和易于维护。本文将详细介绍 Vue 中computed计算属性的基…

EmptyResultDataAccessException产生原因及解决方案

EmptyResultDataAccessException 是 Spring 框架中的一个常见异常&#xff0c;属于 org.springframework.dao 包。这个异常通常在使用 Spring 的数据访问技术&#xff08;如 JDBC、JPA、Hibernate 等&#xff09;执行查询时发生&#xff0c;当查询预期返回单个结果但实际未找到…

JVM频繁Full GC问题的排查与解决方案

引言 在Java应用程序中&#xff0c;JVM&#xff08;Java虚拟机&#xff09;通过垃圾回收机制来管理内存&#xff0c;确保不再使用的对象能够被及时清理和释放。虽然垃圾回收在大多数情况下运行顺利&#xff0c;但当Full GC频繁发生时&#xff0c;它会严重影响应用性能&#xf…

苍穹外卖学习笔记(十三)

三. 导入商品浏览功能代码 由于user的Controller与admin的相同&#xff0c;记得修改RestController注释 1. 查询分类 CategoryController package com.sky.controller.user;import com.sky.entity.Category; import com.sky.result.Result; import com.sky.service.Categor…