PYB操作-ADC操作

简介: PYB操作-ADC操作

学习内容


1.配置PYB内部ADC

2.配置PYB内部DAC(这里由于NANO没有DAC这里就不贴出代码操作了)

开发环境


1.putty

2.pyb nano

ADC模数转换


ADC (模拟信号转换为数字量)是嵌入式中最常用的功能之一,在MicroPython 同样也提供了相应的函数,可以直接读取 ADC 转换的结果。在pyboard中,我们需要先导入ADC模块,再指定一个ADC使用的GPIO,然后就可以读取指定GPIO上ADC转换的结果了:

from pyb import ADC
v = ADC(Pin.cpu.A0) #定义ADC对象
v.read() #读取ADC结果

通过read()函数读取的ADC结果是12位的,数值范围为0~4095。

这个方法非常简单,但是不够灵活,不能设置 ADC 转换的参数。因此在pyboard 中,还另外提供了一种使用 ADC 的方法,它先用ADCAll 函数设置ADC的转换位数,然后read_channel()函数读取指定通道的ADC转换结果。

from pyb import ADCAll
adc = pyb.ADCAll(12) #可以设置8/10/12
adc.read_channel(0) #读取通道0 PA0
adc.read_channel(2) #读取通道2 PA2

pyb.ADCAll()函数会影响所有的ADC端口,因此这两种ADC的方法不要混合使用。

在不需要高精度ADC时,可以通过降低ADC的位数来提高转换速度,还可以通过pyb.ADCALLL()读取内部传感器。上面介绍的第二种ADC方法还有一个优点,就是可以读取芯片内部的温度传感器、vbat电压和基准电压等参数。

  read_core_temp -- <function>
  read_core_vbat -- <function>
  read_core_vref -- <function>
  read_vref -- <function>

注意读取内部传感器时,尽量将ADC位数设置高一些,这样转换结果的误差才比较小。

函数解释:


pyb.ADC(pin):通过GPIO定义一个ADC

pyb.ADCAll(resolution):定义ADC的分辨率,可以设置为8/10/12

==adc.read()==读取adc的值,返回值与adc分辨率有关,8位最大255,10位最大1023,12位最大4095

adc.read_channel(channel):读取指定adc通道的值

adc.read_core_temp():读取内部温度传感器

adc.read_core_vbat():读取vbat电压

vback = adc.read_core_vbat() * 1.21 / adc.read_core_vref()

adc.read_core_vref():读取vref电压(1.21V参考)

3V3 = 3.3 * 1.21 / adc.read_core_vref()

adc.read_timed(buf, timer):以指定频率读取adc参数到buf

buf,缓冲区 timer,频率(Hz)

注:使用这个函数会将ADC的结果限制到8位,这个函数是阻塞式的,会延时 len(buf)/timer

目录
相关文章
|
8月前
|
存储
STM32F103标准外设库——GPIO 输入、输出 (五)
STM32F103标准外设库——GPIO 输入、输出 (五)
483 0
STM32F103标准外设库——GPIO 输入、输出 (五)
|
5月前
|
开发框架 C语言 开发者
STM32寄存器操作、模板构建
【8月更文挑战第23天】本文档介绍STM32中的寄存器操作方法与模板构建技巧。寄存器是STM32控制内外设的核心,通过直接读写特定内存地址来进行操作。以配置GPIO为例,需定位寄存器地址并写入适当值。文档还提供了一个基本的代码模板,包括包含头文件、时钟配置、外设初始化及主函数流程,帮助开发者快速搭建开发框架,并强调了参考手册的重要性以确保正确使用。
104 1
|
传感器 数据采集
STM32(HAL库)通过ADC读取MQ2数据
STM32(HAL库)通过ADC读取MQ2数据
|
传感器 存储 C++
STM32读取BH1750光照强度数据打印到串口
BH1750是一种数字式环境光强度传感器(Digital Light Sensor),也称为其他名称,例如GY-302传感器、BH1750FVI传感器等。它的工作原理是通过收集光线照射到传感器上的量来测量环境亮度。
328 0
STM32使用HAL库操作外部中断——实战操作
STM32使用HAL库操作外部中断——实战操作
295 0
STM32使用HAL库操作外部中断——理论讲解
STM32使用HAL库操作外部中断——理论讲解
255 0
STM32外中断
STM32外中断
93 0
【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制
【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制
464 0
【STM32】高级定时器TIM1计数中断配置
【STM32】高级定时器TIM1计数中断配置
544 0
|
编解码 Shell 内存技术
【沁恒WCH CH32V307V-R1开发板两路ADC读取实验】
【沁恒WCH CH32V307V-R1开发板两路ADC读取实验】
421 0