打印
[STM8]

STM8L ADC问题,求解答

[复制链接]
1059|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
里本来|  楼主 | 2017-12-6 11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC出来值不对,乱跳,而且我直接给ADC输入悬空,也乱跳
void  ADC_init()
{
        CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
        CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
        ADC_DeInit(ADC1);
        delayms(100);
        GPIO_Init(GPIOB,GPIO_Pin_7,GPIO_Mode_Out_PP_Low_Fast);        
        ADC_Init(ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_2);
        ADC_SamplingTimeConfig(ADC1,ADC_Group_SlowChannels,ADC_SamplingTime_384Cycles);
        ADC_Cmd(ADC1,ENABLE);
        ADC_ChannelCmd(ADC1,ADC_Channel_11 ,ENABLE);
        
}

uint16_t ADC_getval()
{
        uint16_t ADCdata,i;
       // for(i=0;i<100;i++);
        ADC_SoftwareStartConv (ADC1);//开启软件转换

        while(!ADC_GetFlagStatus (ADC1,ADC_FLAG_EOC));                                                        //等待转换结束
        ADC_ClearFlag (ADC1,ADC_FLAG_EOC);                                                                                //清除对应标志

        ADCdata=ADC_GetConversionValue( ADC1);
        return ADCdata;
}
void USART_Init_USR()
{
        CLK_PeripheralClockConfig(CLK_Peripheral_USART2,ENABLE);
        GPIO_ExternalPullUpConfig(GPIOE,  GPIO_Pin_3,  ENABLE);
        GPIO_ExternalPullUpConfig(GPIOE,  GPIO_Pin_4,  ENABLE);
        USART_Init( USART2, 9600, USART_WordLength_8b,  USART_StopBits_1,
                    USART_Parity_No,  USART_Mode_Tx);
        USART_Cmd( USART2, ENABLE);
}
void main()

        uint16_t A;
        ADC_init();
        USART_Init_USR();
        while(1)
        {
             A=ADC_getval();
            USART_SENDL(A);
            

        }
}
沙发
gujiamao12345| | 2017-12-6 12:37 | 只看该作者
乱跳有多乱?

使用特权

评论回复
板凳
mmuuss586| | 2017-12-6 13:06 | 只看该作者
悬空也跳,正常;
输入悬空,并接下拉电阻到地看看;

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝