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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hx711c语言滤波函数,模数转换芯片hx711 c驱动程序

發布時間:2023/12/29 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hx711c语言滤波函数,模数转换芯片hx711 c驱动程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

電子天平專用高精度的模數轉換芯片 HX711 的c語言驅動程序,講解詳細,一看就會。

bugAD_F(void)

{

u8 str[26];

int i=0,j=0,k=0;

delay_init(72);

UsartConf(9600);

ADInit();

BUFInit();//往隊列數組BUF里面存入N個采樣值,初始化SUM為N個采樣值的和。

while(1)

{

IntToStr(filter(),str); //IntToStr()函數在進行形參傳遞時,把filter()函數返回的浮點數轉化為了整型數,

//所以,此處調用IntToStr()函數不會出錯。

for(i=0;str[i]!='\0';i++); //計算數字是幾位數。

if(i == 7) //如果只有7位數,前面用一個空格補齊8位。

USendStr(" ");

USendStr(str);

USendStr(" ");

j++; //j實現輸出數字個數的計數,每輸出6個數字,換2行。

if(j == 6)

{

j = 0;

USendStr("\n");

USendStr("\n");

}

k++;

if(k == 100)break; //輸出100個數據后,結束調試。

delay_ms(500);

}

}

void BUFInit(void) //初始化隊列數組BUF和SUM,即,往里面先存入N個采樣值,SUM為N個采用值的和。

{

int j=0;

for(j=0;j

{

BUF[j] = ReadAD();

SUM+=BUF[j];

}

}

long double filter(void) //滑動均值濾波法的函數。

{

unsigned long temp=0,max=0,min=0;

int j=0;

temp = ReadAD();

/*下面一句不使用SUM+=temp-BUF[i]的形式,是為了避免temp-BUF[i]的運算,以免產生

負數,引起誤差。*/

SUM = SUM+temp-BUF[i];

BUF[i]=temp;

i++;

if(i == N)

i=0;

max=BUF[0];

min=BUF[0];

for(j=0;j

{

if(max

if(min>BUF[j])min=BUF[j];

}

/*下面一句中的(SUM-max-min)/(N-2),不能用SUM=SUM-max-min; SUM/(N-2);

這兩句來替代,因為,這樣會改變SUM的值,越減越小,到最后,會出現負數了。*/

return (SUM-max-min)/(N-2);

}

總結

以上是生活随笔為你收集整理的hx711c语言滤波函数,模数转换芯片hx711 c驱动程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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