HX711压力传感器学习二(MSP432P401R版)

代码

HX711GPIO初始化

void Init_HX711pin(void)//初始化
{
	GPIO_setAsOutputPin(GPIO_PORT_P3,GPIO_PIN5);//sck
	GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P3, GPIO_PIN7);//dout
}

称重传感器的信号放大和转换

uint32_t HX711_Read(void)	//增益128
{
	unsigned long count; 
	unsigned char i; 
	GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN7);//HX711_DOUT=1;
	delay_us(1);
	GPIO_setOutputLowOnPin(GPIO_PORT_P3,GPIO_PIN5);//HX711_SCK=0; 
  	count=0; 
  	while(GPIO_getInputPinValue(GPIO_PORT_P3, GPIO_PIN7)); 
  	for(i=0;i<24;i++)
	{ 
			GPIO_setOutputHighOnPin(GPIO_PORT_P3,GPIO_PIN5);//HX711_SCK=1;
	  	count=count<<1; 
		delay_us(1);
		GPIO_setOutputLowOnPin(GPIO_PORT_P3,GPIO_PIN5);//HX711_SCK=0; 
	  	if(GPIO_getInputPinValue(GPIO_PORT_P3, GPIO_PIN7))//HX711_DOUT=1
			count++; 
		delay_us(1);
	} 
 	GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN5);//HX711_SCK=1;
    count=count^0x800000;//第25个脉冲下降沿来时,转换数据
	delay_us(1);
	GPIO_setOutputLowOnPin(GPIO_PORT_P3,GPIO_PIN5);//HX711_SCK=0;
	return(count);
}

 讲解

  1. 首先,将HX711_DOUT引脚置为高电平,表示准备开始读取数据。
  2. 延时1微秒。
  3. 将HX711_SCK引脚置为低电平,表示准备发送时钟脉冲。
  4. 初始化计数器count为0。
  5. 使用while循环等待HX711_DOUT引脚变为低电平,表示数据准备好了。
  6. 进行24次循环,每次读取一位数据。
  7. 在每次循环开始时,将HX711_SCK引脚置为高电平,发送一个时钟脉冲。
  8. 将count左移一位,为新的数据位留出位置。
  9. 延时1微秒。
  10. 将HX711_SCK引脚置为低电平,结束时钟脉冲。
  11. 检查HX711_DOUT引脚的值,如果为高电平,则将count加1,表示该位是1。
  12. 延时1微秒。
  13. 循环结束后,将HX711_SCK引脚置为高电平,发送一个时钟脉冲。
  14. 将count与0x800000异或运算,相当于对第25个脉冲下降沿时的数据进行转换。
  15. 延时1微秒。
  16. 将HX711_SCK引脚置为低电平,结束时钟脉冲。
  17. 返回读取到的数据count。

获取毛皮重量

void Get_Maopi(void)
{
	Weight_Maopi = HX711_Read();	
} 
uint32_t Get_Weight(void)
{
	HX711_Buffer = HX711_Read();
	if(HX711_Buffer > Weight_Maopi)			
	{
		Weight_Shiwu = HX711_Buffer;
		Weight_Shiwu = Weight_Shiwu - Weight_Maopi;				//获取实物的AD采样数值。
	
		Weight_Shiwu = (int32_t)((double)Weight_Shiwu / GapValue);	//计算实物的实际重量
																		//因为不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的GapValue这个除数。
																		//当发现测试出来的重量偏大时,增加该数值。
																		//如果测试出来的重量偏小时,减小改数值。
		Weight_Shiwu=KLM(Weight_Shiwu);
	}
	return(Weight_Shiwu);
}

如果对HX711称重模块不是很了解的可以参考:HX711压力传感器学习一(STM32)_hx711引脚及其功能_三马分享家的博客-CSDN博客

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值