30大约是0.006千克,如果负数超过这个值,就说明是负重量,就报警。
STM32F103采用PB8和PB9接HX711的DO和CLK。软件可以参考简悉https://blog.csdn.net/qq_21078557/article/details/80496495。下面记录一下调试过程:1、老出现8388608或8388607,换算为十六进制就是80000和7FFFFF,就是表示采集值无效,可以理解为0,如果始终出现,表示传感器输出或电路出错。
2、仔细检查电路,特别是传感器的接线,一般红黑为电源,绿白为信号,但是有厂家不是这样定义的,特别留意。这次我的错误就是在这里。
3、软件中延时取多少时间?由HX711说明书看出,CLK时间设置为us级别即可,一般拦没乎延时delay(1us),这个由STM32程序设定。注意STM32L151芯片的时钟比较慢,delay1us的时间要算好。这也是我的错误所在处。
4.传感器读察中数和电压以及重量关系,如何标定。
————————————————
版权声明:本文为CSDN博主「binbincau」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/binbincau/article/details/99332517
#include<msp430x14x.h>#include "HX711.h"
//****************************************************
/带判租/延时函数
//****************************************************
void Delay_hx711_us(uint t)
{
//_nop_()
//_nop_()
while(t--)
}
// I/O配冲没置
void PORT_Init(void)
{
P1SEL &=~ (BIT1+BIT2)
P1DIR &=~ BIT2//SDA
P1DIR |= BIT1//SCK
}
//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void) //增益128
{
unsigned long count
unsigned char i
P1OUT |= BIT2//SDA
Delay_hx711_us(4)
P1OUT &=~ BIT1//SCK
count=0
while( P1IN&BIT2 )//SDA
for(i=0i<24i++)
{
P1OUT |= BIT1//SCK
count=count<<1
P1OUT &=~ BIT1/蠢兆/SCK
if(P1IN&BIT2)//SDA
count++
}
P1OUT |= BIT1//SCK
Delay_hx711_us(4)
P1OUT &=~ BIT1//SCK
return(count)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)