很多STM32芯片里往往内置了专用的ADC通道,比方用来测量Vrefint,VBAT的分压或温度传感器的输出电压信号。不同系列所内置的模拟信号通道可能有差异。这里以STM32G4系列为例,它内置了对应于Vrefint,VBAT的三分之一分压和温度传感器的输出电压的专用模拟通道。 下面的示例就是针对上述3个通道进行AD,并测量相关电压和片内...
3、内部参考电压 内部电压参考(VREFINT)提供了一个稳定的(带隙基准)电压输出给 ADC 和比较器。VREFINT内部连接到ADC_IN17输入通道。 内部参考电压值,从手册可以看出是1.2V; 通过参考电压的采样值和固化值,以及采样分辨率,推出Vdd的实际值。 4、内部温度传感器 温度传感器连接到ADC_IN16,计算的时候需要用到D30的值...
Vrefint Channel 内部参照电压 VREFINT是STM32的内部参照电压。一般来说STM32的ADC采用Vcc作为Vref,但为了防止Vcc存在波动较大导致Vref不稳定,进而导致采样值的比较结果不准确,STM32可以通过内部已有的参照电压VREFINT来进行校准,接着以VREFINT为参照来比较ADC的采样值,从而获得比较高的精度。VREFINT的电压为1.2V。Vrefint ...
首先打开STM32CubeMx,配置一下ADC,如下。 首先需要使能Vrefint Channel,如果需要其它通道也可以使能。 其次需要使能ADC的看门狗,看门狗通道选择Vrefint,设置一下高/低门限值,使能看门狗中断模式,同时ADC的中断也要打开。 这里的高/低门限是指,当ADC的采样值大于高门限或小于低门限时,ADC的看门狗中断将被触发。 如果是...
–1个内部参考电压输入通道(VREFINT)。 ◼ 转换开始的发起: – 软件触发; – 硬件触发。 ◼ 转换模式: – 转换单个通道,或者扫描一序列的通道; – 单次运行模式,每次触发转换一次选择的输入通道; – 连续运行模式,连续转换所选择的输入通道; – 间断运行模式; ...
adc_tempsensor_vrefint_enable(); } } 被用作ADC采样的IO口需要被设置为Analog模式,因为ADC_CH0~ADC_CH15是和外部IO关联的,而ADC_CH16和ADC_CH17是内部通道,所以只有在通道号小于ADC_CHANNEL_16时才需要配置IO口,而大于等于ADC_CHANNEL_16时需要使能ADC内部通道。
以下是实作方式,首先设置CubeMX的ADC,打开Vrefint Channel。设置适当的ADC参数,因为STM32L152的ADC最大接受频率会随着MCU电压降低而降低,这个测试就先将ADC频率设置到最低电压能接受的最高频率。以下是STM32L152的ADC说明,关于频率的部分。设置适当的取样时间,须注意VREFINT所需的取样时间在datasheet中有说明,需...
使用ADC1的16和17通道(对应内部温度传感器和内部VREFINT),DMA通道1(Only)管理,存储到内存并串口输出。 Ready 时钟: ADC:RCC_APB2Periph_ADC1,RCC_ADCCLKConfig(RCC_PCLK2_Div6); DMA:RCC_AHBPeriph_DMA1 NVIC:DMA1_Channel1_IRQn //传输完成中断DMA_IT_TC ...
else if(ADC_CH[i].adc_channel == ADC_CHANNEL_19) { adc_internal_channel_config(ADC_CHANNEL_INTERNAL_VREFINT, ENABLE); } else if(ADC_CH[i].adc_channel == ADC_CHANNEL_20) { adc_internal_channel_config(ADC_CHANNEL_INTERNAL_HP_TEMPSENSOR, ENABLE); } } else { rcu_periph_clock_enable...
Vrefint Channel用于测量内部参考电压 Vbat Channel用于测量备用电源电压的一半 ADC的转换主要依靠12位分辨率的片上模数转换器 ③ 注入通道和规则通道均有16个触发源,可以选择定时器外部源触发/定时器比较捕获触发/软件常规触发,具体参看上图ADC框架中的紫色框框 ...