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初始化 ...
随机推荐
- 软件定义网络基础---NETCONF协议
netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议 一:NETCO ...
- Qt编写自定义控件62-探探雷达
一.前言 随着移动互联网的盛行,现在手机APP大行其道,每个人的手机没有十几个APP都不好意思说自己是现代人,各种聊天.购物.直播.小视频等APP,有个陌生人社交的APP叫探探,本人用过几次,当然不是 ...
- Python - Django - 命名空间模式
新建一个项目 app02 在 app02/ 下创建 urls.py: from django.conf.urls import url from app02 import views urlpatte ...
- NETTY option参数
Channel配置参数 (1).通用参数 CONNECT_TIMEOUT_MILLIS : Netty参数,连接超时毫秒数,默认值30000毫秒即30秒. MAX_MESSAGES_PER_REA ...
- [转]gcc的__builtin_函数介绍
链接地址:https://blog.csdn.net/jasonchen_gbd/article/details/44948523
- Go语言学习笔记——Go语言数据类型
布尔型 布尔型的值只可以是常量 true 或者 false.一个简单的例子:var b bool = true. 数字类型 整型 int 和浮点型 float32.float64,Go 语言支持整型和 ...
- MySQL插入大批量数据时报错“The total number of locks exceeds the lock table size”的解决办法
事情的原因是:我执行了一个load into语句的SQL将一个很大的文件导入到我的MySQL数据库中,执行了一段时间后报错"The total number of locks exceeds ...
- 【GStreamer开发】GStreamer基础教程12——流
目标 直接播放Internet上的文件而不在本地保存就被称为流播放.我们在前面教程里已经这样做过了,使用了http://的URL.本教程展示的是在播放流的时候需要记住的几个点,特别是: 如何设置缓冲 ...
- Flask项目中使用mysql数据库启动项目是发出警告
Flask项目中使用mysql数据库启动项目是发出警告: Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA ...
- poj3348(求凸包面积)
题目链接:https://vjudge.net/problem/POJ-3348 题意:转换题意后即是求凸包的面积. 思路: 套模板,求凸包面积即转换为多个三角形面积之和,用叉积求,然后除2,因为本题 ...