HX711 accuracy problem

Hi, I’m reading data from HX711 with stm32F1 but accuracy of the data are awful. when i read data with arduino the data ten times good if we compare with stm32 results. these are my read functions.

Arduino function:

long HX711::read() {

// Wait for the chip to become ready.
wait_ready();

// Define structures for reading data into.
unsigned long value = 0;
uint8_t data[3] = { 0 };
uint8_t filler = 0x00;



// Pulse the clock pin 24 times to read the data.
data[2] = shiftIn(DOUT, PD_SCK, MSBFIRST);
data[1] = shiftIn(DOUT, PD_SCK, MSBFIRST);
data[0] = shiftIn(DOUT, PD_SCK, MSBFIRST);

// Set the channel and the gain factor for the next reading using the clock pin.
for (unsigned int i = 0; i < GAIN; i++) {
    digitalWrite(PD_SCK, HIGH);
    digitalWrite(PD_SCK, LOW);
}

// Replicate the most significant bit to pad out a 32-bit signed integer
if (data[2] & 0x80) {
    filler = 0xFF;
} else {
    filler = 0x00;
}

// Construct a 32-bit signed integer
value = ( static_cast<unsigned long>(filler) << 24
        | static_cast<unsigned long>(data[2]) << 16
        | static_cast<unsigned long>(data[1]) << 8
        | static_cast<unsigned long>(data[0]) );

return static_cast<long>(value);
}

STM32F1 Function:

long hx711_read(){


    unsigned long Count;
        unsigned char i;

        Count=0;
        while( HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==SET);


        for (i=0;i<24;i++){ 
            HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);
            Count=Count<<1;
            HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
            if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==SET){ Count++;}

        }
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);
        Count=Count^0x800000;  
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);


        return Count;

}

what could be the reason why these two functions give different accuracy?

Hi navy7,

I am not sure I fully understand your issue here. The HX711 is working correctly on an Arduino using the [library we provide, correct? If so, I’m afraid SparkFun Tech Support cannot assist you with this issue with the STM32F1 as we do not carry that board and cannot help with custom code. We would be happy to help you troubleshoot any issues using the HX711 and our code and guide but cannot help with boards SparkFun does not carry.](Load Cell Amplifier HX711 Breakout Hookup Guide - SparkFun Learn)