日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hx711芯片c语言程序,压力传感器HX711的C函数

發布時間:2023/12/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hx711芯片c语言程序,压力传感器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

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语言程序,压力传感器HX711的C函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。