搜索
bottom↓
回复: 7

有用过HX711电子秤芯片的朋友么?

[复制链接]

出0入0汤圆

发表于 2017-5-25 09:48:04 | 显示全部楼层 |阅读模式
本帖最后由 andy93762 于 2017-5-25 09:51 编辑

我用stm8l051F3芯片驱动HX711,但是读取的数据时序老是不对,不知道问题出在哪里,求指点。
我的时序:


官方时序:

void HX711_Init(void)
{
    GPIO_Init(HX711_PORT, HX711_SCL_PIN, GPIO_Mode_Out_PP_Low_Fast);
    GPIO_Init(HX711_PORT, HX711_SDA_PIN, GPIO_Mode_In_FL_No_IT);   
}


unsigned long HX711_ReadDate(void)
{
      unsigned long datevalue;
      unsigned int delay_count=0;
      unsigned char i;
      HX711_SCL_L;  
      datevalue = 0;
      while(HX711_SDA)
      {
           delay_ms(1);
           if(delay_count++>60000)
           {
             delay_count = 0;
             return 0xffffffff;
           }
      }
      for(i=0;i<24;i++)
      {
            HX711_SCL_H;  
            datevalue = datevalue<<1;
            HX711_SCL_L;
            nop();
            if(HX711_SDA)
                datevalue++;
      }
      HX711_SCL_H;  
      datevalue = datevalue^0x800000;
      HX711_SCL_L;
      return(datevalue);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-5-25 15:43:10 | 显示全部楼层
看看电压

出0入0汤圆

 楼主| 发表于 2017-5-25 16:07:50 | 显示全部楼层

芯片电源电压都是3.3v的

出0入93汤圆

发表于 2017-5-25 16:50:32 | 显示全部楼层
andy93762 发表于 2017-5-25 16:07
芯片电源电压都是3.3v的

请检查被测电压。很显然是超出范围了,所以得到结果0x800000,差分电压<-13mV了(假如你的AVDD=3.3V)。

出10入0汤圆

发表于 2017-5-25 18:27:17 来自手机 | 显示全部楼层
takashiki 发表于 2017-5-25 16:50
请检查被测电压。很显然是超出范围了,所以得到结果0x800000,差分电压

定这楼   

出235入235汤圆

发表于 2017-5-25 19:00:32 | 显示全部楼层
  1. //读取AD值
  2. unsigned long ReadCount(void){
  3.         unsigned long Count;
  4.         unsigned char i;
  5.         //unsigned long timeout;
  6.         ADSK_0;////使能AD(PD_SCK置低)
  7.         Count=0;

  8.         while(ADDO);////判断AD转换是否结束,若未结束则等待否则开始读取       
  9.         for (i=0;i<24;i++){
  10.                 ADSK_1; //发送脉冲(PD_SCK置高)
  11.                 dus;//间隔
  12.                 Count=Count<<1;
  13.                 ADSK_0;
  14.                 dus;//间隔
  15.                 if(ADDO) Count++;
  16.         }
  17.         ADSK_1;
  18.         dus;//间隔
  19.         Count=Count^0x800000;
  20.         ADSK_0;
  21.         //25次脉冲即为128增益 10HZ
  22.         return(Count);
  23. }
复制代码


我使用的712,应该是相同的。参考下把

出0入50汤圆

发表于 2017-5-25 19:19:08 | 显示全部楼层
本帖最后由 ilikemcu 于 2017-5-25 19:20 编辑

翻了下备份压缩包,找到一个肯定能正常工作的程序,别问我细节,我就用了那么一次,后面实际项目也没用这个AD。当时做过温度测试,711的温度性能还是差了些

补充说明,当时的MCU是现在臭名昭著的AVR之MEGA8L

void read_ad( void )                         // 读取AD结果
{
        unsigned char i;
       
        adsample = 0;

        while( HX711_DATA );
       
        CLI();
               
        for( i = 0; i < 25; i++ )
        {
                HX711_SCLK1();
                adsample <<= 1;
                HX711_SCLK0();
                NOP();
                       
                if(( HX711_DATA ))
                {
                        adsample |= 0x00000001;
                }
               
        }

        SEI();
       
        adsample >>= 5;

        if ( adsample & 0x080000 )                        // 双极性数据处理,负数抬高为正
        {                                                                        // 抬高0x7fffff
                adsample = (( ~adsample )+ 1 );        // -∞为0
                adsample &= 0x007ffff;
                adsample = ( 0x007ffff - adsample );
        }
        else
        {
                adsample = 0x007ffff + adsample;
        }
}

出0入0汤圆

发表于 2017-5-25 21:10:20 | 显示全部楼层
检查的电压有:
电源,3.3V没有问题
输入,计算一下正常的范围;
共模,最好在中点,这个芯片还是轨到轨的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 12:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表