你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求用过HX711的大侠拔刀相助,,

[复制链接]
大浪10010 提问时间:2015-9-1 17:40 /
最近在做类似电子称的东西,这两天一直在调HX711模块,读出来的数据一直是8388608,不知道为何,是压力传感器的问题还是HX711的问题,实在解决不了了,求大神帮忙,小弟在此先谢过了,


unsigned long Read_HX711(void)
{
         
        unsigned long val = 0;
        unsigned char i = 0;
       
        GPIO_SetBits(GPIOB,GPIO_Pin_1); //DOUT
        GPIO_ResetBits(GPIOB,GPIO_Pin_2);
       
        while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1));
        delay1_us(2);
       
        for(i=0;i<25;i++)
        {
                GPIO_SetBits(GPIOB,GPIO_Pin_2);
                val = val << 1;
                delay1_us(2);
                GPIO_ResetBits(GPIOB,GPIO_Pin_2);
                if(        GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1))
                val++;               
                delay1_us(2);       
        }
        GPIO_SetBits(GPIOB,GPIO_Pin_2);
        val = val^0x800000;
        delay1_us(2);
        GPIO_ResetBits(GPIOB,GPIO_Pin_2);
        delay1_us(2);
        return val;
       
}

收藏 评论3 发布时间:2015-9-1 17:40

举报

3个回答
guiyi 回答时间:2015-9-2 08:56:52
示波器查一下ADC入口的电压值 如果都一致,就是外围电路问题。
mtraveler 回答时间:2016-6-10 19:04:10
您好请问问题解决了吗?
zddnet 回答时间:2017-11-28 09:27:10
不知道LZ解决了没有。为了以后有新手使用该IC,还是说一下。
GPIO_SetBits(GPIOB,GPIO_Pin_1); //DOUT
这一句不需要的,在配置时将 DOUT引脚设置为浮空输入模式(规格书上说不要带上下拉电阻,减少电流干扰)。当然如果设置为开漏输出的话,这一句是不影响的,但是多余了。因为不像I2C那样需要双向的。
还有  for(i=0;i<25;i++) 是0到24,共有25次,多了一次,数据变成25位了。应改为
for(i=0;i<24;i++)。

评分

参与人数 1ST金币 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版