看了hx711的数据手册 按官方的例程写了下面的函数 读出来全都是1 怎么回事呢 搞了一下午了
#define hx_sck GPIO_Pin_5
#define hx_dat GPIO_Pin_6
#define set_hx_sck GPIO_SetBits(GPIOA,hx_sck)
#define clr_hx_sck GPIO_ResetBits(GPIOA,hx_sck)
void hx711_Init()
{
GPIO_Init(GPIOA, GPIO_Pin_5, GPIO_Mode_Out_PP_Low_Fast);
GPIO_Init(GPIOA, GPIO_Pin_6, GPIO_Mode_In_PU_No_IT);
}
u32 hx_read1()
{
u32 count;
u8 i;
clr_hx_sck;
count=0;
while(GPIO_ReadInputDataBit(GPIOA, hx_dat)==1);
for(i=0;i<24;i++)
{
set_hx_sck;
count=count<<1;
clr_hx_sck;
if(GPIO_ReadInputDataBit(GPIOA, hx_dat)==1) count++;
}
set_hx_sck;
count=count^0x800000;
clr_hx_sck;
return count;
} |