温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

压力传感器HX711的C函数怎么用

发布时间:2021-10-21 13:50:21 来源:亿速云 阅读:194 作者:小新 栏目:编程语言

小编给大家分享一下压力传感器HX711的C函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

内容所有权属于:http://www.xinduofen.com/

#define ADDO P1_2

#define ADSK P1_3

#define AdCnt 10//定义AD采样平均值的次数(AdCnt>2)

//读HX711的AD转换数据函数

unsigned long ReadAdValue(void)

unsigned long Count = 0;

unsigned char i;

ADDO=1;

ADSK=0;

Count=0;

while(ADDO);

for(i=0;i<24;i++)//读取24位数据并发送24个脉冲

{

ADSK=1;

Count=Count<<1;

ADSK=0;

if(ADDO)Count++;

}

ADSK=1;//发送第25个脉冲

delay_us(1); 

ADSK=0;

return(Count);

}

signed long getAdcValue(){//获得一次体重秤的AD值函数

unsigned char k;

unsigned long adValue;//将要读取的单个AD值缓存区(二进制补码)

signed long adValueY;//将读取的单个AD值转换成原码的缓存区

signed long adMinValue;//用于存储AdCnt次AD值当中的最小值,初始化为‘第一个AD采样值’

signed long adMaxValue;//用于存储AdCnt次AD值当中的最大值,初始化为‘第一个AD采样值’

signed long adValueAll = 0;//将要读取的AdCnt次AD值总和缓存区,初始化为‘0’

for(k=0;k<AdCnt;k++){

adValue = ReadAdValue();

if(adValue&0x00800000){//如果为负数的补码,将负数的补码转换成正数(正数的补吗就是原码)

adValue=((~adValue)+1)&0x007FFFFF;

adValueY = -adValue;

}else{//如果为正数的补码,正数的补码就是原码

adValueY = adValue;

}

if(k==0){//如果为第一个AD采样值

adMinValue = adValueY;//初始化最小值

adMaxValue = adValueY;//初始化最大值

}else{

if(adValueY<adMinValue){

adMinValue = adValueY;//更新最小值

}

if(adValueY>adMaxValue){

adMaxValue = adValueY;//更新最大值

}

}

adValueAll = adValueAll + adValueY;//累计10次AD值的总和

}

adValueAll = adValueAll - adMinValue - adMaxValue;//去掉一个最小值和一个最大值

adValueY = adValueAll/(AdCnt-2);//取(AdCnt-2)次AD值的平均值

return adValueY;//返回AD值

}

以上是“压力传感器HX711的C函数怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI