2083|0

16

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

F7评测⑤——读取ADC值 [复制链接]

在原先的工程基础上,来继续F7的学习,今天想了解下STM32F7的ADC功能,首先背面的arudino排针座,我全给拆了,因为手上没有相应的模块,全部焊接成插针,方便我的使用和学习,看看这彩色的插针效果还不错吧, 就是拆的时候比较费劲,下面我们查看原理图找到我们需要使用的AD口 使用ADC1模块,首先需要进行IO的初始化,

   GPIO_InitTypeDef GPIO_InitStruct;
    __HAL_RCC_ADC1_CLK_ENABLE();

    /**ADC1
    PC2     ------> ADC1_IN12
    PA4     ------> ADC1_IN4
    PA6     ------> ADC1_IN6
    */
    GPIO_InitStruct.Pin = GPIO_PIN_2;
    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_6;
    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
设置为模拟输入,无上拉
   
   下面进行ADC1的初始化
  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; //四分频
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;                     //12位精度
  hadc1.Init.ScanConvMode = DISABLE;
  hadc1.Init.ContinuousConvMode = DISABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.NbrOfConversion = 1;
  hadc1.Init.DMAContinuousRequests = DISABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  if (HAL_ADC_Init(&hadc1) != HAL_OK)
  {
    Error_Handler();
  }

在进行了ADC1初始化后,我们在读取ADC之前需要对通道进行初始化
    ADC_ChannelConfTypeDef sConfig;
  sConfig.Channel = ADC_CHANNEL_6;                                      //通道6
  sConfig.Rank = 1;
  sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
    if (HAL_ADC_ConfigChannel(&hadc1,&sConfig)!=HAL_OK)
  {
    Error_Handler();
  }

我们在while(1)中简单调用
    HAL_ADC_Start(&hadc1);
    printf("%d\r\n",HAL_ADC_GetValue(&hadc1));
    HAL_ADC_Stop(&hadc1);
    HAL_Delay(500);
就可以看到现象了,我们这边手焊接了一个电位器用于ADC的测试,用螺丝刀拧动电位器就可以看到现象了。

同样的我们将ADC的值显示在电容屏上。






点击此处,查看STM32F769I开发板官方资源。
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表