#include "stm8l15x.h"
u16 value[10];
void delay_us(u16 n);
void main(void)
{
u8 i=0;
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
ADC_Init(ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels,ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels,ADC_SamplingTime_9Cycles);
ADC_DMACmd(ADC1, DISABLE);
/* Infinite loop */
while (1)
{
ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint,ENABLE);//选择内部基准通道
ADC_Cmd(ADC1, ENABLE);//ADON
ADC_VrefintCmd(ENABLE);//TSON
delay_us(5);
for (i=0;i<10;i++)
{
ADC_SoftwareStartConv(ADC1);//START
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==0){}//wait for EOC
value[i] = ADC_GetConversionValue(ADC1);
}
ADC_Cmd(ADC1, DISABLE);//ADON复位
ADC_VrefintCmd(DISABLE);//TSON复位
ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint,DISABLE);//关闭通道
delay_us(0xff);
}
}
/*****************延时us函数*******************/
void delay_us(u16 n)
{
u32 i=n*16;
while(--i){}
}
|