【stm32】ADC的规则通道和注入通道混合使用
之前完成了规则通道DMA的数据传输了,不过平时在使用ADC的时候可能就会遇到很多情况,不可能就这样简单的按规则通道来采样,DMA存储,使用数据的;可能有时候会需要立刻采样,那样我们就需要利用到注入通道了。文档关于注入通道的解释:
1 利用外部触发或通过设置ADC_CR2寄存器的ADON位,启动一组规则通道的转换。 2 如果在规则通道转换期间产生一外部注入触发,当前转换被复位,注入通道序列被以单次扫描方式进行转换。 3 然后,恢复上次被中断的规则组通道转换。如果在注入转换期间产生一规则事件,注入转换不会被中断,但是规则序列将在注入序列结束后被执行。
1 ADC_InjectedSequencerLengthConfig(ADC1, 1);\\设置注入通道长度 2 ADC_InjectedChannelConfig(ADC1,ADC_Channel_10,1,ADC_SampleTime_7Cycles5);\\配置注入通道 3 ADC_SoftwareStartInjectedConvCmd(ADC1, ENABLE);\\开始注入通道数据采样和转换
ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_None);
如果设置了 JAUTO 位,在规则组通道之后,注入组通道被自动转换。这可以用来转换在 ADC_SQRx 和 ADC_JSQR 寄存器中设置的多至 20 个转换序列。
查了下文档,只有在规则通道的转换结束时才产生 DMA 请求,并将转换的数据从 ADC_DR 寄存器传输到用户指定的目的地址,还有注入方式转换后数据存储到 ADC_DRJx寄存器和规则方式转换后数据存储在ADC_DR寄存器中。
1 static void Protect_AdcInit(void) 2 { 3 ADC_InitTypeDef ADC_InitStructure; 4 5 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; 6 ADC_InitStructure.ADC_ScanConvMode = ENABLE; 7 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; 8 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//软件触发 9 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; 10 ADC_InitStructure.ADC_NbrOfChannel = 2;//规则通道的数量 11 ADC_Init(ADC1, &ADC_InitStructure);//这个大部分是初始化规则通道的 12 13 ADC_TempSensorVrefintCmd(ENABLE); 14 ADC_RegularChannelConfig(ADC1,ADC_Channel_TempSensor,1,ADC_SampleTime_239Cycles5); 15 ADC_RegularChannelConfig(ADC1,ADC_Channel_Vrefint,2,ADC_SampleTime_239Cycles5); 16 17 ADC_InjectedSequencerLengthConfig(ADC1, 1); 18 ADC_InjectedChannelConfig(ADC1,ADC_Channel_10,1,ADC_SampleTime_7Cycles5); 19 ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_None);//设置规则通道软件触发 20 /* Enable automatic injected conversion start after regular one */ 21 // ADC_AutoInjectedConvCmd(ADC1, ENABLE); 22 23 24 ADC_DMACmd(ADC1, ENABLE); 25 /* Enable ADC1 external trigger */ 26 ADC_ExternalTrigConvCmd(ADC1, DISABLE); 27 ADC_ExternalTrigInjectedConvCmd(ADC1, DISABLE); 28 29 ADC_Cmd(ADC1, ENABLE); 30 31 ADC_ResetCalibration(ADC1); 32 33 while(ADC_GetResetCalibrationStatus(ADC1)); 34 35 ADC_StartCalibration(ADC1); 36 37 while(ADC_GetCalibrationStatus(ADC1)); 38 39 }
转载于:https://www.cnblogs.com/nixianmin/p/3192634.html
【stm32】ADC的规则通道和注入通道混合使用相关推荐
- STM32 ADC多通道规则采样和注入采样
layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 什么是ADC? STM ...
- STM32-ADC规则通道和注入通道混合使用
STM32F407规则采样和注入采样混合使用和数据处理 1.ADC 1.1相关IO口.DMA宏定义(adc.h) 1.2ADC IO 口的配置(adc.c) 1.3DMA配置(adc.c) 1.3.1 ...
- STM32 ADC的规则通道和注入通道有什么区别(转)
STM32的每个ADC模块通过内部的模拟多路开关,可以切换到不同的输入通道并进行转换. STM32特别地加入了多种成组转换的模式,可以由程序设置好之后,对多个模拟通道自动地进行逐个地采样转换. 有2 ...
- STM32—规则通道和注入通道的知识总结
文章目录 规则序列 注入序列 规则序列 规则序列寄存器有 3个,分别为 SQR3.SQR2.SQR1.SQR3 控制着规则序列中的第一个到第六个转换,对应的位为:SQ1[4:0]~SQ6[4:0] ...
- STM32 ADC 同步规则模式 ADC1与ADC2同用一个DMA
STM32 ADC 支持同步规则模式 ,其官方解释为: 大致意思就是通道组的 ADC1 的多路开关(由 ADC1_CTLR2寄存器的 ETSRC[2:0]决定), ADC2 被同步触发.在 ADC1 ...
- STM32 进阶教程 17 - ADC注入通道
前言 STM32 的ADC的一个强大功能是支持触发注入功能,在103中每个ADC模块支持4个注入通道,每个注入通道具有独立的结果突存器,注入通道具有较规划通道更高的优先级,在实际工程应用中,注入通道更 ...
- ARM STM32F中ADC中 规则通道 注入通道 序列寄存器(SQR JSQR)的使用方法
STM32F中的ADC是十分强大的,使用方法多,寄存器多,操作也复杂.下面就来看看ADC中规则通道,注入通道及序列寄存器(SQR JSQR)到底该如何使用. 第一,看看规则通道与注入通道的区别 可以看 ...
- STM32 ADC模数转换
STM32 ADC模数转换 独立模式/双重DMA/三重DMA //使能ADC时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //APB2 ...
- STM32——ADC采集
目录 ADC简介 ADC主要特征 ADC功能框图 ADC引脚 电压输入范围 通道选择 单次转换模式 连续转换模式 转换顺序 规则序列 注入序列 触发源 转换时间 中断 转换结束中断 模拟看门狗中断 D ...
最新文章
- 文本去重之MinHash算法——就是多个hash函数对items计算特征值,然后取最小的计算相似度...
- OpenCV形态学变换函数morphologyEx()闭运算的使用
- 数论六之计算几何——An Easy Problem,Ancient Berland Circus,Open-air shopping malls
- asp.net下的“Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。”错误的一个可能的成因...
- 调整窗口大小时进行页面刷新(设定定时器)
- oracle 修改字段长度_Oracle修改字符集前如何找出可能出现问题的数据?
- alin39048错误原因_支付宝支付ALIN10146错误
- [DFA|有限状态机] leetcode 8 字符串转换整数(atoi)
- oppor15android10怎么降级,OPPO R9S7.1系统怎么降回6.0版本 OPPO R9S7.1系统降级教程
- session.createQuery()不执行和java.lang.reflect.InvocationTargetException
- 三下乡心得——勿忘农村
- 分治法 --- 大整数的乘法
- 《数学之美》--吴军
- win10输入法不能切换_Win10升级后中英文输入法无法切换?一个简单设置,10秒轻松搞定...
- Microsoft Word 标题编号变成黑块的解决方法
- [原][小说]我和她同居的日子 二
- 如何正确地写存储过程
- 网络安全-网站后台的寻找+网页JS文件信息收集
- 中国免疫抑制剂药物市场趋势报告、技术动态创新及市场预测
- June 18(th)
热门文章
- sporadic偶发实时任务多核分区动态优先级EDF(或者DM)调度(以及可调度性分析)经典算法详解
- python怎么表示正无穷_Python 表示无穷大的数
- ROS自主导航 - 实验教学方案
- pdfh5使用及不显示pdf文件原因
- 计算机微格教学心得体会,微格教学心得体会6篇_微格教学体会报告
- 物联卡一直显示待激活怎么办_物联卡开始要求活体认证,这种纯流量卡你以后还管乱使用吗?...
- 安卓手机微信浏览器缓存问题
- 【k8s的持久化存储】PV、PVC、StorageClass讲解
- python -- 计算 平方,乘方,平方根
- 【申博攻略】二.北交计算机学院学术型博士“申请-考核”攻略(申请材料篇)