用stm32单片机写程序驱动hx711,输出的AD值一直在增加,请问如何解决

2019-07-14 18:51发布

STM32单片机写程序驱动hx711,无论传感器上是否放重物,输出的AD值一直在增加,我用的是单片机内部时钟,配置为8MHz,程序如下:
uint32_t HX711_Read(void)  //读HX711芯片输出的数据。
{
        uint32_t val = 0;
        uint8_t i = 0;

        GPIO_SetBits(GPIOA,ADDO);    //DOUT=1
        GPIO_ResetBits(GPIOA,ADSK);    //SCK=0
        while(GPIO_ReadInputDataBit(GPIOA,ADDO));   //等待DOUT=0  
        delay_us(1);
        for(i=0;i<24;i++)
        {
                GPIO_SetBits(GPIOA,ADSK);    //SCK=1
                val=val<<1;
                delay_us(1);  
                GPIO_ResetBits(GPIOA,ADSK);    //SCK=0
                if(GPIO_ReadInputDataBit(GPIOA,ADDO)) val++;   //DOUT=1
            delay_us(1);
        }
        GPIO_SetBits(GPIOA,ADSK);//25次脉冲
        val = val^0x800000;
        delay_us(1);
        GPIO_ResetBits(GPIOA,ADSK);
        delay_us(1);  
        return val;  
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。