STM32单通道ADC连续采集

图片

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系列芯片的支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九溪弥烟、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值