打印
[其他ST产品]

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

[复制链接]
174|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2024-3-23 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用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;  
}

使用特权

评论回复
沙发
小夏天的大西瓜| | 2024-3-25 10:48 | 只看该作者
输出的AD值一直在增加那应该是程序存在问题

使用特权

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

本版积分规则

1196

主题

3012

帖子

0

粉丝