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

【经验分享】STM32F0 ADC(DMA中断)多通道

[复制链接]
STMCU小助手 发布时间:2022-2-10 21:28
  1. /**; a, Z' g' i6 l! u2 C* f* c" m
  2.   * @brief  配置ADC1的工作模式2 j: q1 k& m. d1 ^3 S7 d/ {
  3.   * @param  无
    * {+ D* G$ A* F: g
  4.   * @retval 无
    0 z2 y  M  m7 u
  5.   */+ P( c( u* e6 n
  6. static void ADC1_Mode_Init(void)1 t$ p9 p/ c4 p7 K3 z
  7. {* l5 j, N. I8 Y# T: n' {
  8.         ADC_InitTypeDef     ADC_InitStructure;
    9 O2 O* S2 S& c, @
  9.         /*设置ADC分频因子为4 ,ADC最大时间不能超过14M*/' E: S" k* a1 |4 E
  10.         RCC_ADCCLKConfig(RCC_ADCCLK_PCLK_Div4);
    * w( X+ A9 Z9 E
  11.         /* ADC1 Periph clock enable */
    8 U- J. k7 b0 s3 W
  12.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
    $ o, D! b7 E5 M2 t& ]+ t  t$ R& r
  13.         /* ADC1 DeInit */
    ' j. J' v; I! W- K
  14.         ADC_DeInit(ADC1);) E1 [* d5 c7 ^
  15.         /*初始化ADC结构体,此句必须加,不加的话多路ADC数据会交换*/
    4 e# N' h% V! {9 q( t4 {
  16.         ADC_StructInit(&ADC_InitStructure);5 ?1 j3 ]) P4 q
  17.         /*配置ADC分辨率为12位*/
    ; U3 J. Z' H3 R* n. ]: \0 v5 d" O
  18.         ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
    / M+ G# I+ B- j3 I
  19.         /*开启连续转换*/7 ]4 z, [6 f& P9 i) V* s! f3 d5 a
  20.         ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
    . |, Z; o) R$ G6 i
  21.         /*禁止触发检测,使用软件触发*/
    2 O7 y1 ~- m. x
  22.         ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
    8 m4 ?! q: C; V. Z
  23.         /*ADC采集数据右对齐*/
    ! i: a. h! s  [4 Y6 O
  24.         ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;" N% z" k" Q2 C9 r3 [3 q
  25.         /*向上扫描*/
    2 Q4 b5 p. Z! E/ T7 ]4 O8 `4 T
  26.         ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;; ?0 q2 F9 h9 {4 i4 u
  27.         /*ADC初始化*/
    - g, y6 Y) P- M" x' f) u
  28.         ADC_Init(ADC1, &ADC_InitStructure);# |' X( l! j* G, c
  29.         /*配置采样通道及时间*/
    " T; g1 R% W/ o6 C7 D  Y0 P, w
  30.         ADC_ChannelConfig(ADC1, ADC_Channel_0 | ADC_Channel_1, ADC_SampleTime_239_5Cycles);, `& `  m( t8 g! \7 ?& \1 O: B  S
  31.         /* ADC 校准 */6 F; H1 O; v: u0 Z0 O8 |4 T9 D8 ]& B
  32.         ADC_GetCalibrationFactor(ADC1);! K6 _) p/ e1 }$ H# Z& R2 P7 A
  33.         /* 循环模式下的 ADC DMA 请求 */" ]/ B# q' g: n; V( ]& Z
  34.         ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);
    % |! C" e3 x, ^$ h2 x+ P8 n
  35.         /* 使能 ADC_DMA */' D& @( a% S. \( h$ D9 _7 T; X8 C
  36.         ADC_DMACmd(ADC1, ENABLE);
    ) D3 [8 n$ E0 \& j& q! A" C
  37.         /* 使能 ADC1 */
    * F* {9 `, k$ {
  38.         ADC_Cmd(ADC1, ENABLE);
    2 e0 E* L' _- M
  39.         /* 等待 ADCEN 标志 */  P% ^0 U5 ?& V% e% g
  40.         while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN));
      V0 b# L) ]' o6 U" s2 s" a: |
  41.         /*  ADC1 常规软件启动转换 *// a: Z# B3 j( ^5 f; ~7 g; E# e
  42.         ADC_StartOfConversion(ADC1);
    5 W5 `) I- f" {$ \5 C( l5 s+ Q) z
  43. }
复制代码

) O' z% ^5 u. g4 u. R
赞 收藏 评论0 发布时间:2022-2-10 21:28

举报

0个回答

所属标签

相似技术帖

官网相关资源

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