STM32G474xx HAL 用户手册
函数
ADC分层作用域的配置:通道
ADC导出函数

函数

__STATIC_INLINE void LL_ADC_SetChannelSamplingTime (ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
 设置所选ADC通道的采样时间 单位:ADC时钟周期。
__STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime (const ADC_TypeDef *ADCx, uint32_t Channel)
 获取所选ADC通道的采样时间 单位:ADC时钟周期。
__STATIC_INLINE void LL_ADC_SetChannelSingleDiff (ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff)
 设置所选ADC通道的单端或差分输入模式。
__STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff (const ADC_TypeDef *ADCx, uint32_t Channel)
 获取所选ADC通道的单端或差分输入模式。

函数文档

__STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime ( const ADC_TypeDef *  ADCx,
uint32_t  Channel 
)

获取所选ADC通道的采样时间 单位:ADC时钟周期。

注意:
在此器件上,采样时间作用于通道作用域:与通道映射到ADC常规组或注入组无关。
转换时间是采样时间与处理时间之和。在此STM32系列中,ADC处理时间为:
  • 12位ADC分辨率时为12.5个ADC时钟周期
  • 10位ADC分辨率时为10.5个ADC时钟周期
  • 8位ADC分辨率时为8.5个ADC时钟周期
  • 6位ADC分辨率时为6.5个ADC时钟周期
参考手册到LL API交叉引用:
SMPR1 SMP0 LL_ADC_GetChannelSamplingTime
SMPR1 SMP1 LL_ADC_GetChannelSamplingTime
SMPR1 SMP2 LL_ADC_GetChannelSamplingTime
SMPR1 SMP3 LL_ADC_GetChannelSamplingTime
SMPR1 SMP4 LL_ADC_GetChannelSamplingTime
SMPR1 SMP5 LL_ADC_GetChannelSamplingTime
SMPR1 SMP6 LL_ADC_GetChannelSamplingTime
SMPR1 SMP7 LL_ADC_GetChannelSamplingTime
SMPR1 SMP8 LL_ADC_GetChannelSamplingTime
SMPR1 SMP9 LL_ADC_GetChannelSamplingTime
SMPR2 SMP10 LL_ADC_GetChannelSamplingTime
SMPR2 SMP11 LL_ADC_GetChannelSamplingTime
SMPR2 SMP12 LL_ADC_GetChannelSamplingTime
SMPR2 SMP13 LL_ADC_GetChannelSamplingTime
SMPR2 SMP14 LL_ADC_GetChannelSamplingTime
SMPR2 SMP15 LL_ADC_GetChannelSamplingTime
SMPR2 SMP16 LL_ADC_GetChannelSamplingTime
SMPR2 SMP17 LL_ADC_GetChannelSamplingTime
SMPR2 SMP18 LL_ADC_GetChannelSamplingTime
参数:
ADCxADC实例
Channel此参数可以是以下值之一: (1) 在STM32G4上,此参数仅在ADC实例上可用:ADC1。
(2) 在STM32G4上,此参数仅在ADC实例上可用:ADC2。
(3) 在STM32G4上,此参数仅在ADC实例上可用:ADC3。
(4) 在STM32G4上,此参数仅在ADC实例上可用:ADC4。
(5) 在STM32G4上,此参数仅在ADC实例上可用:ADC5。
(6) 在STM32G4上,此参数仅在ADC实例上可用:ADC1、ADC3、ADC5。
(7) 在STM32G4上,此参数仅在ADC实例上可用:ADC1、ADC3、ADC4、ADC5。
在此STM32系列中,并非所有器件上都提供所有ADCx。具体请参考器件数据手册。 (8) 在STM32G4上,快速通道允许:2.5个(采样)+12.5个(转换)=15个ADC时钟周期(fADC)以12位分辨率进行转换。其他通道是慢速通道,允许:6.5个(采样)+12.5个(转换)=19个ADC时钟周期(fADC)以12位分辨率进行转换。
返回值:
返回值可以是以下值之一: (1) 在某些器件上,ADC采样时间2.5个ADC时钟周期可以被3.5个ADC时钟周期替代。请参考函数LL_ADC_SetSamplingTimeCommonConfig()

定义于文件stm32g4xx_ll_adc.h第6358行

引用__ADC_PTR_REG_OFFSETADC_CHANNEL_SMPRX_REGOFFSET_MASKADC_CHANNEL_SMPx_BITOFFSET_MASKADC_CHANNEL_SMPx_BITOFFSET_POSADC_SMPRX_REGOFFSET_POS

__STATIC_INLINE uint32_t LL_ADC_GetChannelSingleDiff ( const ADC_TypeDef *  ADCx,
uint32_t  Channel 
)

获取所选ADC通道的单端或差分输入模式。

注意:
当将通道'i'配置为差分模式时,通道'i+1'不能单独使用。因此,为确保通道配置为单端模式,必须回读通道本身和通道'i-1'的配置(以确保所选通道未被前一通道配置为差分模式)。
请参考参考手册以确保所选通道可用于差分模式。例如,内部通道(VrefInt、TempSensor等)不可用于差分模式。
当将通道'i'配置为差分模式时,通道'i+1'不能单独使用。
在STM32G4上,某些通道内部固定为单端输入配置:
  • ADC1:通道12、15、16、17和18
  • ADC2:通道15、17和18
  • ADC3:通道12、16、17和18 (1)
  • ADC4:通道16、17和18 (1)
  • ADC5:通道2、3、4、16、17和18 (1) (1) ADC3/4/5并非在所有器件上都可用,具体请参考器件数据手册。
可以选择一个或多个值。在这种情况下,如果所有通道都处于单端模式,则返回值为零。示例:(LL_ADC_CHANNEL_4 | LL_ADC_CHANNEL_12 | ...)
参考手册到LL API交叉引用:
DIFSEL DIFSEL LL_ADC_GetChannelSingleDiff
参数:
ADCxADC实例
Channel此参数可以是以下值的组合:
返回值:
0,通道处于单端模式,否则:通道处于差分模式

定义于文件stm32g4xx_ll_adc.h第6483行

__STATIC_INLINE void LL_ADC_SetChannelSamplingTime ( ADC_TypeDef *  ADCx,
uint32_t  Channel,
uint32_t  SamplingTime 
)

设置所选ADC通道的采样时间 单位:ADC时钟周期。

注意:
在此器件上,采样时间作用于通道作用域:与通道映射到ADC常规组或注入组无关。
对于要转换的内部通道(VrefInt、TempSensor等):必须遵守采样时间约束(采样时间可根据ADC时钟频率和采样时间设置进行调整)。请参考器件数据手册中的时序值(参数TS_vrefint、TS_temp等)。
转换时间是采样时间与处理时间之和。在此STM32系列中,ADC处理时间为:
  • 12位ADC分辨率时为12.5个ADC时钟周期
  • 10位ADC分辨率时为10.5个ADC时钟周期
  • 8位ADC分辨率时为8.5个ADC时钟周期
  • 6位ADC分辨率时为6.5个ADC时钟周期
对于ADC转换内部通道(VrefInt、温度传感器等),需要最小的采样时间值。请参考器件数据手册。
在此STM32系列上,此功能的设置前提条件是ADC状态:ADC必须禁用或启用但常规组或注入组上没有正在进行转换。
参考手册到LL API交叉引用:
SMPR1 SMP0 LL_ADC_SetChannelSamplingTime
SMPR1 SMP1 LL_ADC_SetChannelSamplingTime
SMPR1 SMP2 LL_ADC_SetChannelSamplingTime
SMPR1 SMP3 LL_ADC_SetChannelSamplingTime
SMPR1 SMP4 LL_ADC_SetChannelSamplingTime
SMPR1 SMP5 LL_ADC_SetChannelSamplingTime
SMPR1 SMP6 LL_ADC_SetChannelSamplingTime
SMPR1 SMP7 LL_ADC_SetChannelSamplingTime
SMPR1 SMP8 LL_ADC_SetChannelSamplingTime
SMPR1 SMP9 LL_ADC_SetChannelSamplingTime
SMPR2 SMP10 LL_ADC_SetChannelSamplingTime
SMPR2 SMP11 LL_ADC_SetChannelSamplingTime
SMPR2 SMP12 LL_ADC_SetChannelSamplingTime
SMPR2 SMP13 LL_ADC_SetChannelSamplingTime
SMPR2 SMP14 LL_ADC_SetChannelSamplingTime
SMPR2 SMP15 LL_ADC_SetChannelSamplingTime
SMPR2 SMP16 LL_ADC_SetChannelSamplingTime
SMPR2 SMP17 LL_ADC_SetChannelSamplingTime
SMPR2 SMP18 LL_ADC_SetChannelSamplingTime
参数:
ADCxADC实例
Channel此参数可以是以下值之一: