stm32 引脚映射 和 ADC
老是弄不明白ADC的输入到底在哪,看了stm32F103Ve的datasheet,将引脚和通道的映射关系贴在下面:




好了,写到这,我已经看了中文手册一上午了,可是啥都没看懂,下午接着看,写代码不重要,理论高于实际。
ADC的四种模式:单次转换模式,连续转换模式,扫描模式,间断模式(间断模式分为规则组和注入组)
单次转换模式:ADC只执行一次转换,CONT=0。
连续转换模式:ADC转换一结束就启动另一次转换,CONT=1。
扫描模式:在每个组的每个通道上执行单次转换,在每个转换结束时,同一组的下一个通道被自动转换。
如果设置了CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。
间断模式:每一次外部触发信号可以执行一个短序列的n次转换(对于规则组n<16,对于注入组n<4),直到此序列的所有转换完成为 止。
注:当以间断模式转换一个规则组时,转换序列结束后不自动从头开始。
当所有子组被转换完成,下一次触发启动第一个子组的转换(下面的第四次触发)
例如: n=3,被转换的通道= 0、1、2、3、4、5、6、7
第一次触发: 转换的序列为 0、1、2
第二次触发: 转换的序列为 3、4、5
第三次触发: 转换的序列为 6、7 (此处不从头开始,此处产生EOC事件)
第四次触发: 转换的序列为 0、1、2
放到代码上看:
单个通道单次转换:ADC_NbrOfChannel = 1
ADC_ScanConvMode = DISABLE
ADC_ContinuousConvMode = DISABLE
多个通道单次转换:ADC_NbrOfChannel = n
ADC_ScanConvMode = ENABLE
ADC_ContinuousConvMode = DISABLE
单个通道连续转换:ADC_NbrOfChannel = 1
ADC_ScanConvMode = DISABLE
ADC_ContinuousConvMode = ENABLE
多个通道连续转换:ADC_NbrOfChannel = n
ADC_ScanConvMode = ENABLE
ADC_ContinuousConvMode = ENABLE
关于常规扫描模式和注入扫描模式:
先上图两张:


规则组是正常的ADC转换:

注入组实际是通过中断触发后来进行扫描转换。即如下:

总结:关于间断模式的内容以及注入的内容很少只涉及粗浅的概念,因为我还没有具体的机会去实践它,没有时间去实践就没有发言权。。。先把简单的弄明白好了,有朝一日再相会,千树万树梨花开。
stm32 引脚映射 和 ADC的更多相关文章
- STM32重映射(PinRemap)的使用,注意!
STM32重映射,内容和细节稍后补充,这里只说几个注意点,花了我一晚上的时间调试终于找到问题所在了... 芯片: STM32f107vct6 晶振: 25M 通过分频器与锁相环,使系统时钟为72M 背 ...
- STM32内存映射
一.概述 STM32内存映射是STM32的架构的重要组成部分,不可或缺. 二.STM32内存映射图 1.内存映射图--摘自<CM3权威指南> 2.内存映射图--摘自<STM32F10 ...
- STM32学习笔记(七) ADC模数转换测电平(普通和DMA模式)
嵌入式系统在微控制领域(温度,湿度,压力检测,四轴飞行器)中占据着重要地位,这些功能的实现是由微处理器cpu(如stm32)和传感器以及控制器共同完成的,而连接他们,使它们能够互相正常交流的正是本小节 ...
- STM32 C++编程 004 Adc (数模转换)类
使用 C++ 语言给 STM32 编写一个 Adc 类 我使用的STM32芯片:STM32F103ZET6 我们使用的STM32库版本:V3.5.0 注意: 想学习本套 STM32 C++编程 的专栏 ...
- STM32存储器映射和寄存器映射
存储器映射 对于Cortex-M3来讲,有一块4G大小的存储器空间.存储器映射指的是芯片厂商为这个空间分配地址的操作.这4G空间被均匀地划分为8个大小为512MB的存储块(block),并且每个块都各 ...
- STM32重映射
- 嵌入式02 STM32 实验01 端口复用和重映射
内设与外设: 端口复用和端口重映射都需要了解内设和外设,那么什么是内设?什么是外设? 内设:单片机内部集成的功能一般包括:串口模块.SPI模块(Serial Peripheral Interface ...
- STM32端口复用和映射
STM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明.我们知道每个内置外设都有若干个输入输 ...
- STM32.ADC
ADC实验 原理图: 1.ADC配置函数 /* enable adc1 and config adc1 to dma mode */ ADC1_Init(); /** * @brief ADC1初始化 ...
随机推荐
- pyenv、virtualenv、virtualenvwrapper三种python多版本介绍
今天有把此前接触过的三种python实现多版本环境用到的软件pyenv.virtualenv.virtualenvwrapper,了解了一番,现做如下总结: 一.pyenv: 是针对python多版本 ...
- 利用cglib给javabean动态添加属性,不用在建VO
有的时候 比如你用的是hibernate或者Spring jdbc 来做dao层进行数据库相关的操作的时候,若果是单表的操作的时候 还比较简单 hibernate可直接返回(get,load)你的需要 ...
- Swift细节记录<一>
1.全局变量记录: import UIKit class HHTSwitchGlobalData: NSObject { var isWaiterAutoPop: Bool = true privat ...
- Dockerfile-server1
[root@lab2 docker-file]# cd server1/ [root@lab2 server1]# ls a.sh ddbes-server1-0.0.1-SNAPSHOT.jar D ...
- 【Leetcode_easy】836. Rectangle Overlap
problem 836. Rectangle Overlap solution: class Solution { public: bool isRectangleOverlap(vector< ...
- 【Luogu P1345】[USACO5.4]奶牛的电信Telecowmunication
Luogu P1345 很容易发现这题要求的是网络流中的最小割. 关于最小割,我们有最大流最小割定理:最小割的容量一定等于最大流的流量 但是这个定理是用于求最小割边,而题目要求我们求的是最小割点. 那 ...
- Vmware player--打开vmdk; 导出系统;
https://www.cnblogs.com/wxdblog/p/7091496.html 用vmware player打开已经存在的VMDK的方法: https://jingyan.baidu.c ...
- 关于工作中.net转java遇到的一个远程调用传递重复参的问题。
工作中遇到一个很奇怪的传参问题.之前.net使用的是一个List列表,列表中有几个重复的参数.列表中使用的model类是KeyValue. 我使用java模仿其写法,传递List和KeyValue.对 ...
- Linux基础-06-vi编辑器
1. vi编辑器简介 1) vi的定义:vi是一个UNIX和Linux系统内嵌的标准正文(文字)编辑器,它是一种交互类型的正文编辑器,它可以用来创建和修改正文文件. 2. vi编辑器的操作模式 vi编 ...
- 机器学习支持向量机SVM笔记
SVM简述: SVM是一个线性二类分类器,当然通过选取特定的核函数也可也建立一个非线性支持向量机.SVM也可以做一些回归任务,但是它预测的时效性不是太长,他通过训练只能预测比较近的数据变化,至于再往后 ...