你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32通过DMA方式采集多路AD

[复制链接]
STMCU小助手 发布时间:2023-1-6 17:39
一个项目需求:使用STM32采集多路AD信号。( G7 D/ n/ x. E9 d" E/ l* |$ E5 T/ W
5 l" Y) D8 Q# s( m4 x; E. [
一般采集多路信号需要使用DMA方式,步骤如下:
) Z1 P" l5 v4 |" a+ S* J2 A9 E, O! x, F
1.使能相应ADC通道,这里使用ADC1的4个通道,分别是ADC123_IN0 ~ ADC123_IN3,0 _# N2 f; E, z
& X/ w  C) W! F! _" v  }) b. [
注:ADC123_IN0 表示ADC1, 2, 3 都可以使用该通道。
, p0 C. z7 U7 x1 w1 j8 g

7 B% a- ]- W: l: g% K) X2.配置ADC,. ]. r' U7 t, {
* n. W! K# Q6 z* q* b
将ADC设为多通道循环扫描模式,设置各通道扫描顺序(人为设定)' E7 Q% a! u9 d7 F, A( o
6 _' f& K1 S: G

% ~* d/ B6 x- h% o7 G1 A! ~3.配置DMA通道
& j% [2 Y# b: \2 j9 x+ W9 x# e- v: O$ `3 ^7 q
关键点在DMA的配置,ADC的采样值放在相应的数据寄存器中,通过DMA通道将该寄存器的值传输到内存中的某处(定义一个数组),内存地址自增,外设地址固定。则数组中的值就是各通道的采集数据。" v: y# V* N* c* O* @6 x

# |) B- F6 a# v! M& Z代码如下:
7 B* }- R- B( k% f5 O- m( i6 O7 n- d1 F& q: Z0 f
adc.c
; j, h: G. u) a* R+ z$ P' O. n' r5 j4 d3 ]4 S
20161025104455371.png ! \2 [* K* E( u2 d+ G

1 l9 m$ ]) x+ S- \; J2 [8 j( T
20161025104502261.png 3 i3 ~6 ]9 Z2 t

! P6 L  Z0 ^' h6 U
20161025104509049.png + C+ {1 Q" v' G( Y  J$ S0 m
20161025104514893.png
; a. y% A, a7 u5 f' R+ w( p1 r: R1 {5 `( f
main.c
4 \/ ^4 M6 f0 U8 N! t4 w5 y* X3 V: c+ g0 ~
20161025104520902.png " [: r6 }( U8 n

, g- k% u; b6 ]9 r
8 g  M- b$ A1 _* U
————————————————  ]+ ]: y6 J9 r, O7 F
版权声明:高原@
- R' Y: F' N! x- V4 p2 P, O/ L
* X/ M. C; F  j2 k7 k
+ N* L, i: {, K9 f& r. Y( M; v  C2 N  j2 R& ?
赞 收藏 评论0 发布时间:2023-1-6 17:39

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版