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-21 06:44
回复【12楼】TinyBoy:
---------------------------------
前面我弄错了  我的STM8S207是10位精度     所以是1024  但是 无论我电压怎么变化  我读出来的值一直是1023    新手  求指教  谢谢!! 我硬件没问题么?
正点原子
2楼-- · 2019-07-21 10:46
 精彩回答 2  元偷偷看……
天秤星座
3楼-- · 2019-07-21 13:28
先看下硬件有没有问题,没问题的话,软件Debug 下直接看 AD Value H或者L寄存器的值,AD口好像不用配置。
234280158@qq.co
4楼-- · 2019-07-21 15:36
回复【15楼】天秤星座:
---------------------------------
已经解决了  谢谢
234280158@qq.co
5楼-- · 2019-07-21 19:53
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-21 22:26
回复【17楼】234280158@qq.com:
---------------------------------
 分时读取吧?

一周热门 更多>