小编给大家分享一下压力传感器HX711的C函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联主要从事成都网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务互助,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575内容所有权属于: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 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 = 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函数怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道! 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:压力传感器HX711的C函数怎么用-创新互联
文章转载:http://cdweb.net/article/jhshh.html