打印
[传感器]

HX711为什么显示出来的数据是静态的不变化

[复制链接]
5346|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fighting12|  楼主 | 2015-5-28 15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  extern unsigned long HX711_Buffer=0;
extern unsigned long Weight_Maopi=0,Weight_Shiwu=0;
void PORT_Init(void)
  {   
    P3SEL &=~ (BIT4+BIT5);
    P3DIR &=~ BIT4;//SDA
    P3DIR |=  BIT5;//SCK
  }
void Delay_hx711_us(uint t)
    {
    _NOP();
    _NOP();
    while(t--);
    }
unsigned long HX711_Read(void)
  {
   unsigned long count;  
    unsigned char i;  
    P3OUT |= BIT4;
    Delay_hx711_us(4);   
    P3OUT &=~ BIT5;/
    count=0;  
    while( P3IN&BIT4 );
    for(i=0;i<24;i++)
    {   
      P3OUT |= BIT5;   
      count=count<<1;  
      P3OUT &=~ BIT5;
      if(P3IN&BIT4)
count++;  
    }  
    P3OUT |= BIT5;  
    Delay_hx711_us(4);
     count=count^0x800000;  
    P3OUT &=~ BIT5;
    return(count);
  }
  
unsigned long Get_Maopi()
{
   HX711_Buffer=HX711_Read();//HX711_Read()中的数不变化???
  Weight_Maopi=HX711_Buffer/100;
  return Weight_Maopi;
}
unsigned long Get_Weight()
{
  HX711_Buffer=HX711_Read();
  HX711_Buffer=HX711_Buffer/100;
  //这个放在主程序之中,没有放进while中!!!
  if(HX711_Buffer>=Get_Maopi())
  {  
    Weight_Shiwu=HX711_Buffer;
    Weight_Shiwu=Weight_Shiwu-Get_Maopi();
    Weight_Shiwu=(unsigned long)((float)Weight_Shiwu/4.3+0.05);
    return Weight_Shiwu;
  }
  else
   return 1;
}
求各位看看哪有错误,小弟感激不尽。
为什么显示出来的是静态值????用的是msp430f149的单片机

相关帖子

沙发
jacklee8| | 2015-5-28 22:26 | 只看该作者
先看看硬件对不对,再看看你的读写函数对不对,最近一个客户用我们的TM7707,我们都提供了参考代码还老是调不出,最后帮客户检测发现是客户读函数有问题,提供的是89C51的Demo,结果移植到ATMEG就没有搞对,你可以考虑用TM7711,完全可以取代hx711,只不过TM7711是单通道罢了

使用特权

评论回复
板凳
fighting12|  楼主 | 2015-5-29 10:18 | 只看该作者
jacklee8 发表于 2015-5-28 22:26
先看看硬件对不对,再看看你的读写函数对不对,最近一个客户用我们的TM7707,我们都提供了参考代码还老是调 ...

谢谢了,读写程序应该没问题,我设置了一个固定量,他能正常显示。现在就是说这个hx711他的那个读取的程序,读出来的数值就是一个静态值不变化,而理论上随着传感器上压力的变化,这个读出来的值也应该相应的变化啊????   

使用特权

评论回复
地板
jacklee8| | 2015-5-29 12:00 | 只看该作者
哦,那你读读内部寄存器的值看看对不对了,这样来看看你能不能正常操作这个器件。

使用特权

评论回复
5
fighting12|  楼主 | 2015-5-29 15:17 | 只看该作者
jacklee8 发表于 2015-5-29 12:00
哦,那你读读内部寄存器的值看看对不对了,这样来看看你能不能正常操作这个器件。 ...

我用那个仿真看了每一步的变化,基本上都对,就只是:
#ifndef __HX711__
#define __HX711__
extern unsigned long HX711_Buffer=0,HX711_Buffer1=0;
extern unsigned long long s=0;
extern unsigned long Weight_Maopi=0, max=0;
#define   ADDO   (P3IN&0X04)
#define   SCK1   P3OUT|=BIT5  
#define   SCK0   P3OUT&=~BIT5  
#define   SDA0   P3OUT&=~BIT4  
#define   SDA1  P3OUT|=BIT4   
  void Delay_hx711_us(uint t)
    {       
     //_NOP();
     //_NOP();
    while(t--);
    }
unsigned long HX711_Read(void)        //增益128
  {       
   unsigned long count=0;
     unsigned char i=0;  
    //P3OUT |= BIT4; //SDA
    SDA1;        
    //P3OUT &=~ BIT5;//SCK  
   SCK0;
        while( ADDO ); //SDA
       Delay_hx711_us(10);
    for(i=0;i<24;i++)       
    {                 
      //P3OUT |= BIT5; //SCK
    SCK1;  
      count=count<<1;        
      Delay_hx711_us(10);
      //P3OUT &=~ BIT5;//SCK
    SCK0;  
      if(ADDO)//SDA       
        count++;
      Delay_hx711_us(10);
    }  
    //P3OUT |= BIT5; //SCK
   SCK1;
    count=count^0x800000;
     Delay_hx711_us(10);
  
    //P3OUT &=~ BIT5;//SCK
     SCK0;
    Delay_hx711_us(10);
    return(count);
  }
用这个读出来的数  HX711_Buffer1=HX711_Read(); HX711_Buffer1=HX711_Buffer1/100;    中HX711_Buffer1的数,当施加压力时这个数值不变化!!!这是为什么???
帮忙看看这个有没有问题,,,,,,,:handshake:handshake:handshake

使用特权

评论回复
6
宇飞天| | 2016-8-5 21:15 | 只看该作者
fighting12 发表于 2015-5-29 15:17
我用那个仿真看了每一步的变化,基本上都对,就只是:
#ifndef __HX711__
#define __HX711__

我遇到了一样的问题
楼主怎么解决的?

使用特权

评论回复
7
changle11sdo5| | 2016-8-5 22:25 | 只看该作者
宇飞天 发表于 2016-8-5 21:15
我遇到了一样的问题
楼主怎么解决的?

那么简单的东西,全部旧贴都被你挖上来

使用特权

评论回复
8
宇飞天| | 2016-8-6 09:17 | 只看该作者
changle11sdo5 发表于 2016-8-5 22:25
那么简单的东西,全部旧贴都被你挖上来

但是我的显示的不动
不知道为什么

使用特权

评论回复
9
宇飞天| | 2016-8-6 09:21 | 只看该作者
changle11sdo5 发表于 2016-8-5 22:25
那么简单的东西,全部旧贴都被你挖上来

只想找个靠谱一点的程序
看看到底是软件还是硬件的问题

使用特权

评论回复
10
changle11sdo5| | 2016-8-6 16:08 | 只看该作者
宇飞天 发表于 2016-8-6 09:21
只想找个靠谱一点的程序
看看到底是软件还是硬件的问题

不会用的人,软件硬件都可以出问题

使用特权

评论回复
11
宇飞天| | 2016-8-6 16:21 | 只看该作者
changle11sdo5 发表于 2016-8-6 16:08
不会用的人,软件硬件都可以出问题

硬件应该没有问题
我用51是有变换的

使用特权

评论回复
12
宇飞天| | 2016-8-6 16:22 | 只看该作者
changle11sdo5 发表于 2016-8-6 16:08
不会用的人,软件硬件都可以出问题

不知道为什么用430的时候一直都是2 的23次方不变

使用特权

评论回复
13
changle11sdo5| | 2016-8-6 18:18 | 只看该作者
宇飞天 发表于 2016-8-6 16:22
不知道为什么用430的时候一直都是2 的23次方不变

看手册

使用特权

评论回复
14
宇飞天| | 2016-8-6 21:48 | 只看该作者

尽讲些没有用的

使用特权

评论回复
15
changle11sdo5| | 2016-8-6 22:06 | 只看该作者
宇飞天 发表于 2016-8-6 21:48
尽讲些没有用的

有手册也不仔细看,谁有那么多功夫一步一步那么详细教你

使用特权

评论回复
16
宇飞天| | 2016-8-7 09:10 | 只看该作者
changle11sdo5 发表于 2016-8-6 22:06
有手册也不仔细看,谁有那么多功夫一步一步那么详细教你

也没有要人异步不去教啊
有些事情不是看手册就能解决的
有的时候只需要别人给一个想法就成

使用特权

评论回复
17
宇飞天| | 2016-8-7 09:11 | 只看该作者
changle11sdo5 发表于 2016-8-6 22:06
有手册也不仔细看,谁有那么多功夫一步一步那么详细教你

这就是交流的重要性

使用特权

评论回复
18
comprends| | 2016-8-30 11:40 | 只看该作者
解决了的话说下问题出在哪。。我也遇到这个问题了

使用特权

评论回复
19
416356084| | 2016-9-3 10:50 | 只看该作者
comprends 发表于 2016-8-30 11:40
解决了的话说下问题出在哪。。我也遇到这个问题了

????

使用特权

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

本版积分规则

2

主题

19

帖子

2

粉丝