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

【STM32G4 NUCLEO G431RB】3.简单的电位器 AD

[复制链接]
jundao721 发布时间:2019-9-13 11:29
A/D功能在模拟信号采集中用的很多,查看DATASHEET,该款芯片有两个AD可用,通道数达到23个。查看了一下例程,通过例程来学习理解G431的AD应用。这次测试找了一个小电位器,焊几根线到测试板上,连接3.3V,GND,PA1,就可以进行测试了。如图1所示:
通过例程学习到,AD通过TIM1触发,DMA管理来完成数据转换的,移植过来,理解一下即可。
还是初始化时钟,依然使用内部时钟。初始化引脚,初始化外设功能,部分参考代码如下:
此处需要修改
  1. sConfig.Channel = ADC_CHANNEL_2;//ADC_CHANNEL_6;
    5 M7 L( U+ R* w- Q5 i9 Z/ N! O
  2.   sConfig.Rank = ADC_REGULAR_RANK_1;
    : D; [$ j5 o8 r! U$ `2 j
  3.   sConfig.SamplingTime = ADC_SAMPLETIME_640CYCLES_5;/ }5 b/ H0 c( @: e7 F, C) p2 C# M
  4.   sConfig.SingleDiff = ADC_SINGLE_ENDED;
    ! D0 e3 x4 H3 d2 v- d
  5.   sConfig.OffsetNumber = ADC_OFFSET_NONE;
    " Q! X& B* g0 U7 \. V7 T, I  b
  6.   sConfig.Offset = 0;
    4 V7 B% L$ D3 K6 u% r0 j3 K, b
  7.   if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
    4 p9 H- U  [/ [! F* m5 ^% q, F$ M( v) C
  8.   {2 g' C) F3 I8 u
  9.     Error_Handler();% q% ]& V' l& ]3 N' O; v
  10.   }
复制代码
  1. __HAL_RCC_ADC12_CLK_ENABLE();
    5 `+ g) N% n3 W5 R1 A
  2.   
    3 H$ i3 `0 M% E# ]! I7 a) c
  3.     __HAL_RCC_GPIOA_CLK_ENABLE();
    - p7 Q7 B' P% `7 I4 a9 Q
  4. GPIO_InitStruct.Pin = GPIO_PIN_1;
    ' d- z! J# P8 f+ q# N
  5.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
      `. ]( l- Z7 \( h
  6.     GPIO_InitStruct.Pull = GPIO_NOPULL;! O2 K$ t/ b+ |- S, n5 m
  7.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
复制代码
其他的可参照例程理解。& Y, ~( h4 J' ~) \, L  L
编译,下载,通过DEBUG模式,将转换数据加载到watch1窗口中,通过螺丝刀转动电位器,观测电位器数值的变化,如图2所示。
最小值为0,最大值并不是预想的0xFFF。又看了一遍datasheet,A/D的转换范围为0-3.6V,板子上接的3.3V,想来原因就是这个。如图3所示。
关于A/D的数值抖动,的确是需要做些处理$ e) w+ H" W' _9 _

# \+ g3 \: L+ l# F

图1

图1

图2

图2

图3

图3
收藏 1 评论1 发布时间:2019-9-13 11:29

举报

1个回答
Kevin_G 回答时间:2019-9-16 13:41:50
收藏

所属标签

相似技术帖

官网相关资源

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