普及:HX711AD一款專為高精度電子秤而設計的 24 位 A/D 轉換器芯片;

獲取數據方法:兩個普通IO DOUT輸入:GPIO_Mode_In_FL_No_IT;
SCK輸出:GPIO_Mode_Out_PP_Low_Slow;
輸出口必須硬件上需接上拉電阻到電源,保證可以輸出高電平,否則HX711芯片的數據口一直保持同樣電平;
程序:官方例程:
sbit ADDO = P1^5;
sbit ADSK = P0^0;
unsigned long ReadCount(void)
{
unsigned long Count;
unsigned char i;
ADSK=0; // 使能 AD ( PD_SCK 置低)
Count=0;
while(ADDO); //AD 轉換未結束則等待,否則開始讀取
for (i=0;i<24;i++)
{
ADSK=1; //PD_SCK 置高(發送脈沖)
Count=Count<<1; // 下降沿來時變量 Count 左移一位,右側補零
ADSK=0; //PD_SCK 置低
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;// 第 25 個脈沖下降沿來時,轉換數據
ADSK=0;
return(Count);
}
STM8例程:
//IO配置 #define HX711_DOUT_GPIO GPIOC #define HX711_DOUT_PIN GPIO_Pin_1 #define HX711_DOUT_STATUS GPIO_ReadInputDataBit(HX711_DOUT_GPIO, HX711_DOUT_PIN)//讀取 #define HX711_DOUT_H GPIO_SetBits(HX711_DOUT_GPIO,HX711_DOUT_PIN) #define HX711_SCK_GPIO GPIOC #define HX711_SCK_PIN GPIO_Pin_0 #define HX711_SCK_MODE GPIO_Mode_Out_PP_Low_Slow #define HX711_SCK_L GPIO_ResetBits(HX711_SCK_GPIO,HX711_SCK_PIN) #define HX711_SCK_H GPIO_SetBits(HX711_SCK_GPIO,HX711_SCK_PIN) GPIO_Init(HX711_DOUT_GPIO, HX711_DOUT_PIN, GPIO_Mode_In_FL_No_IT ); //AD數據口 輸入浮空,無外部中斷 GPIO_Init(HX711_SCK_GPIO, HX711_SCK_PIN, GPIO_Mode_Out_PP_Low_Slow ); //AD時鍾口 輸出推挽,高電平,2MHz
