2.1 启用ADC时钟 ADC模块的时钟由APB2总线提供。在使用ADC之前,需要确保ADC时钟已启用。可以通过以下代码启用ADC时钟:RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;2.2 配置ADC引脚 STM32L051的ADC模块支持多个外部通道,每个通道对应一个特定的GPIO引脚。在使用某个通道之前,需要将该引脚配置为模拟输入模式。例如,...
ADC 电源要求:全速运行时为 2.4 V 到 3.6 V,慢速运行时为 1.8 V(决定当前的ADC的时钟频率) ADC 输入范围: VREF— VIN VREF+ 规则通道转换期间可产生 DMA 3、STM32模数转换器相关概念 转换方式: 规则转换:可以类比主函数,是按照从上往下的顺序依次执行的– ADC的转换按照通道的顺序依次转换 注入转...
ClockPrescaler:ADC 预分频系数选择,可选的分频系数为 2、4、6、8。 #defineADC_CLOCK_SYNC_PCLK_DIV20x00000000U#defineADC_CLOCK_SYNC_PCLK_DIV4((uint32_t)ADC_CCR_ADCPRE_0)#defineADC_CLOCK_SYNC_PCLK_DIV6((uint32_t)ADC_CCR_ADCPRE_1)#defineADC_CLOCK_SYNC_PCLK_DIV8((uint32_t)ADC...
需通过设置寄存器ADC_CCR中的VREFEN位来启用内部基准。 可配合校准功能使用,例如通过读取VREFINT的ADC值反推实际VDDA电压,提升系统测量精度。 适用场景:对成本敏感、空间受限的中低精度应用。 2. 外部基准电压(VREF+引脚) 特性: 通过专用VREF+和VREF-(通常接地)引脚连接外部高精度基准源(如REF3033、TL431等)。 提供...
ADC->CCR &= ~ADC_CCR_VREFEN; hadc.Instance->CHSELR =0; } elseif(channel == ADC_CHANNEL_TEMPSENSOR) { ADC->CCR &= ~ADC_CCR_TSEN; hadc.Instance->CHSELR =0; } sConfig.Rank = ADC_RANK_NONE; sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5; ...
VrefInt连接至ADC3_INP19,所以可以使用ADC3的通道19进行测量。可以通过监测内部电源模块参考电压VrefInt来评估ADC Vref+电压的参考值。VrefInt的测量框图如下: 注意:必须将 ADCx_CCR 寄存器中的 VREFEN 位置1才能使能内部通道 ADC3_INP19采集。 温度测量 STM32H7带有温度传感器,可以使用ADC3_INP18进行测量,不过读取出来...
WDTCCR = 0x00; // 关闭看门狗 CLKCON = 0x02; // 选择内部高频 RC 为系统时钟,Fosc = 32...
注意:必须将 ADCx_CCR 寄存器中的 VREFEN 位置1才能使能内部通道 ADC3_INP19采集。 温度测量 STM32H7带有温度传感器,可以使用ADC3_INP18进行测量,不过读取出来的还是个电压值,需要将其转换为温度值,调用下面的转换公式即可: TS_CAL1 = *(__IO uint16_t *)(0x1FF1E820); ...
ADC1_COMMON->CCR |= ADC_CCR_VREFEN;//使能参考电压采集功能}elseif(Channel ==17) { ADC1_COMMON->CCR |= ADC_CCR_TSEN;//使能温度采集功能}elseif(Channel ==18) { ADC1_COMMON->CCR |= ADC_CCR_VBATEN;//使能基准电压采集功能}//(4)初始化ADC控制寄存器,清零各个控制位ADC1->CR &=0x3fff...
VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到ADC 的输入电压范围为: 0~3.3V。数据寄存器 ...