1、#include “adc.h“#include “delay.h“ /初始化 ADC/这里我们仅以规则通道为例/开启通道 8,并开启内部温度传感器了。void Adc_Init(void) /先初始化 IO 口RCC-APB2ENR|=1CRL/PB0 anolog 输入/通道 10/11 设置 RCC-APB2ENR|=1APB2RSTR|=1APB2RSTR /工作模式清零ADC1-CR1|=0CR1/规则序列 1 通道 chADC1-SQR3|=ch; ADC1-CR2|=1SR /返回 adc 值/获取通道 ch 的转换值,取 times 次,然后平均 /ch:通道编号/times:
2、获取次数/返回值:通道 ch 的 times 次转换结果平均值u16 Get_Adc_Average(u8 ch,u8 times)u32 temp_val=0;u8 t;for(t=0;ttimes;t+)temp_val+=Get_Adc(ch);delay_ms(5);return temp_val/times; #ifndef _ADC_H#define _ADC_H#include “sys.h“#define ADC_CH1 1 /通道 1 #define ADC_CH_TEMP 16 /温度传感器通道void Adc_Init(void); /ADC 通道初始化u16 Get_Adc(u8 ch); /获得某个通道值 u16 Get_Adc_Average(u8 ch,u8 times);/得到某个通道 10 次采样的平均值 #endif