找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2370|回復: 4
打印 上一主題 下一主題
收起左側(cè)

單片機hx711做200kg體重秤,AD值一直返回8388608 是2的23次方 求助

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1024266 發(fā)表于 2022-5-6 11:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用hx711做ad轉(zhuǎn)換,四個半橋50kg的連接成全橋,主ic用的GD32F330,引腳配置和具體讀ad代碼我放下面

單片機源程序如下:
unsigned long HX711_Read(void) //選擇芯片工作方式并進行數(shù)據(jù)讀取
{
unsigned long count;   ///儲存輸出值  
unsigned char i;     
//   high--高電平 1  low--低電平 0  
                 gpio_bit_set(GPIOA, GPIO_PIN_2);     //digitalWrite作用: DT=1;
                 delay_us(1); //延時 1微秒  
                 gpio_bit_reset(GPIOA, GPIO_PIN_3);    //digitalWrite作用: SCK=0;
                 delay_us(1);   //延時 1微秒  
                 count=0;
                        while(gpio_output_bit_get(GPIOA, GPIO_PIN_3));    //當DT的值為1時,開始ad轉(zhuǎn)換
                        for(i=0;i<24;i++)   ///24個脈沖,對應讀取24位數(shù)值
                 {
                         gpio_bit_set(GPIOA, GPIO_PIN_3);    //digitalWrite作用: SCK=0;
                                                                                                                                                /// 利用 SCK從0--1 ,發(fā)送一次脈沖,讀取數(shù)值
                        delay_us(1);  //延時 1微秒  
                        count=count<<1;    ///用于移位存儲24位二進制數(shù)值
                        gpio_bit_reset(GPIOA, GPIO_PIN_3);    //digitalWrite作用: SCK=0;為下次脈沖做準備
                        delay_us(1);
                        if(gpio_output_bit_get(GPIOA, GPIO_PIN_3))    ///若DT值為1,對應count輸出值也為1
                         count++;
                 }
                        gpio_bit_set(GPIOA, GPIO_PIN_3);    ///再來一次上升沿 選擇工作方式  128增益
                 count ^= 0x800000;   //按位異或  不同則為1   0^0=0; 1^0=1;
                ///對應二進制  1000 0000 0000 0000 0000 0000  作用為將最高位取反,其他位保留原值
                 delay_us(1);
                 gpio_bit_reset(GPIOA, GPIO_PIN_3);      /// SCK=0;     
                 delay_us(1);  //延時 1微秒  
                 return(count);     ///返回傳感器讀取值
}

PA2是DT腳 PA3是SCK

void gpio_config(void)
{
    rcu_periph_clock_enable(RCU_GPIOA);
   gpio_af_set(GPIOA, GPIO_AF_0, GPIO_PIN_2);   
   gpio_af_set(GPIOA, GPIO_AF_0, GPIO_PIN_3);

                gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE,GPIO_PIN_2);
    gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_3);
    gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_3);

                gpio_bit_set(GPIOA, GPIO_PIN_3);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2022-5-6 14:13 | 只看該作者
輸入電壓有多高?
回復

使用道具 舉報

板凳
ID:162343 發(fā)表于 2022-7-5 14:44 | 只看該作者
這個問題,大概率是應變片接線錯誤造成的,用萬用表測量一下應變片三條線兩兩之間的阻值,找到半橋的公共端,把四個公共端接到E+、E-、A+、A-上就可以了,其他的線相互連接組成一個全橋。
回復

使用道具 舉報

地板
ID:1113734 發(fā)表于 2024-5-19 21:05 | 只看該作者
請問大佬解決了嗎?
回復

使用道具 舉報

5#
ID:1034262 發(fā)表于 2024-5-20 10:32 | 只看該作者
HX711輸出的是補碼,讀到23次方說明已經(jīng)溢出了,看看輸入的電壓是不是過大,傳感器接錯線了?不放重物時傳感器輸出電壓一般不超過1mV的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表