老是弄不明白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的更多相关文章

  1. STM32重映射(PinRemap)的使用,注意!

    STM32重映射,内容和细节稍后补充,这里只说几个注意点,花了我一晚上的时间调试终于找到问题所在了... 芯片: STM32f107vct6 晶振: 25M 通过分频器与锁相环,使系统时钟为72M 背 ...

  2. STM32内存映射

    一.概述 STM32内存映射是STM32的架构的重要组成部分,不可或缺. 二.STM32内存映射图 1.内存映射图--摘自<CM3权威指南> 2.内存映射图--摘自<STM32F10 ...

  3. STM32学习笔记(七) ADC模数转换测电平(普通和DMA模式)

    嵌入式系统在微控制领域(温度,湿度,压力检测,四轴飞行器)中占据着重要地位,这些功能的实现是由微处理器cpu(如stm32)和传感器以及控制器共同完成的,而连接他们,使它们能够互相正常交流的正是本小节 ...

  4. STM32 C++编程 004 Adc (数模转换)类

    使用 C++ 语言给 STM32 编写一个 Adc 类 我使用的STM32芯片:STM32F103ZET6 我们使用的STM32库版本:V3.5.0 注意: 想学习本套 STM32 C++编程 的专栏 ...

  5. STM32存储器映射和寄存器映射

    存储器映射 对于Cortex-M3来讲,有一块4G大小的存储器空间.存储器映射指的是芯片厂商为这个空间分配地址的操作.这4G空间被均匀地划分为8个大小为512MB的存储块(block),并且每个块都各 ...

  6. STM32重映射

  7. 嵌入式02 STM32 实验01 端口复用和重映射

    内设与外设: 端口复用和端口重映射都需要了解内设和外设,那么什么是内设?什么是外设? 内设:单片机内部集成的功能一般包括:串口模块.SPI模块(Serial Peripheral Interface  ...

  8. STM32端口复用和映射

    STM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明.我们知道每个内置外设都有若干个输入输 ...

  9. STM32.ADC

    ADC实验 原理图: 1.ADC配置函数 /* enable adc1 and config adc1 to dma mode */ ADC1_Init(); /** * @brief ADC1初始化 ...

随机推荐

  1. mobile crane 1

    void MobileCrane::rotateRope2() { //double r_angle1 = rotateRope + rorate3; //std::cout << &qu ...

  2. python web开发——django学习(一)第一个连接mysql数据库django网站运行成功

    1.新建一个项目 2.新建一些文件夹方便管理 3.新建一个项目叫message  4.连接数据库 python web开发Django连接mysql 5.在数据库里自动生成django的表  6.运行 ...

  3. Spring Boot 使用MockMvc对象模拟调用Controller

    功能实现之后,我们要养成随手写配套单元测试的习惯,这在微服务架构中尤为重要.通常,我们实施微服务架构的时候,已经实现了前后端分离的项目与架构部署.那么在实现后端服务的时候,单元测试是在开发过程中用来验 ...

  4. LeetCode_303. Range Sum Query - Immutable

    303. Range Sum Query - Immutable Easy Given an integer array nums, find the sum of the elements betw ...

  5. Bmp格式图片与16进制的互相转换简解 Python

    BMP TO HEX 首先介绍Github上一个简单的Bmp转成16进制的py: https://github.com/robertgallup/bmp2hex 网上这种例子很多.思路也简单:将bmp ...

  6. MVC4笔记 RedirectResult,RedirectToRoute

    RedirectResult:运行重新导向到其他网址,在RedirectResult的内部,基本上还是以Response.Redirect方法响应HTTP 302暂时导向. eg: public Ac ...

  7. 仔细看参数--NGINX之tcp_nodelay

    一.知识准备 ● 在nginx优化中有个经常需要设置的参数,tcp_nodelay ● 该参数最核心的功能,就是把小包组成成大包,提高带宽利用率也就是著名的nagle算法 ● tcp协议中,有一个现象 ...

  8. (模板)AC自动机模板

    模板1. 给出模式串和文本串,文本串长度小于1e6,模式串长度之和小于1e6,求文本串中有多少模式串出现. 题目链接:https://www.luogu.org/problem/P3808 AC co ...

  9. Jenkins在Mac上的安装与维护

    卸载 开篇提前说下, 因为很久之前用安装包装过的, 我要先卸载: /Library/Application\ Support/Jenkins/Uninstall.command 注意:如果没有权限的话 ...

  10. [转帖]Apache Kylin 概述

    Apache Kylin 概述 https://www.cnblogs.com/xiaodf/p/11671095.html 1 Kylin是什么 今天,随着移动互联网.物联网.AI等技术的快速兴起, ...