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

查看: 1093|回复: 1

[STM32L496] 【NUCLEO-L496ZG评测3】电位器AD转换

[复制链接]

14

主题

521

回帖

19

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2017-5-25 17:53:20 | 显示全部楼层 |阅读模式
仔细阅读L496Datasheet会发现,其共有312bitADC5Msps, ADC1能达到19个通道,资源还是挺丰富的。在参考手册的ADC main feature中说的很清楚。板子上没有电位器,找了个电位器按常规套路连接到板子上,就可以测试AD了。
引脚参考图1datasheet的图2.

然后就是程序的初始化,初始化引脚:
  1.   GPIO_InitStruct.Pin = GPIO_PIN_0;
  2.     GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
  3.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  4.     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
复制代码

初始化AD1
  1.   hadc1.Instance = ADC1;
  2.   hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
  3.   hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  4.   hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  5.   hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
  6.   hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  7.   hadc1.Init.LowPowerAutoWait = DISABLE;
  8.   hadc1.Init.ContinuousConvMode = ENABLE;
  9.   hadc1.Init.NbrOfConversion = 1;
  10.   hadc1.Init.DiscontinuousConvMode = DISABLE;
  11.   hadc1.Init.NbrOfDiscConversion = 1;
  12.   hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  13.   hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
  14.   hadc1.Init.DMAContinuousRequests = ENABLE;
  15.   hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
  16.   hadc1.Init.OversamplingMode = DISABLE;
  17.   if (HAL_ADC_Init(&hadc1) != HAL_OK)
  18.   {
  19.     Error_Handler();
  20.   }
复制代码

使能时钟:
  1.   __HAL_RCC_GPIOC_CLK_ENABLE();
  2.   __HAL_RCC_ADC_CLK_ENABLE();
复制代码


下载到板子中,通过仿真watch1窗口,转动电位器,观察数据的变化。如图3和图4所示:

这只是简单的ADC测试,通过这个外设功能,还可以实现其他扩展功能。

图1

图1

图2

图2
t34.jpg
t33.PNG
<
回复

使用道具 举报

11

主题

661

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-6-8
发表于 2017-6-27 10:22:22 | 显示全部楼层
学习学习。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版