用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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>