OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4055|回复: 8

关于STM32和HX711 的自检测报警问题

[复制链接]

3

主题

15

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-12
在线时间
8 小时
发表于 2020-11-18 11:57:32 | 显示全部楼层 |阅读模式
1金钱
我用STM32F103芯片和HX711做了一个称重模块,现在想让这个模块有自检测是否出现故障的功能比如未连接称重传感器,有没有办法从HX711本身下手来实现这个功能呀?想了好久。那位大神解救一下?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-11-19 02:28:36 | 显示全部楼层
回复

使用道具 举报

11

主题

2154

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4947
金钱
4947
注册时间
2015-1-10
在线时间
620 小时
发表于 2020-11-19 08:32:18 | 显示全部楼层
称重传感器设置个小偏压,上电后读不到起始偏差不就没连接传感器吗
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-11-19 09:50:06 | 显示全部楼层
代码控制,读错了输出个标志就行了多次读错就认为断线了  
回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-12
在线时间
8 小时
 楼主| 发表于 2020-11-19 15:11:34 | 显示全部楼层

是读取HX711的DOUT的输出数据吗?我看了,HX711连上传感器不放任何重物和不连传感器返回值是一样的。那样没法辨别是否连接呀!
还请再详细点
回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-12
在线时间
8 小时
 楼主| 发表于 2020-11-19 15:17:48 | 显示全部楼层
nashui_sx 发表于 2020-11-19 09:50
代码控制,读错了输出个标志就行了多次读错就认为断线了

一开始我也是这样想的,但是操作才发现,接上传感器不放任何重物和不接传感器输出的值差距不是很大
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-11-19 20:06:38 | 显示全部楼层
jeck 发表于 2020-11-19 15:17
一开始我也是这样想的,但是操作才发现,接上传感器不放任何重物和不接传感器输出的值差距不是很大

s32 HX711_getdata(u8 beishu) //beishu: A_128  B_32  A_64
{
        s32 count=0;
        u8 i,amp,chaoshi;
        HX711_ADDO_IO_IN();
        switch(beishu)
        {
                case A_128:amp=1;break;
                case B_32 :amp=2;break;
                case A_64 :amp=3;break;
                default   :amp=1;break;
        }
        while(HX711_ADDO_IN)
        {
                HX711_Delay1ms();
                chaoshi++;
                if(chaoshi>10)
                        return  0;
        }

        for(i=0;i<24;i++)
        {
                HX711_ADSK=1;//最小0.2us
                HX711_ADSK=0;
                count<<=1;
                if(HX711_ADDO_IN)
                count++;
        }
        for ( i = 0; i < amp; i++)
        {
                HX711_ADSK=1;
                HX711_ADSK=0;
        }
        if(count & 0x800000)//补码输出,需要还原
                count=count | ((-1) << 24);

        return(count);
}

你试试这样 断开应该返回的是0
回复

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-8-12
在线时间
8 小时
 楼主| 发表于 2020-11-20 20:49:18 | 显示全部楼层
nashui_sx 发表于 2020-11-19 09:50
代码控制,读错了输出个标志就行了多次读错就认为断线了

程序里有进行了大量的滤波和扔掉数据,这样也试了结果有误差
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2020-11-20 20:50:55 | 显示全部楼层
jeck 发表于 2020-11-20 20:49
程序里有进行了大量的滤波和扔掉数据,这样也试了结果有误差

这给滤波有啥关系,你不是为了检查断线吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 18:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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