打印

hx711

[复制链接]
514|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电员师|  楼主 | 2020-4-24 17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "./hx711/hx711.h"


long HX711_Buffer = 0;
long Weight_Maopi = 0,Weight_Shiwu = 0;

#define GapValue 430
#define HIGH 1
#define LOW  0
#define HX711_GROUP GPIOB


void digitalWrite(GPIO_TypeDef * GPIO,int pin,int value)
{
        if(value==HIGH)//set 1
        {
                GPIO_SetBits(GPIO,pin);
        }
        if(value==LOW)//reset 0
        {
                GPIO_ResetBits(GPIO,pin);
        }
}

int digitalRead(GPIO_TypeDef * GPIO,int pin)
{
        return GPIO_ReadInputDataBit(GPIO,pin);
}

//****************************************************
//初始化HX711
//****************************************************
void Init_Hx711()
{
        GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOA, ENABLE);

  //SCK
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_72MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_InitTypeDef  GPIO_InitStructure1;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOA, ENABLE);

  //DOUT
  GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_1 ;
  GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_IN;
  //GPIO_InitStructure1.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructure1.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure1.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA, &GPIO_InitStructure1);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_GPIOA, ENABLE);

}


//****************************************************
//获取毛皮重量
//****************************************************
void Get_Maopi()
{
        Weight_Maopi = HX711_Read();               
}

//****************************************************
//称重
//****************************************************
long Get_Weight()
{
        HX711_Buffer = HX711_Read();
        Weight_Shiwu = HX711_Buffer;
        Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                                //获取实物的AD采样数值。
        Weight_Shiwu = (long)((float)Weight_Shiwu/GapValue);         
        return Weight_Shiwu;
}

//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void)        //增益128
{
                unsigned long val = 0;
        unsigned char i = 0;

        //判断模块是否准备好
        while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1));
        delay_us(1);   
        //sck 拉低
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        //再次判断是否准备好
        while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1));

        for(i=0;i<24;i++)
        {
                delay_us(100);
                GPIO_SetBits(GPIOA,GPIO_Pin_2);           
                val=val<<1;
                delay_us(1);  
                GPIO_ResetBits(GPIOA,GPIO_Pin_2);           
                if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1))  
                val++;
                delay_us(1);
        }
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        val = val^0x800000;
        delay_us(1);
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        delay_us(1);  
        return val;
}
中一直出现问题说没有被定义,问题是下面的
..\User\hx711\hx711.c(38): error:  #20: identifier "RCC_APB1Periph_GPIOA" is undefined
但是我定义了,而且在'".h"文件中也定义了#include "stm32f10x.h"。但是不知道为啥还是没有被定义,求大神

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

471

主题

480

帖子

0

粉丝