打印
[51单片机]

HX711读回来值始终是2的23次方不变,无论输入是多少

[复制链接]
3562|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qin19931227|  楼主 | 2015-5-22 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序是芯片手册什么的,什么都不变,读回来值始终不变,一直是2的23次方,求助各位大神帮帮忙啊
程序代码:unsigned long HX711_Read(void)        //增益128
{
        unsigned long count;
        unsigned char i;         
            HX711_SCK=0;
            count=0;
          while(HX711_DOUT);
          for(i=0;i<24;i++)
        {
                  HX711_SCK=1;
                  count=count<<1;
                HX711_SCK=0;
                  if(HX711_DOUT)
                        count++;
        }
        HX711_SCK=1;
    count=count^0x800000;//第25个脉冲下降沿来时,转换数据
        HX711_SCK=0;  
        return(count);
}

相关帖子

沙发
fighting12| | 2015-5-29 21:49 | 只看该作者
楼主我也遇见相同的情况了,知道了怎么解决求告知一下!!!

使用特权

评论回复
板凳
fighting12| | 2015-5-29 21:52 | 只看该作者
你这个错误确实有点多啊。。。我给你一个你看看,看看你的错误。
void Delay__hx711_us(void)
{
        _nop_();
        _nop_();
}

unsigned long HX711_Read(void)        //ÔöÒæ128
{
        unsigned long count;
        unsigned char i;
          HX711_DOUT=1;
        Delay__hx711_us();
          HX711_SCK=0;
          count=0;
          while(HX711_DOUT);
          for(i=0;i<24;i++)
        {
                  HX711_SCK=1;
                  count=count<<1;
                HX711_SCK=0;
                  if(HX711_DOUT)
                        count++;
        }
        HX711_SCK=1;
    count=count^0x800000;//µÚ25¸öÂö³åϽµÑØÀ´Ê±£¬×ª»»Êý¾Ý
        Delay__hx711_us();
        HX711_SCK=0;  
        return(count);
}

使用特权

评论回复
地板
qiushengdao| | 2015-12-5 22:12 | 只看该作者
你的那个hx711一直读到都是1,后来怎样解决

使用特权

评论回复
5
qiushengdao| | 2015-12-6 08:51 | 只看该作者
fighting12 发表于 2015-5-29 21:52
你这个错误确实有点多啊。。。我给你一个你看看,看看你的错误。
void Delay__hx711_us(void)
{

你的现在怎样呢?当初是什么问题,解决了吗?

使用特权

评论回复
6
34af9uc| | 2016-5-4 21:11 | 只看该作者
错误是不少啊再读手册 十遍加强 ** 以便理解
sck=0;;;



while(out)
24次
{
sck=1;;;
a=a|out;
sck=0;;;
a<<1;
}
sck=1;;;
sck=0;;;

使用特权

评论回复
7
宇飞天| | 2016-8-6 15:37 | 只看该作者
我的的也始终是一个值
怎么调都是这样
出了驱动程序还有可能是哪里出问题呢?

使用特权

评论回复
8
comprends| | 2016-8-30 11:27 | 只看该作者
这个问题都没解决吗?我也遇到这个问题了,不过我显示的是2^24。。好像是因为AVDD的电压与VCC的电压接近了

使用特权

评论回复
9
heishe1989| | 2016-8-31 17:21 | 只看该作者
同求解答

使用特权

评论回复
10
416356084| | 2016-8-31 18:00 | 只看该作者
称重24位ad?

使用特权

评论回复
11
baron423| | 2017-5-12 17:51 | 只看该作者
我的也是一直读取的值是最大值,拔掉芯片也不变,你怎么解决的

使用特权

评论回复
12
talkativefox| | 2017-7-26 09:20 | 只看该作者
我之前也遇到这个问题了,函数本身没错,修改delay时长就能读出数值了。

使用特权

评论回复
13
tangxiangyu| | 2018-4-6 18:03 | 只看该作者
同样的问题。。。解决了吗,楼主

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝