目录
概述
1 ADC数据转换模式介绍
1.1 功能介绍
1.2 ADCx_CFGR
2 连续转换模式 (CONT=1)
2.1 功能介绍
2.2 连续转换模式
2.3 转换序列完成
3 注意问题
概述
本文主要介绍STM32H750外设之ADC连续转换模式的相关内容,包括与之相关的寄存器的控制位bit。每个bit位的含义等。
1 ADC数据转换模式介绍
1.1 功能介绍
STM32H750外设之ADC的数据转换模式有很多,这里主要介绍连续转换模式 。在连续转换模式 下, ADC 会将通道的所有转换执行连续转换数据。 CONT 位为 1 时,需要通过多个步骤来启动此模式。这些参数可以通过寄存器ADCx_CFGR,ADCx_CR、ADCx_IER、ADCx_IER来配置。
1.2 ADCx_CFGR
ADC x 配置寄存器 (ADCx_CFGR)( x=1 到 3)
ADC x configuration register
偏移地址: 0x0C
复位值: 0x8000 0000
位 13 CONT:常规转换的单次/连续转换模式 (Single / continuous conversion mode for regular conversions)
此位由软件置 1 和清零。该位置 1 时,常规转换将持续进行,直到该位清零。
0:单次转换模式
1:连续转换模式
注意:
不能同时使能不连续模式和连续模式:禁止同时将 DISCEN 和 CONT 位置 1。仅当 ADSTART=0 时(这可确保当前未进行任何常规转换),才允许通过软件对此位执行写操作。
如果使能了双重模式( ADCx_CCR 寄存器的 DAMDF 位不等于零),则从 ADC 的 CONT 位不
再可写,其内容与主 ADC 的 CONT 位相等。
2 连续转换模式 (CONT=1)
2.1 功能介绍
该模式仅适用于常规通道。
在连续转换模式下,如果发生软件或硬件常规触发事件, ADC 会将通道的所有常规转换执行一次,随后会自动重启并持续执行序列的每个转换。 CONT 位为 1 时,可通过外部触发或将ADCx_CR 寄存器中的 ADSTART 位置 1 来启动此模式。
2.2 连续转换模式
1)常规序列转换步骤
step-1: 在常规序列中,每次转换完成后,转换数据存储在 32 位 ADCx_DR 寄存器中
ADC x 常规数据寄存器 (ADCx_DR)( x=1 到 3)
ADC x regular Data Register
偏移地址: 0x40
复位值: 0x0000 0000
step-2: EOC(转换结束)标志置 1
ADC x 中断和状态寄存器 (ADCx_ISR)( x=1 到 3)
ADC x interrupt and status register
偏移地址: 0x00
复位值: 0x0000 0000
位 2 EOC:转换结束标志 (End of conversion flag)
当通道的每次常规转换结束,新数据出现在 ADCx_DR 寄存器时,会通过硬件将该位置 1。通过软件向该位写入 1,或读取 ADCx_DR 寄存器都可将该位清零。
0:常规通道转换未完成(或标志事件已通过软件确认并清零)
1:常规通道转换已完成
step-3: EOCIE 位置 1 时将产生中断
ADC x 中断使能寄存器 (ADCx_IER)( x=1 到 3)
ADC x interrupt enable register
偏移地址: 0x04
复位值: 0x0000 0000
位 2 EOCIE:常规转换结束中断使能 (End of regular conversion interrupt enable)
此位由软件置 1 和清零,用于使能/禁止常规转换结束中断。
0:禁止 EOC 中断
1:使能 EOC 中断 EOC 位置 1 时产生中断。
注: 仅当 ADSTART=0 时(这可确保当前未进行任何常规转换),才允许通过软件对此位执行写操作。
2.3 转换序列完成
转换序列完成后:
step-1: EOS(序列结束)标志置 1
位 3 EOS:常规序列结束标志 (End of regular sequence flag)
常规通道序列转换结束后,硬件将该位置 1。通过软件写入 1 可将该位清零。
0:常规转换序列未完成(或标志事件已通过软件确认并清零)
1:常规转换序列已完成
step-2: EOSIE 位置 1 时将产生中断
位 3 EOSIE:常规转换序列结束中断使能 (End of regular sequence of conversions interrupt enable)
此位由软件置 1 和清零,用于使能/禁止常规转换序列结束中断。
0:禁止 EOS 中断
1:使能 EOS 中断。 EOS 位置 1 时产生中断。
注: 仅当 ADSTART=0 时(这可确保当前未进行任何常规转换),才允许通过软件对此位执行写操作
step-3: 随后,会立即重启新序列, ADC 会继续重复执行转换序列。
3 注意问题
要转换单个通道,可将序列长度编程为 1。不能同时使能不连续模式和连续模式:禁止同时将 DISCEN 和 CONT 位置 1。
注入通道不能连续转换,唯一例外的是,在连续转换模式下(使用 JAUTO 位)注入通道配置为在常规通道后的自动转换,请参见自动注入模式一节。