ADC的内部通道:
STM32的ADC除了可以用外部通道来采集外部模拟电压信号之外,还有两个内部通道16和17。其中通道16是连接至芯片上的温度传感器,通道17是连接至内部电源模块.(所以这两个通道可以用来检测STM32芯片d额温度和电源状态,就可以检测芯片运行的状态啦!)
温度检测实例:
通道16是把内部温度传感器输出的模拟电压转换成数字值,通过公式运算我们就可以得到温度值.内部温度传感器支持的温度范围从 -40 至 125摄氏度.精度是比较差的,所以只适合检测温度的变化,并不适合做绝对的温度检测.(如果需要测量精确的温度,可以使用一个外置的温度传感器)
main函数:
/用于存放ADC1转换的值/
extern __IO u16 ADC_ConvertedValue;
/温度值/
u16 Current_Temp;
int main(void)
{
/* USART1 config 115200 8-N-1 */
USART1_Config();
Temp_ADC1_Init();
while (1)
{
Delay(0xffffee); // 延时
Current_Temp=(V25-ADC_ConvertedValue)/Avg_Slope+25;
printf("\r\n The current temperature= %3d ℃ \r\n,Current_Temp);
}
}
main函数里面配置好串口1以及ADC1的通道16后,ADC转换的值就被DMA传输到ADC_ConvertedValue变量里面。然后就可以往串口不断更新温度数据了.
**根据STM32内部温度传感器