STM8驅動HX711


普及: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 

  

      

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM