本人手里的stm32f1033ADC,每个ADC最多有16个外部通道,精度是12位,如若我们想知道这个ADC是怎么办到将模拟信号转换成数字信号的,首先我们得会看他的功能框图:

 

 

  1. 是提供输入的电压。
  2. 提供最多16个通道(16IO端口)将电压传送至ADC
  3. 转换顺序类似于设置优先级,在这里暂讨论规则序列,注入序列暂不讨论。

 

 

  4.触发源:一种是直接有控制寄存器的相应位置位开始转换,复位停止转换;还有就是通过定时器或外部IO来触发,也有控制寄存器来选择和激活相应的触发源。

  5.转换时间:ADC_CLKPLCK2分频得到(分频系数只能是2/4/6/8),最大为14MHZ,转换时间(最短)=采样时间(最短为1.5个周期)+12.5个周期=1us

  6.数据寄存器:转换后的数据会放在规则数据寄存器或注入数据寄存器中,由于规则数据寄存器是一个32位,在单模式下使用低16位。ADC1ADC2一起使时, 高16ADC2使用,数据的存储方式由控制寄存器的相应位决定是左对齐还是右对齐。因为只有一个寄存器,所以完成传输之后,一般用DMA将数据传输到内存中保存。但注入数据寄存器有4个,使用的时候需注意哦。

  7.中断:规则通道转换结束中断,注入通道转换结束中断,这俩跟普通的中断一样操作就行;需要注意模拟看门狗中断,如果使能了这个中断,当电压高于或低于相应阈值都会产生这个中断。

  8.只有深刻理解每一小步,才能洞悉整体。

posted on 2018-07-31 11:14  lzd626  阅读(861)  评论(0编辑  收藏  举报