2023年12月18日发(作者:)

while(ADC1->CR2&1<<3); //等待校准结束//该位由软件设置并由硬件清除。在校准寄存器被初始化后该位将被清除。ADC1->CR2|=1<<2; //开启AD校准while(ADC1->CR2&1<<2); //等待校准结束//该位由软件设置以开始校准,并在校准结束时由硬件清除}//获得ADC值//ch:通道值 0~3u16 Get_Adc(u8ch){//设置转换序列ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道chADC1->SQR3|=ch;ADC1->CR2|=1<<22; //启动规则转换通道while(!(ADC1->SR&1<<1));//等待转换结束return ADC1->DR; //返回adc值}ADC.H#ifndef __ADC_H#define __ADC_H#define ADC_CH0 0 //通道0#define ADC_CH1 1 //通道1#define ADC_CH2 2 //通道2#define ADC_CH3 3 //通道3void Adc_Init(void);u16 Get_Adc(u8ch);#endif