1. ADC的初始化部分基本一致,下面是引脚复用配置

  1. void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
  2. {
  3. GPIO_InitTypeDef GPIO_InitStruct;
  4. // static DMA_HandleTypeDef hdma_adc;
  5.  
  6. /*##-1- Enable peripherals and GPIO Clocks #################################*/
  7. /* ADC1 Periph clock enable */
  8. ADCx_CLK_ENABLE();
  9. /* Enable GPIO clock ****************************************/
  10. ADCx_CHANNEL_GPIO_CLK_ENABLE();
  11. /* Enable DMA2 clock */
  12. // DMAx_CLK_ENABLE();
  13.  
  14. /*##-2- Configure peripheral GPIO ##########################################*/
  15. /* ADC Channel GPIO pin configuration */
  16. GPIO_InitStruct.Pin = ADCx_CHANNEL_PIN;
  17. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  18. GPIO_InitStruct.Pull = GPIO_NOPULL;
  19. HAL_GPIO_Init(ADCx_CHANNEL_GPIO_PORT, &GPIO_InitStruct);
    }

2. 下面是功能初始化

  1. void adc_ac712_init(void)
  2. {
  3. ADC_ChannelConfTypeDef sConfig;
  4. /*##-1- Configure the ADC peripheral #######################################*/
  5. AdcHandle.Instance = ADCx;
  6. AdcHandle.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV4;
  7. AdcHandle.Init.Resolution = ADC_RESOLUTION_12B;
  8. AdcHandle.Init.ScanConvMode = DISABLE; /* Sequencer disabled (ADC conversion on only 1 channel: channel set on rank 1) */
  9. AdcHandle.Init.ContinuousConvMode = ENABLE; /* Continuous mode disabled to have only 1 conversion at each conversion trig */
  10. AdcHandle.Init.DiscontinuousConvMode = DISABLE; /* Parameter discarded because sequencer is disabled */
  11. AdcHandle.Init.NbrOfDiscConversion = ;
  12. AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Conversion start trigged at each external event */
  13. AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1;
  14. AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  15. AdcHandle.Init.NbrOfConversion = ;
  16. AdcHandle.Init.DMAContinuousRequests = DISABLE;
  17. AdcHandle.Init.EOCSelection = DISABLE;
  18.  
  19. if (HAL_ADC_Init(&AdcHandle) != HAL_OK)
  20. {
  21. /* ADC initialization Error */
  22. //Error_Handler();
  23. }
  24.  
  25. /*##-2- Configure ADC regular channel ######################################*/
  26. sConfig.Channel = ADC_CHANNEL_1;
  27. sConfig.Rank = ;
  28. sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
  29. sConfig.Offset = ;
  30. if (HAL_ADC_ConfigChannel(&AdcHandle, &sConfig) != HAL_OK)
  31. {
  32. /* Channel Configuration Error */
  33. //Error_Handler();
  34. }
  35.  
  36. /*##-3- Start the conversion process #######################################*/
  37. if (HAL_ADC_Start(&AdcHandle) != HAL_OK)
  38. {
  39. /* Start Conversation Error */
  40. //Error_Handler();
  41. }
  42. }

3.  ADC的数据采集有3中方式,中断,DMA,正常查询模式,下面是正常查询模式的代码

  1. HAL_ADC_PollForConversion(&AdcHandle, );
  2. //if(HAL_ADC_GetState(&AdcHandle) == HAL_ADC_STATE_EOC_REG)
  3. if((HAL_ADC_GetState(&AdcHandle) & HAL_ADC_STATE_EOC_REG) == HAL_ADC_STATE_EOC_REG)
  4. {
  5. /*##-5- Get the converted value of channel ##*/
  6. uhADCxConvertedValue = HAL_ADC_GetValue(&AdcHandle);
  7. }

STM32F405的内部ADC采集的更多相关文章

  1. TMS320VC5509片内ADC采集

    1. ADC采集比较简单,内部的10位的ADC,AIN0-AIN3的输入,主要是用的CSL的库函数#include <csl_adc.h> ; Uint16 samplestoraage[ ...

  2. ADC采集电流相关知识

    1.AD电流采样电路,是把电路中的电流用采样元件转换为电压信号,然后用ADC量化转换为相应的数字信号.需要你在被采集端串联一个采样电阻,然后采集采样电阻两端的电压,这样就可以把电流输出变换为电压输出. ...

  3. 关于esp32的ADC采集

    对于ADC采集 程序源码如下: /* ADC1 Example This example code is in the Public Domain (or CC0 licensed, at your ...

  4. 关于ADC采集

    对于ADC采集,想问的一些问题 1.如何初始化? 需要初始化 2.哪里可以看到是多少位采集? 3.8位ADC采集的误差是多少? 4.基准电压从哪里取?

  5. CC2530的ADC采集外部电压

    初窥ZIGBEE 要在zigbee的组网中加入烟雾传感器的模块,所以需要用到cc2530的ADC对传感器输出的模拟信号进行采样.下面是自己对实现用CC2530的ADC采集外部电压的程序过程. 以下是A ...

  6. STM32L15x——ADC采集DMA数据只第一次正确(已解决)

    前提:我用的芯片是STM32L系列,可能对其它STM32系列不完全适用,仅供参考! 一.问题描述 我在使用DMA方式读取单ADC单通道采集的数据时,发现只能正确的采集一次数据,后来的就一直与第一次的相 ...

  7. stm8 同时使用dac和adc 采集异常,电平异常

    这种现象在早期的 使用stm8l151的dac 和adc相互干扰很厉害.后来通过读手册发现  相邻三个引脚一般不建议同时使用dac和adc.也就是这两种功能,引脚分配至少隔离三个引脚.内部为了节省成本 ...

  8. 关于右移和除法的关系 , ADC采集电量 ,ADC采集MIC(麦克风)

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  9. STM32F103VET6 ADC采集64点做FFT变换

    http://www.stmcu.org/module/forum/thread-598459-1-11.html http://bbs.21ic.com/icview-589756-1-1.html ...

随机推荐

  1. Tarjan算法分解强连通分量(附详细参考文章)

    Tarjan算法分解强连通分量 算法思路: 算法通过dfs遍历整个连通分量,并在遍历过程中给每个点打上两个记号:一个是时间戳,即首次访问到节点i的时刻,另一个是节点u的某一个祖先被访问的最早时刻. 时 ...

  2. 微信小程序~模板template引用

    当您的项目需要多次使用同一个布局和样式的时候,您就可以考虑使用template(模板)来减少冗余代码. 使用方式: 1.新建一个template文件夹来存放您的通用模板: 2.在文件夹里面新建一个wx ...

  3. 《Java周边》vue开发环境搭建(windows)

    1. NodeJs 安装包下载 百度云:链接: https://pan.baidu.com/s/169TdKRLZd0dXbKSGTr8evw 提取码: th4a 复制这段内容后打开百度网盘手机App ...

  4. 《Coderxiaoban团队》团队作业5:项目需求分析改进与系统设计

    实验八 <Coderxiaoban团队>团队作业5:项目需求分析改进与系统设计 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 团队作业5:项目需求分析改进与 ...

  5. Laravel —— 特殊分页

    项目中,分页经常会用到. Laravel 中也自带了分页功能. 但有些时候需要稍作修改,来满足自己的需求. 一.普通分页 1.控制器中,用 paginate() 方法. $users = DB::ta ...

  6. Java 第十次作业

    题目1:计算通过中介买房的过程,需交纳的中介费和契税. 代码 /** Business接口中: 两个成员变量RATIO,TAX分别代表房屋中介收取的中介费用占房屋标价的比例及购房需要交纳的契税费用占房 ...

  7. Oracle EXPDP导出数据

    Oracle expdp导出表数据(带条件): expdp student/123456@orcl dumpfile=student_1.dmp logfile=student_1.log table ...

  8. 06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作

    上篇文章中,我们只看到了 dio 的使用方式,但并未跟应用关联起来,所以这一篇将 dio 网络请求与应用界面结合起来,当然这也是为以后的实战作基础准备,基础打牢,我们才能飞速前进. 1.案例说明 我们 ...

  9. LeetCode 1087. Brace Expansion

    原题链接在这里:https://leetcode.com/problems/brace-expansion/ 题目: A string S represents a list of words. Ea ...

  10. WinDbg常用命令系列---显示数字格式化.formats

    .formats (Show Number Formats) .formats命令在当前线程和进程的上下文中计算表达式或符号,并以多种数字格式显示它. .formats expression 参数: ...