打印
[STM8]

土包子刚入门stm8s,一段adc读不出来,求大神指教一二

[复制链接]
694|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
56435132|  楼主 | 2017-4-21 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void ADC_conf(void)
{
   ADC_CR1=0x02;                                       //预分频,连续转换模式,禁止转换
   ADC_CR2=0x08;                                      //禁止外部触发转换,使用内部定时器1,右对齐,禁止扫描
   
}
void ADC1(void)
{

  unsigned char A;
   ADC_CSR=0x04;                                        //输入通道4
                     //   ADC_TDRL=0x10;                                      //禁止思密特触发   0x08
  ADC_CR1|=0x01;                                       //唤醒ADC
  for(A=0;A<20;A++);
    ADC_CR1|=0x01;                                      //启动ADC
   
       while(!(ADC_CSR&0x80));                    //等待转换
                     //ADC_GetConversionValue=ADC_DRH;
                    //ADC_GetConversionValue=((u16t)ADC_GetConversionValue)<<8||ADC_DRL;
       ADValue=ADC_GetConversionValue();
                    //ADValue=ADC_GetConversionValue;
       ADC_CSR&=0x7F;                                 //转换结束
      
    ADValue=0;            
   for(char i=0;i<50;i++)
    {
       while(!(ADC_CSR&0x80));
                      //ADC_GetConversionValue=ADC_DRH;
                    // ADC_GetConversionValue=((u16t)ADC_GetConversionValue)<<8||ADC_DRL;
        ADValue+=ADC_GetConversionValue();
       ADC_CSR&=0x7F;
      }
   VCC=1024.0/ADValue*125;                                   //实际转换电压值比例
  // DelayMS(500);
while(PD_IDR_IDR4==0)                                       
     {
       ADC_conf();
         
                       //ADC_CSR&=0x7F;
       ADC_CSR=0x03;                                       //输入通道3
                       //  ADC_TDRL=0x08;                                      //禁止思密特触发  0x04
      ADC_CR1|=0x01;                                       //开始转换
       for(A=0;A<20;A++);
        ADC_CR1|=0x01;
       while(!(ADC_CSR&0x80));
                        //ADC_GetConversionValue=ADC_DRH;
                        //ADC_GetConversionValue=((u16t)ADC_GetConversionValue)<<8||ADC_DRL;
       ADValue=ADC_GetConversionValue();
       ADC_CSR&=0x7F;
       ADValue=0;
       for(char i=0;i<50;i++)
        {
         while(!(ADC_CSR&0x80));
                              //ADC_GetConversionValue=ADC_DRH;
                               // ADC_GetConversionValue=((u16t)ADC_GetConversionValue)<<8||ADC_DRL;
       ADValue+=ADC_GetConversionValue();
       ADC_CSR&=0x7F;
         }
       ADValue= ADValue/50;
       VCC2=ADValue/1024.0*VCC*2;    //得到的实际转换值
       DelayMS(500);
       Save();                    //保存入eeprom
                            //while(1);
     
}
沙发
56435132|  楼主 | 2017-4-21 16:50 | 只看该作者
自顶,大神在哪里

使用特权

评论回复
板凳
56435132|  楼主 | 2017-4-21 17:00 | 只看该作者
大神何在

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝