stm32读取hx711

单片机读取hx711的数据一直没有变化,压力传感器有压力变化,但是读取芯片的数据没有变化
代码:


```c
int main(void)
{

    HX711_InIt ();
    OLED_Init();
    OLED_Clear();

    while(1)
    {
        HX711_Read();
        Delay_us (2);
        HX711_Read();
        Delay_us (2);
        HX711_Read();
        Delay_us (2);
        Get_Maopi();
        Get_Weight ();
        
        OLED_ShowString (1,1,"weight =");
        Get_Maopi ();
        Delay_us (2);
        Get_Weight ();
        OLED_ShowNum (2,1,Weight_Shiwu  ,7);    
    } 
}
unsigned long HX711_Read(void) 
{ 
    unsigned long value= 0;
    unsigned char i = 0;
    GPIO_SetBits (GPIOB ,GPIO_Pin_7);
    Delay_us (2);
    GPIO_ResetBits (GPIOB ,GPIO_Pin_6);
    Delay_us(2);

    while(GPIO_ReadInputDataBit (GPIOB,GPIO_Pin_7)==1);//dengdaiADzhuanhuanjieshu 
    for(i=0;i<24;i++)
    {

        GPIO_SetBits (GPIOB ,GPIO_Pin_6);
        value =value <<1;
        
        GPIO_ResetBits (GPIOB ,GPIO_Pin_6);
        if(GPIO_ReadInputDataBit(GPIOB ,GPIO_Pin_7)==1)
        {
            value ++;
        }
    }
    
    GPIO_SetBits(GPIOB,GPIO_Pin_6 );
    Delay_us(2);
    value=value^0x800000;
    
    GPIO_ResetBits (GPIOB ,GPIO_Pin_6);
    Delay_us(2);
    return (value);
}

void Get_Maopi()  //获取初始值
{
    Weight_Maopi = HX711_Read();
}    

```

该回答引用ChatGPT

可能的原因包括:

  • 电路连接问题:请检查电路连接是否正确,包括HX711芯片、压力传感器和电源等。建议使用万用表检查各个连接是否稳定和准确。
  • HX711初始化问题:请确保您已正确初始化HX711芯片。请检查初始化代码,如GPIO端口是否正确设置。
  • 数据读取问题:请检查数据读取代码,如GPIO端口是否正确设置。建议在读取数据前加上一定的延时,确保HX711芯片已经完成转换并稳定输出数据。
  • 数据处理问题:请检查数据处理代码,如计算重量的公式是否正确。建议添加调试代码,逐步排查问题。
  • 其他问题:如果以上问题都已检查并确认正确,可能是其他问题导致。建议检查HX711芯片和压力传感器是否损坏或不兼容,或者尝试使用其他芯片和传感器进行测试。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
有几个问题需要排查:

  1. HX711模块和压力传感器之间的连接是否正确?检查一下引脚的连接是否正确,以及HX711模块和压力传感器的工作电压是否匹配。
  2. 代码中的延时时间是否正确?可以试着增加一下延时时间,看看读取数据是否有变化。
  3. HX711模块的增益是否设置正确?HX711模块可以设置增益,如果增益设置不正确,读取到的数据可能会有问题。

另外,代码中的 Get_Weight() 函数没有提供,如果问题还未解决,可以提供该函数的代码,以便进一步排查。