• 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 
    

      

          

           

  • 相关阅读:
    解除mac默认线程限制
    pd windows虚拟机下安装子系统
    国内外最好的12款项目管理系统优劣势分析
    如何建立自己的看板系统
    如何做好产品管理
    为什么都认为confluence非常好,好在哪里
    瀑布式项目管理软件测评!
    看板方法的定义、原则和实践
    类似Confluence的软件有哪些
    CSCMS代码审计
  • 原文地址:https://www.cnblogs.com/luckytimor/p/6723833.html
Copyright © 2020-2023  润新知