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

求用过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个回答
皈依 回答时间:2015-9-2 08:56:52
示波器查一下ADC入口的电压值 如果都一致,就是外围电路问题。
三尘居士 回答时间: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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版