如下是我的程序,结果是ADC_CSR的EOC位已置位,就是读不出来。
程序死在红色的地方,这是为什么呢??
是我哪里搞错了!!!
void main(void)
{
PD5,PD6初始化为输入;
ADC_Config();
while (1)
{
AD6 = ADC_GetValue(ADC1_CHANNEL_6);
}
}
ADC1_Flag_TypeDef ADC1_St;
void ADC_Config(void)
{
ADC1_DeInit();
ADC1_PrescalerConfig(ADC1_PRESSEL_FCPU_D4);
ADC1_ScanModeCmd(ENABLE);
ADC1_Cmd(ENABLE);
}
INT16U ADC_GetValue(ADC1_Channel_TypeDef ADC_Channel)
{
INT16U TempValue;
ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC_Channel, ADC1_ALIGN_LEFT);
do
{
ADC1_St = ADC1_GetFlagStatus(ADC1_FLAG_EOC);
}
while (SET == ADC1_St);
ADC1_ClearFlag(ADC1_FLAG_EOC);
TempValue = ADC1_GetConversionValue();
return (TempValue);
} |