×
嵌入式 > 嵌入式开发 > 详情

STM32笔记 ADC篇

发布时间:2020-09-14 发布时间:
|
一、总转换时间的问题:
总转换时间TCONV = 采样时间+ 转换时间(转换时间=12.5个周期)

其中,采样时间是指完成一次转换到开始下一次转换的时间间隔,不包括转换时间;转换时间是固定的12.5个周期。采样时间有几个固定值可以选择设定。

二、ADON:开/关A/D转换器

该位由软件设置和清除。当该位为0时,写入1将把ADC从断电模式下唤醒。当该位为1时,写入1将启动转换。在转换器上电至转换开始有一个延迟时间tSTAB。

函数void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);虽然描述说是使能失能ADC,其实就是对ADON的操作,也就是说,当ADON为0时,该函数为唤醒ADC,当ADON为1时,为启动转换。

三、ADC开始转换的问题

芯片资料有以下两段话:

“单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动,也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。

“在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。”

此处的关键点是:单次模式下,注入通道只能用软件启动,不能用ADON启动。但连续模式则可以用这两个方式启动。

四、中断的问题

JEOC:该位由硬件在所有注入通道组转换结束时设置,由软件清除

EOC:该位由硬件在(规则或注入)通道组转换结束时设置,由软件清除或由读取ADC_DR时清除

注意点:a、规则和注入都可以产生EOC标志,而JEOC标志只有注入组产生。

b、规则和注入都可以产生EOC中断,而JEOC中断只能由注入组产生。

c、JEOC只能软件清除,硬件不会自动清除,但是EOC在读取ADC_DR规则数据寄存器时,硬件会自动清除。(这条一定要注意,浪费我半天的时间才找到原因。)



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32 TIMx 配置