ADC的各种模式

  • 前言
    • 1、STM系列ADC的参数:
    • 2、ADC的几种工作模式
      • 单次转换模式
      • 连续转换模式
      • DMA
      • 双ADC模式
    • 3、函数
    • 4、具体操作
    • 参考资料

前言

ADC采样是一种常见的功能

1、STM系列ADC的参数:

手册中关于ADC的介绍

● 12位分辨率
● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断
● 单次和连续转换模式
● 从通道0到通道n的自动扫描模式
● 自校准 ● 带内嵌数据一致性的数据对齐
● 采样间隔可以按通道分别编程
● 规则转换和注入转换均有外部触发选项
● 间断模式
● 双重模式(带2个或以上ADC的器件)
● ADC转换时间: ─ STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs) ─ STM32F101xx基本型产品:时钟为28MHz时为1μs(时钟为36MHz为1.55μs) ─ STM32F102xxUSB型产品:时钟为48MHz时为1.2μs ─ STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)
● ADC供电要求:2.4V到3.6V ● ADC输入范围:VREF- ≤ VIN ≤ VREF+
● 规则通道转换期间有DMA请求产生

2、ADC的几种工作模式

单次转换模式

通俗来说,这种就是进行一次转换之后就不再转换

单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2寄存器的ADON位(只 适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。 一旦选择通道的转换完成:
● 如果一个规则通道被转换: ─ 转换数据被储存在16位ADC_DR寄存器中 ─ EOC(转换结束)标志被设置 ─ 如果设置了EOCIE,则产生中断。
● 如果一个注入通道被转换: ─ 转换数据被储存在16位的ADC_DRJ1寄存器中 ─ JEOC(注入转换结束)标志被设置 ─ 如果设置了JEOCIE位,则产生中断。 157/754 参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
模拟/数字转换(ADC) STM32F10xxx参考手册 然后ADC停止。

连续转换模式

*通俗来说,这种就是不停转换

在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启 动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。 每个转换后:
● 如果一个规则通道被转换: ─ 转换数据被储存在16位的ADC_DR寄存器中 ─ EOC(转换结束)标志被设置 ─ 如果设置了EOCIE,则产生中断。
● 如果一个注入通道被转换: ─ 转换数据被储存在16位的ADC_DRJ1寄存器中 ─ JEOC(注入转换结束)标志被设置 ─ 如果设置了JEOCIE位,则产生中断。

DMA

因为规则通道转换的值储存在一个仅有的数据寄存器中,所以当转换多个规则通道时需要使用 DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据

双ADC模式

在有2个或以上ADC模块的产品中,可以使用双ADC模

3、函数

基本函数讲解:

/*** @brief  使能adc*/
HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc)/*** @brief  Wait for regular group conversion to be completed.*  */
HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout)/*** @brief  Get ADC regular group conversion result.获取ADC值
* @retval ADC group regular conversion data*/
uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc)

4、具体操作

打开adc

设置adc参数,生成工程
这里那我们一般选择最高位分辨率,然后12位对齐,最后选择连续转换

开启中断,生成工程:

我们可以在mx_adc_init里面设置配置值

我们可以直接采集数据

while(1)
{uint8_t time = 10;uint32_t val=0;uint8_t t;for(t=0;t<times;t++){temp_val+=GET_ADC(hadc,ch);HAL_Delay(5);}return temp_val/times;
}

参考资料

链接: ADC操作详解.
链接: ADC不同模式详解.

STM32+FreeRTOS+CUBEMX_学习笔记(五 )ADC采样相关推荐

  1. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  2. STM32 HAL库学习笔记4-SPI

    STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...

  3. 【K210】K210学习笔记五——串口通信

    [K210]K210学习笔记五--串口通信 前言 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口接收相关定义 K210串口发送接收测试 完整源码 前言 本人大四学生 ...

  4. STM32F407霸天虎HAL库学习笔记——使用ADC采集MQ135的数据并通过OLED显示

    STM32F407霸天虎HAL库学习笔记--使用ADC采集MQ135的数据并通过OLED显示 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil MQ135.c MQ135.h main函 ...

  5. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

  6. Ethernet/IP 学习笔记五

    Ethernet/IP 学习笔记五 Accessing data within a device using a non-time critical message (an explicit mess ...

  7. StackExchange.Redis学习笔记(五) 发布和订阅

    StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...

  8. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  9. 好程序员教程分析Vue学习笔记五

    好程序员教程分析Vue学习笔记五,上次我们学习了Vue的组件,这次我们来学习一下路由的使用.在Vue中,所谓的路由其实跟其他的框架中的路由的概念差不多,即指跳转的路径. 注意:在Vue中,要使用路由, ...

最新文章

  1. 东北大学 计算机网络试题,东北大学秦皇岛分校计算机网络考试试卷(含答案)
  2. 分享13个帮助你简化开发的jQuery插件
  3. Linux下Tomcat的启动、关闭
  4. java框内的值怎么同步_java并发编程使用锁进行数据同步操作一
  5. IT餐馆—第十六回 驱动
  6. 马士兵 redis 百度网盘_西甲周六攻略:巴萨 马竞 塞维利亚出战
  7. tomcat出现5个using_下肢深静脉血栓要警惕,出现这5个症状,马上看医生
  8. 关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
  9. 喜马拉雅音频转mp3方法
  10. pdf editor android,PDF万能编辑器app下载
  11. 黄聪:使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)
  12. 计算机系大二学年鉴定表,计算机大二学生自我鉴定
  13. 3ds Max 布尔(Boolean)运算——象棋的制作
  14. 深圳小汽车车牌竞拍价格预测
  15. 红帽子系统如何安装到服务器,Redhat(红帽子)安装使用及服务器应用FAQ.doc
  16. [转] 肾有多好人就有多年轻
  17. linux ubuntu18.1安装教程,Ubuntu 18.04上Qmmp安装教程
  18. Flume OG和Flume NG的区别
  19. html5下拉列表显示多列,多列网格样式下拉列表框美化jQuery插件
  20. Ubuntu linux中怎么查看自己的串口连接情况

热门文章

  1. 以身试法!盗版XP黑屏实测 教你一招:WGA新版破解方法[转自太平台电脑网]
  2. java免流_java免流制作教程
  3. 第十一届蓝桥杯大赛个人赛决赛(软件类)C/C++大学B组题解
  4. P02014241潘靖茹
  5. 《从0到1》读书笔记第8章“秘密”第1记: 浪潮之巅
  6. Mixlab跨学科“绝版”图书漂流ing……
  7. MAC硬盘目录结构详解及相关操作
  8. 让API并行调用变得如丝般顺滑的绝招
  9. 步进电机基础知识和基本应用
  10. 电脑强制关机后mysql_电脑强制关机后变得干什么都特别卡!求解?