找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4484|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STM32 HX711程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:199142 發(fā)表于 2017-5-11 11:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
nclude <stdio.h>
#include "stm32f10x_gpio.h"

// sbit ADDO=P2^0;
// sbit ADSK=P2^1;

#define ADSK_H  GPIO_SetBits (GPIOA ,GPIO_Pin_1)
#define ADSK_L  GPIO_ResetBits(GPIOA ,GPIO_Pin_1)


void static Delay(u32 del)
{
        while(del--);
}



void GPIO_Configuration_XH711(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
        
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
        
        GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IPU;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}










//讀711 AD數(shù)據(jù)子程序

//**********************************************************/
u32 ReadCount(void)
{
        u32 Count;
        u16 ADval;
        u8 i;
        ADSK_L;
        Count=0;
        while(GPIO_ReadInputDataBit(GPIOA ,GPIO_Pin_2));
        for(i=0;i<24;i++)   //讀24個(gè)bit
        {
                ADSK_H;
                Delay(5);
                Count=Count<<1;
                ADSK_L;
                Delay(5);
                  if(GPIO_ReadInputDataBit(GPIOA ,GPIO_Pin_2))Count++;
        }
        ADSK_H; //發(fā)送第25個(gè)脈沖,表示下次轉(zhuǎn)換使用A通道128db
        Delay(5);
//        Count=Count^0x800000;
        ;
        ADSK_L;         
        Delay(5);
/*        if((Count & 0x800000) == 0x800000)
        {
                Count = ~(Count - 1);
        }                  */
//        ADval = (int)(Count >> 8);//取高十六位有效值
        ADval = (int)(Count>>8);
//        ADDO=1;
        return(ADval);
}

u32 Weighing(void)
{        
        u32 X1;   
        u8 t,t1,count=0;               
        u16 databuffer[30];                                             //過(guò)采樣緩沖區(qū)
        u16 temp=0;        
        u32 X;
    do{                                                                     //循環(huán)讀數(shù)30次                                   
                X=ReadCount();
                if(X>100)             //如果是在測(cè)量在有效區(qū)范圍的值,標(biāo)示此讀數(shù)有效
                {         
                        databuffer[count]=X;
                        count++;  
                }                 
        }while(count<30);                                            
        if(count==30)                                    //每次度數(shù)一定要讀到30次數(shù)據(jù),否則丟棄
        {  
            do                                            //將數(shù)據(jù)X升序排列
                {        
                        t1=0;                  
                        for(t=0;t<count-1;t++)
                        {
                                if(databuffer[t]>databuffer[t+1])//升序排列
                                {
                                        temp=databuffer[t+1];
                                        databuffer[t+1]=databuffer[t];
                                        databuffer[t]=temp;
                                        t1=1;
                                }  
                        }
                }while(t1);           
        }                        
        /* 從排序過(guò)的數(shù)組里中間抽取連續(xù)的10組數(shù)據(jù),進(jìn)行取平均值,獲得較高的精度 */
        X1 = 0;
        for(count = 10; count < 20; count++){
                X1 = X1 + databuffer[count];
        }        
        X1 = X1 / 10;        
return X1;
}




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

使用道具 舉報(bào)

沙發(fā)
ID:221051 發(fā)表于 2017-7-23 13:42 | 只看該作者
謝謝樓主的分享。
回復(fù)

使用道具 舉報(bào)

板凳
ID:168715 發(fā)表于 2017-8-12 14:34 | 只看該作者
你這程序錯(cuò)了
回復(fù)

使用道具 舉報(bào)

地板
ID:64765 發(fā)表于 2018-9-26 16:52 | 只看該作者

謝謝樓主的分享。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表