- unsigned long Read_HX711(void) //读HX711芯片输出的数据。
- {
- unsigned long val = 0;
- unsigned char i = 0;
- GPIO_SetBits(GPIOB,GPIO_Pin_13); //DOUT=1
- GPIO_ResetBits(GPIOB,GPIO_Pin_12); //SCK=0
- while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)); //等待DOUT=0
- delay_us(1);
- for(i=0;i<24;i++)
- {
- GPIO_SetBits(GPIOB,GPIO_Pin_12); //SCK=1
- val=val<<1;
- delay_us(1);
- GPIO_ResetBits(GPIOB,GPIO_Pin_12); //SCK=0
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)) //DOUT=1
- val++;
- delay_us(1);
- }
- GPIO_SetBits(GPIOB,GPIO_Pin_12);
- val = val^0x800000;
- delay_us(1);
- GPIO_ResetBits(GPIOB,GPIO_Pin_12);
- delay_us(1);
- return val;
- }
这是一段测试过的代码。
|