二十一、ADC模数转换实验
目录
一、ADC的介绍
1.ADC的特点
2.通道和引脚的对应关系
3.注入通道和规则通道
4.转换模式
5.ADC中断
6.ADC的时钟
二、寄存器的介绍
1.ADC_CR1
2.ADC_CR2
3.ADC 采样事件寄存器(ADC_SMPR1 和 ADC_SMPR2)
4.ADC 规则序列寄存器(ADC_SQR1~3)
5.ADC 规则数据寄存器(ADC_DR)
6.ADC 状态寄存器(ADC_SR)
三、配置函数
一、ADC的介绍
1.ADC的特点
ADC控制器有多个通道 可以选择通道 可以给通道排序设置优先级
2.通道和引脚的对应关系
3.注入通道和规则通道
注入通道的位置是可以设置的
STM32 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你 的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之 后,规则通道才得以继续转换。
4.转换模式
5.ADC中断
6.ADC的时钟
二、寄存器的介绍
1.ADC_CR1
2.ADC_CR2
3.ADC 采样事件寄存器(ADC_SMPR1 和 ADC_SMPR2)
4.ADC 规则序列寄存器(ADC_SQR1~3)
5.ADC 规则数据寄存器(ADC_DR)
6.ADC 状态寄存器(ADC_SR)
三、配置函数
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
ADC 时钟复位的方法是:
ADC_DeInit(ADC1);
这个函数非常容易理解,就是复位指定的 ADC。
3)初始化 ADC1 参数,设置 ADC1 的工作模式以及规则序列的相关信息。
在设置完分频因子之后,就可以开始 ADC1 的模式配置了,设置单次转换模式、触发方式选择、数据对齐方式等都在这一步实现。同时,还要设置 ADC1 规则序列的相关信息, 这里只有一个通道,并且是单次转换的,所以设置规则序列中通道数为 1。这些在库函数 中是通过函数 ADC_Init 实现的。
typedef struct
{
uint32_t ADC_Mode;
FunctionalState ADC_ScanConvMode;
FunctionalState ADC_ContinuousConvMode;
uint32_t ADC_ExternalTrigConv;
uint32_t ADC_DataAlign;
uint8_t ADC_NbrOfChannel;
}ADC_InitTypeDef;
ADC_Cmd(ADC1, ENABLE);//使能指定的 ADC1
ADC_ResetCalibration(ADC1);
ADC_StartCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1)); //等待复位校准结束
while(ADC_GetCalibrationStatus(ADC1)); //等待校 AD 准结束
void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel,
uint8_t Rank, uint8_t ADC_SampleTime);
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );
软件开启 ADC 转换的方法是:
ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能指定的 ADC1 的软件转换启动功能
ADC_GetConversionValue(ADC1);
同时在 AD 转换中,我们还要根据状态寄存器的标志位来获取 AD 转换的各个状态信息。库函 数获取 AD 转换的状态信息的函数是:
FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)
比如我们要判断 ADC1d 的转换是否结束,方法是:
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
二十一、ADC模数转换实验相关推荐
- 51单片机 | ADC模数转换实验
文章目录 一.ADC介绍 1.ADC简介 2.ADC 转换原理 二.XPT2046 芯片介绍 三.硬件设计 四.软件设计 1.ADC 读写函数 2.主函数 五.实验现象 前面我们介绍的都是对数字信 ...
- 51单片机——ADC模数转换实验
目录 一.功能描述 二.ADC介绍 2.1 逐次逼近型ADC转换原理 2.2 ADC的主要技术指标 三.XPT2046芯片介绍 3.1 XPT2046外部引脚 3.2 XPT2046的命令字 3.3 ...
- 实验14:ADC模数转换实验
一.ADC简介 ADC:Analog-to-Digital Converter的缩写,指模拟/数字转换器.是将连续变量的模拟信号转换为离散的数字信号的器件. 典型的模拟数字转换器将模拟信号转换为表示一 ...
- ADC 模数转换实验
生活中的模拟信号,如温度.声音.压力等,需要转换为更方便储存.处理和发射的数字形式. 51 单片机无法直接操作这些模拟量,其系统内部时运算都是数字量 0 和 1,因此必须将模拟量转换成数字量.数字量, ...
- 【iCore3 双核心板】例程二十一:LAN_TCPS实验——以太网数据传输
实验指导书及代码包下载: http://pan.baidu.com/s/1ntTjWpV iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 单片机:ADC模数转换实验(内含ADC介绍+XPT2046芯片介绍+硬件电路设计+软件编程设计+原始代码)
ADC简介 单片机只能分析数字信号,帮你分析模拟信号.所以接受外界模拟量--->数字量(0或1) 分辨率:模拟信号能输出离散信号的个数.通常用2进制存储,所以通常用bit.输入5V,最小的电压 ...
- 51单片机ADC模数转换
51单片机ADC模数转换 ADC介绍 1.ADC简介 ADC(analog to digital converter)也称为模数转换器,是指一个将模拟信号转变为数字信号.单片机在采集 ...
- STM32物联网项目-ADC采集实验板板温度(NTC热敏电阻)
STM32 ADC采集板载温度 STM32 ADC简介 STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立使用, 也可以使用双重模 ...
- 飞思卡尔16位单片机(五)——ADC模数转换模块测试
一.介绍 ADC模块的作用是将模拟的电压信号转换为CPU可以处理的数字信号.一些低端的单片机上没有ADC模块,必须使用片外的ADC芯片,才能实现模数转换的功能.而飞思卡尔的单片机一般是集成了ADC模块 ...
最新文章
- Matlab编程与数据类型 -- 多分支条件选择语句if/elseif/…/else/end
- 3. Port scanners (端口扫描器 4个)
- DL:神经网络算法简介之耗算力的简介、原因、经典模型耗算力计算、GPU使用之详细攻略
- Git 之四 分支管理
- 【渝粤题库】陕西师范大学200401 初等代数研究 作业(专升本)
- 百万数据下几种SQL性能测试
- oracle data guard闪回,11gR2 Active Data Guard 闪回 - flashback database / snapshot standby - 2
- 一次oracle大量数据删除经历
- 判断力有时候有多么重要?懂得选择多么重要?
- 27. 考研与工作怎么选择
- 编写带界面的ActiveX控件(CAB网页控件)全过程
- Spring+Spring MVC+MyBatis实现SSM框架整合详细教程【转】
- 0ctf-2017-babyheap图解
- Dreamweaver中如何设定文字——大小、字体、颜色
- 怎么查二手苹果手机价格
- 刻意练习:机器学习实战 -- Task01. 决策树
- Gitlab的branch与Tag的使用
- 尚学堂j2ee视频教程
- 主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是“投影”?
- 爬虫基本原理与实战---1、爬虫实战概述
热门文章
- Java 获取 n个 工作日【前】或【后】的日期
- SOHO回归职场,英文介绍怎么做?
- 【security】spring项目出现【Please sign in】登录界面
- 怎么对阿里iconfont两个项目中的字体图标合并
- 用linux命令操作手机,Linux基本操作
- 二元运算符重载 must take either zero or one argument
- [JZOJ5445]失格
- navicat 链接mysql异常 2005 - Unknown MySQL server host ‘xxxxxxxxx‘(11001)
- autogloun自然语言处理
- (Java实现) 洛谷 P1115 最大子段和