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;
}
这是一段测试过的代码。 |