zoukankan      html  css  js  c++  java
  • stm32 引脚映射 和 ADC

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

     

     

     

     

    好了,写到这,我已经看了中文手册一上午了,可是啥都没看懂,下午接着看,写代码不重要,理论高于实际。

     

    ADC的四种模式:单次转换模式,连续转换模式,扫描模式,间断模式(间断模式分为规则组和注入组)

    单次转换模式ADC只执行一次转换,CONT=0

    连续转换模式ADC转换一结束就启动另一次转换,CONT=1

    扫描模式:在每个组的每个通道上执行单次转换,在每个转换结束时,同一组的下一个通道被自动转换。

    如果设置了CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。

    间断模式:每一次外部触发信号可以执行一个短序列的n次转换(对于规则组n<16,对于注入组n<4,直到此序列的所有转换完成为    止。

    注:当以间断模式转换一个规则组时,转换序列结束后不自动从头开始。

           当所有子组被转换完成,下一次触发启动第一个子组的转换(下面的第四次触发)

    例如: n=3,被转换的通道= 01234567

        第一次触发: 转换的序列为 012

      第二次触发: 转换的序列为 345

        第三次触发: 转换的序列为 67  (此处不从头开始,此处产生EOC事件)

        第四次触发: 转换的序列为 012

     

    放到代码上看

    单个通道单次转换: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转换:

     

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

     

     

     

     

    总结:关于间断模式的内容以及注入的内容很少只涉及粗浅的概念,因为我还没有具体的机会去实践它,没有时间去实践就没有发言权。。。先把简单的弄明白好了,有朝一日再相会,千树万树梨花开。





  • 相关阅读:
    当el-input输入多行内容,反显时,字符串需要换行显示
    【前端】记录自己在leetcode上的刷题之路
    本地提代码到github上,不显示贡献值的问题
    关于对象的深拷贝和浅拷贝
    js判断两个数值区间是否存在重叠或覆盖
    解决vue-print-nb打印el-table,不同分辨率下,打印显示不全的问题
    vue实现置顶功能
    el-table设置自定义表头,当表头内容过长时,鼠标悬浮显示完整内容
    省市用element级联选择器,构造树形结构的数据(两层)
    STL隐蔽知识点
  • 原文地址:https://www.cnblogs.com/dchipnau/p/5255401.html
Copyright © 2011-2022 走看看