ADC固件驱动程序(HAL库)

 本文是对STM32 HAL库中 ADC 结构体的总结,内容来自《UM1725 User Manual Description of STM32F4xx HAL drivers 》,该文档可在ST官网查询下载。

ADC_HandleTypeDef 结构体

ADC_TypeDef                      *Instance;         /* ADC 寄存器基地址 */

ADC_InitTypeDef                  Init;                  /* ADC 所需参数 */

__IO uint32_t        NbrOfCurrentConversionRank;        /* 当前转换等级的 ADC 数 */ DMA_HandleTypeDef         *DMA_Handle;                   /* DMA 结构体指针 */

HAL_LockTypeDef               Lock;                                 /* ADC 锁定对象 */

__IO uint32_t                       State;                                /* ADC 工作状态 */

__IO uint32_t                       ErrorCode;                        /* ADC 错误代码 */

ADC_InitTypeDef  结构体

uint32_t   ClockPrescaler;                 /* 设置预分频系数,即 PRESC[3:0]位 */

uint32_t   Resolution;                        /* 配置 ADC 的分辨率 */

uint32_t   DataAlign;                         /* 配置 ADC 的对齐方式 */

uint32_t   ScanConvMode;               /* 扫描模式 */

uint32_t   EOCSelection;                  /* 转换完成标志位 */

uint32_t   ContinuousConvMode;     /* 开启连续转换模式否则就是单次转换模式 */

uint32_t   DMAContinuousRequests;                 /* DMA 转换请求模式*/

uint32_t   NbrOfConversion;                              /* 设置转换通道数目 */

uint32_t   DiscontinuousConvMode;                 /* 单次转换模式选择 */

uint32_t   NbrOfDiscConversion;                      /* 单次转换通道的数目 */

uint32_t   ExternalTrigConvEdge;                    /* ADC 外部触发极性*/

uint32_t   ExternalTrigConv;                            /* ADC 外部触发源选择 */

 下面对 ADC_InitTypeDef 结构体中的各个成员进行详细介绍(内容来自用户手册):

ClockPrescaler,选择ADC的时钟频率,这个时钟适用所有ADC。参数可选:ADC_CLOCKPRESCALER_PCLK_DIV2、ADC_CLOCKPRESCALER_PCLK_DIV4、ADC_CLOCKPRESCALER_PCLK_DIV6、ADC_CLOCKPRESCALER_PCLK_DIV8,即2、4、6、8分频。

Resolution,配置ADC的分辨率。参数可选:ADC_RESOLUTION12b、ADC_RESOLUTION10b、ADC_RESOLUTION8b、ADC_RESOLUTION6b,即12位、10位、8位、6位。

DataAlign,指定ADC的数据对齐是左对齐还是右对齐。参数可选:ADC_DATAALIGN_RIGHT、ADC_DATAALIGN_LEFT。

ScanConvMode,指定是否执行扫描(多通道)模式转换或者单次(单通道)模式转换。参数可选:ENABLE 或 DISABLE。(若使用单通道单次转换则选择 DISABLE)

EOCSelection,指定是否设置EOC标志,在单通道转换完成后或者在全部转换完成后。参数可选:EOC_SINGLE_CONV、EOC_SEQ_CONV。

ContinuousConvMode,指定执行转换是连续模式还是单次模式。参数可选:ENABLE 或 DISABLE。(选择 ENABLE 则开启连续转换模式)

DMAContinuousRequests,指定DMA请求是执行连续模式还是单次模式。参数可选:ENABLE 或 DISABLE。(ENABLE 则开启连续模式)

NbrOfConversion,指定ADC常规转换通道的数量。参数可选:1~16。

DiscontinuousConvMode,指定是否执行不连续转换模式。参数可选:ENABLE 或 DISABLE。(选择 ENABLE 则开启不连续转换模式)

NbrOfDiscConversion,指定ADC不连续转换使用常规装换通道的数目。参数可选:1~8。

ExternalTrigConvEdge,选择外部触发边沿并且使能常规组的触发。参数可选:ADC_EXTERNALTRIGCONVEDGE_NONE(禁止触发检测)、ADC_EXTERNALTRIGCONVEDGE_RISING(上升沿触发)、ADC_EXTERNALTRIGCONVEDGE_FALLING(下降沿触发)、ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING(上升沿下降沿均可触发)。

ExternalTrigConv,触发源选择。

ADC_ChannelConfTypeDef 结构体

 uint32_t         Channel

 uint32_t         Rank

 uint32_t         SamplingTime

 uint32_t         Offset

Channel,ADC通道配置。

Rank,常规组发生器的序列。

SamplingTime,所选通道的采样时间。

Offset,保留以供未来使用,可设置为0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1560780.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【vue】监听table水平滚动条切换tab后还原位置

有个需求就是切换tab后,原先的table水平滚动条要还原位置(如下图),先说下思路,大致就是 切出页面时 把滚动距离保存到Storage 中,切回来时在恢复 直接上代码 首先table ref指定一下ref"jtable" …

如何从回收站恢复永久删除的文件

我们每个人都有一些重要的数据,这些数据对我们的专业和个人工作都很有用。最糟糕的噩梦就是不小心从电脑中删除了重要文件。当你清空回收站时,情况就变得无法控制了。如果你遇到这种情况,别担心;我们今天在这里帮助你 在清空回收站…

ArgoCD如何使用ArgoCD CLI

1.下载CLI工具 2.添加到环境变量,或者创建/usr/bin的快捷方式 3. 获取API Server 地址 首先,你需要获取Argo CD API server的访问地址。如果你使用的是端口转发来访问Argo CD的控制台,API server的地址通常是 localhost 和与端口转发命令中…

LabVIEW开关磁阻电机特性测量系统

基于LabVIEW软件和特定硬件组件的开关磁阻电机(SRM)特性测量系统,结合多功能数据采集卡,统能够准确地测量并分析SRM的电磁特性,从而支持电机模型的精确建立和性能优化。 项目背景 在工业生产和家用电器领域&#xff0…

建站:腾讯云+宝塔linux+xftp

1.首先,控制台,服务器 2.服务器-网络与域名-ip地址,能看到公网地址 3.宝塔Linux面板-网站-添加站点 4.填写域名会自动生成 ftp 帐号密码 域名可以加上端口,端口号可以写大点 5.xftp新建会话 主机地址:腾讯云拿到的公…

免费又好用的保护网站WAF,基于语义引擎的waf雷池社区版推荐

为什么传统规则防护失效了?🤔 目前,大多数 Web 应用防火墙(WAF)依赖规则匹配来识别和阻断攻击流量。然而,随着 Web 攻击的低成本、复杂多样的手段和频繁爆发的高危漏洞,管理人员不得不频繁调整防…

网络参考模型

OSI七层网络参考模型 OSI模型仅作为参考,现实中并不用,OSI模型的目的是为了解决主机之间的网络通讯。 1. 物理层: 物理层将由比特(0和1)组成的数据用不同的媒介(电、光或其他形式的电磁波)传输…

解决Microsoft store下载/更新时出现错误代码: 0x80070422的方法

首先winr,输入services.msc打开服务面板 找到Microsoft store安装服务这一项,双击打开 启动类型设为自动或手动,然后启动,点击确定即可

Vatee万腾平台:开启企业数字化新纪元的钥匙

在当今瞬息万变的商业环境中,企业数字化转型已成为不可逆转的趋势。这一转型不仅关乎企业的生存与发展,更是企业在激烈的市场竞争中保持领先地位的关键。Vatee万腾平台,作为数字化领域的佼佼者,正以其卓越的性能和广泛的应用场景&…

薪资与职级全景:一览互联网巨头的晋升之路

薪资与职级全景:一览互联网巨头的晋升之路 帮大家整理了包含阿里巴巴、腾讯、百度、字节跳动、华为、京东、美团、滴滴、小米 9*多家 家互联网大厂的薪资、职级、考核、晋升**等内容。 (超多内容,建议收藏起来慢慢看) 字节跳动 全…

什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路

一、什么是虚拟DOM 虚拟 DOM (Virtual DOM )这个概念相信大家都不陌生,从 React 到 Vue ,虚拟 DOM 为这两个框架都带来了跨平台的能力(React-Native 和 Weex) 实际上它只是一层对真实DOM的抽象,以JavaScript 对象 (VNode 节点) 作为基础的树,用对象的属性来描述节点,…

开放式耳机哪个品牌好?2024开放式蓝牙耳机排行榜推荐

​在当今的耳机界,开放式耳机凭借其舒适的佩戴感和新颖的非入耳构造,赢得了众多用户的青睐。这种耳机设计让你在享受音乐的同时,还能清楚地听到周围的声音,方便交流,对耳朵健康也更友好。对于喜欢运动和追求音质的朋友…

【Golang】Go多线程中数据不一致问题解决方案--sync锁机制

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

怎样批量删除大量的QQ邮件?

当你的QQ邮箱中存在大量的邮件,手动删除的话,只能批量删除一页数据,显得很费力!我教大家一个快速删除邮件的方法: 第一步:设置收信规则 第二步:利用收信规则,可将将收件箱中的文件…

C++:vector(题目篇)

文章目录 前言一、只出现一次的数字二、只出现一次的数字 II三、只出现一次的数字 III四、杨辉三角五、删除有序数组中的重复项六、数组中出现次数超过一半的数字七、电话号码的字母组合总结 前言 今天我们一起来看vector相关的题目~ 一、只出现一次的数字 只出现一次的数字…

echarts 中添加图片/图标

let myChart echarts.init(this.$refs.chartOne); // 注意这里的 ref 引用 myChart.setOption({ tooltip: {trigger: item,formatter: {b} : {c}},series: [{type: pie,radius: 50%,data: this.swjList,label: {formatter: (params) > {if (params.name ! ) {let percent…

程序设计基础I-实验7 函数(编程题)

7-1 sdut- C语言实验—计算表达式 计算下列表达式值: 输入格式: 输入x和n的值,其中x为非负实数,n为正整数。 输出格式: 输出f(x,n),保留2位小数。 输入样例: 3 2输出样例: 在这里给出相应的输出。例如: 2.00 …

JUC高并发编程11:Fork/Join分支合并框架

1 Fork/Join 框架简介 Fork/Join 框架是 Java 7 引入的一种并行编程框架,用于将一个大任务拆分成多个小任务进行并行处理,最后将子任务的结果合并成最终的计算结果。Fork/Join 框架的核心思想是将任务递归地分解为更小的子任务,直到子任务足…

Zilliz获Forrester报告全球第一;OB支持向量能力;Azure发布DiskANN;阿里云PG发布内置分析引擎

重要更新 1. Azure发布PostgreSQL向量索引扩展DiskANN,声称在构建HNSW/IVFFlat索引上,速度、精准度都超越pg_vector,并解决了pg_vector长期存在的偶发性返回错误结果的问题( [1] )。 2. 阿里云RDS PostgreSQL 发布AP加速引擎(rds…

Rust编程的函数

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust编程与项目实战_夏天又到了的博客-CSDN博客 7.1 函 数 定 义 在Rust中,函数使用fn关键字定义,后跟函数…