什么是ADC? ADC是模数转换器(Analog-to-Digital Converter)的缩写,它是一种将模拟信号转换为数字信号的设备。在嵌入式系统中,ADC常用于将传感器产生的模拟信号转换为数字信号,以便微控制器进行处理。 ADC是非常常用的器件,所以应该学会如何使用。 & k0 V" I" D& C# F! \* z 6 c: N- r0 T# h8 b" d2 n! N. \" l 3 Z2 Y2 b& Q6 }. f9 Q2 K$ s0 R6 D/ H STM32中的ADC, N% F ^. G) `/ O, ^ STM32微控制器系列是由STMicroelectronics推出的一系列32位ARM Cortex-M处理器的嵌入式系统。STM32系列通常配备了内置的ADC单元,使其能够轻松地进行模拟信号的数字化转换。 & K" s. U, Z& H. w STM32 ADC的主要特点( i& N a' h$ L3 c2 w 1.多通道: STM32 ADC通常具有多个通道,允许同时转换多个模拟信号。每个通道可以连接到不同的传感器或电压源。6 U5 R6 P, X E& @/ c& ^" U 2.分辨率: 分辨率表示ADC能够将模拟信号分成多少个离散的步骤。常见的分辨率有12位和16位,分辨率越高,转换精度越高。+ i! H/ \/ a0 P 3.采样速率: 采样速率是ADC每秒对模拟信号进行转换的次数。STM32 ADC通常具有可调节的采样速率,允许根据应用的要求进行优化。 ! M0 v6 s* j% h6 K 4.触发模式: ADC可以通过软件或外部触发启动转换。这使得可以根据需要灵活地控制转换的时机。 1 B& H2 w' \5 d/ G: E$ N CubeMX初始化 其实STM32的ADC可以分为单通道与多通道两种。& I& v" O5 c# R h# x1 H 单通道即使用一个IO来实现ADC,多通道也顾名思义,使用多个通道ADC时如何处理。 6 A) q! l; x8 _4 J6 b# \ 单通道ADC配置图片- w% t% d! i, }1 t9 T 9 ~( |( m# e% q& X4 q ( S, ?; G0 F# q3 n5 x: \ % f l) ^. r# \% |$ X 在CubeMX中选择好对应的芯片,配置好时钟,开启串口方便调试。8 v! ?7 a/ D) F8 g2 y. P0 a ( D$ D9 ]$ Q) B3 ?. i" F & Z( M+ c+ r0 u: ^ 选择具有ADC功能的IO,点击开启ADC。1 P% Q4 b5 C. j2 N) N & S/ A% e9 A1 v8 j: i1 O5 W ADC设置 $ }9 `# ?. z2 O' O( n ' f2 x1 Z- S/ L( z& M" o$ t " I5 K; K5 S7 J* B4 Z' G/ `+ \$ W : f, o0 |. g( f) q% ?/ R: X 设置ADC的模式,单通道的话大部分都不用改。( x' U3 H/ d7 E' ] 然后就可以生成我们的工程了。9 H& y- U) q5 V' Y% B 代码配置/ i! [( T5 T* F- W2 a* y
在Uart.c中重定向我们的串口,方便使用Printf函数。
3 x+ h4 H" H& K7 ]2 H( z, A ' V3 e8 p" J5 @: |+ n0 ~6 g 可以看到我们实现了单通道ADC。& O. `7 m" o) d9 m; ]( q 多通道ADC7 T" U: i& N6 A3 d: m 多通道ADC,我们使用多通道间断模式4 g2 G; A& a# |: q9 t( Y k ( w' T; j) v+ |- s; @ ) m! c3 z: v2 p / `4 m/ J( d" [9 a# ~4 K 开启多个ADC通道。& y- G/ I+ h! W; j 7 ^3 d$ M# R8 J8 g/ Z U/ `0 `" h, u0 i* j3 ^ " |/ a9 X% Z: G. w8 s+ x; ~ 这里必须使能扫描模式和间断模式+ I7 Q( @+ R% [ m; y& F 8 _( E1 v" W: F3 E( y8 M+ ` ' k: ?" d L4 `$ ]7 @0 a7 I& w 7 Q& G9 |$ p: J: j2 S 通道数设置为3,顺序为12,13,14.# t8 f( L, J# `4 R
这样子ADC返回的值就是按照通道顺序而定。& u. a& O, q" `. Q4 V w t6 B: Z( o! s# W. }9 U 1 w0 M$ R! K( w 可以看到,可以读到ADC的值并打印了出来5 b7 ^5 `% H8 w1 e " @: }( {) M% B! t8 g/ e3 C0 B7 Z7 E 转载自: 电路小白 7 @: l4 G0 P# Y! x7 I4 w: n ! g$ k3 c8 J F( U7 d0 w3 V 如有侵权请联系删除 * v0 u; S2 q9 N 9 W3 K& q$ P. @) _ / m0 F B6 `* X- f4 s |
兔哥的杂谈【002】——如何性价比更高地去编译STM32
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
X-NUCLEO-IKS4A1实现手势滑动
stm32使用定时器触发dma传输,启动dma没反应的几种情况的解决方法
【Wio Lite AI视觉开发套件】+cube.ai与食物识别
刘氓兔的杂谈【001】-片上USB 高速PHY
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
实战经验 | 从CubeMX下载生成STM32元件封装库
【STEVAL-STWINKT1B测评】1、点亮LED
【STM32H7S78-DK评测】移植AI框架TensorFlow Lite【上篇】