stm32 引脚映射 和 ADC
2016-03-08 20:08
288 查看
老是弄不明白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转换:
注入组实际是通过中断触发后来进行扫描转换。即如下:
总结:关于间断模式的内容以及注入的内容很少只涉及粗浅的概念,因为我还没有具体的机会去实践它,没有时间去实践就没有发言权。。。先把简单的弄明白好了,有朝一日再相会,千树万树梨花开。
来自为知笔记(Wiz)
好了,写到这,我已经看了中文手册一上午了,可是啥都没看懂,下午接着看,写代码不重要,理论高于实际。
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转换:
注入组实际是通过中断触发后来进行扫描转换。即如下:
总结:关于间断模式的内容以及注入的内容很少只涉及粗浅的概念,因为我还没有具体的机会去实践它,没有时间去实践就没有发言权。。。先把简单的弄明白好了,有朝一日再相会,千树万树梨花开。
来自为知笔记(Wiz)
相关文章推荐
- CRC校验代码实现
- cordova for ios: Unable to simultaneously satisfy constraints.
- 并查集(模板)
- 1039
- 大面积敷铜和网格敷铜
- Adapter系列之SimpleAdapter
- docker一:基础原理
- Opencvtest 人脸识别程序 自学知识记录
- Java经典设计模式之十一种行为型模式(附实例和详解)
- Java经典设计模式之十一种行为型模式(附实例和详解)
- Java经典设计模式之十一种行为型模式(附实例和详解)
- <Unity3D>Unity3D入门篇——第六讲 GUI控件(四)
- Android开发之实现强制下线功能(下)
- 【poj 2774】 后缀数组 height【】
- Java经典设计模式之十一种行为型模式(附实例和详解)
- C语言深度剖析-----最终的胜利
- 第二周项目二-就拿胖子说事
- asp.net 获取select值传到后台
- android开发中常见布局的注意点
- TYVJ2018 小猫爬山