zoukankan      html  css  js  c++  java
  • 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 
    

      

          

           

  • 相关阅读:
    flexlm破解入门文献列表
    【分享】SRIO错误的基本判决
    LDO功耗计算
    CT128M4SSD1升级固件3种方法方法
    SYSBIOS中malloc和Memory_alloc的区别.doc
    VID = 058F PID = 6387 可用的量产工具
    Debian 6 nvidia显卡驱动安装
    Java Volatile的双重含义
    Windows下PHP使用Apache的mod_fcgid模块安装及配置
    Flask之基于route装饰器的路由系统(源码阅读解析)
  • 原文地址:https://www.cnblogs.com/luckytimor/p/6723833.html
Copyright © 2011-2022 走看看