ADC实验,不管电压如何变化读出来的数据都是1023!求助

2019-07-19 21:45发布

void ADC_Init(void)
{
   ADC2_DeInit();
   ADC2_Init(ADC2_CONVERSIONMODE_CONTINUOUS , ADC2_CHANNEL_10, ADC2_PRESSEL_FCPU_D18,
   ADC2_EXTTRIG_TIM, DISABLE, ADC2_ALIGN_RIGHT, ADC2_SCHMITTTRIG_CHANNEL10,DISABLE);
   ADC2_ITConfig(DISABLE);
   ADC2_Cmd(ENABLE);
   ADC2_StartConversion();
}
void Tim1_Init(void)
{
  TIM1_TimeBaseInit(16,TIM1_COUNTERMODE_UP,50000,0);
  TIM1_ARRPreloadConfig(ENABLE);
  TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);
  TIM1_Cmd(ENABLE);
}
#pragma vector=0xD
@far @interrupt  void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{
  Conversion_Value = ADC2_GetConversionValue();
    Delay_ADC(0xffff);
    Delay_ADC(0xffff);
    ADC_Value(Conversion_Value); //把读取的值显示在LCD上
    TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
}

int main()
{
uint16_t Pm=0;
    int cnt=0,Pm_25=0;
uint8_t PM[10]={0};
char *s=0;
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  // 时钟配置
        /*16位数据低8位*/
    //SystemClock_Init(HSE_Clock);
//SPI_FLASH_Init();    
USART_Configuration();
enableInterrupts(); 
KEY_Init();
GPIO_Init(GPIOF, GPIO_PIN_4, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOF, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOC, GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST);  //LCD背光

GPIO_WriteHigh(GPIOC, GPIO_PIN_2);  //lcd背光灯关

GPIO_RST();
LCD_init(); // 液晶显示器初始化
LCD_first();
ADC_Init();
 Tim1_Init();
while(1)
{
}
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
234280158@qq.co
1楼-- · 2019-07-20 00:38
回复【14楼】正点原子:
---------------------------------
已经解决了  谢谢!
但是现在又有另外的问题,我选择207的ADC2 2个通道  一个检测电池的电压,一个检测充电IC的电压  现在的问题是  调用一个通道没问题  2个同时调用就有问题了  2个通道读取到的值互换了,我是每隔1S读取其中一个通道的值,在隔1S读取另外一个通道的值。
234280158@qq.co
2楼-- · 2019-07-20 02:16
 精彩回答 2  元偷偷看……
溫柔一刀
3楼-- · 2019-07-20 05:15
這不是癈 話......你都把 ADC IO ULL HI 了....永遠量到最大值呀
TinyBoy
4楼-- · 2019-07-20 05:22
 精彩回答 2  元偷偷看……
234280158@qq.co
5楼-- · 2019-07-20 09:58
 精彩回答 2  元偷偷看……
234280158@qq.co
6楼-- · 2019-07-20 10:22
回复【3楼】溫柔一刀:
---------------------------------
我把ADC  IO  设置成推挽 高阻抗输出  还是一样

一周热门 更多>