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

查看: 1086|回复: 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管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版