OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3589|回复: 7

hx711读取重量一直为0

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-5-10
在线时间
20 小时
发表于 2018-11-22 15:44:44 | 显示全部楼层 |阅读模式
1金钱
想读取称重的重量送到串口显示,可是一直为零。这代码原本跑过,可以正常读数的,未改动过,再跑就一直显示为0了!
麻烦各位不吝赐教了

int main(void)
{       

        u8 c;
        delay_init();                     //延时函数初始化       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
        uart_init(9600);         //串口初始化为9600
        LED_Init();                           //初始化与LED连接的硬件接口
        HX711_Init();


        Get_Maopi();//获取毛皮重量         
         
        while(1)
        {
               
                Get_Weight();//获取实物重量

                printf("得到的重量%d\r\n",Weight_Shiwu);        //输出实物重量并保留两位小数
                delay_ms(10000);

        }

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2017-10-21
在线时间
23 小时
发表于 2018-11-22 17:00:07 | 显示全部楼层
看看连线是否有问题 有没有松动或者两根信号线有没有接反
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-5-10
在线时间
20 小时
 楼主| 发表于 2018-11-23 11:53:04 | 显示全部楼层
LIFU 发表于 2018-11-22 17:00
看看连线是否有问题 有没有松动或者两根信号线有没有接反

连线和信号线都没有问题呀
回复

使用道具 举报

1

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2017-10-21
在线时间
23 小时
发表于 2018-11-23 12:30:17 | 显示全部楼层
肯定哪里有问题 如果程序之前跑通过 基本就是硬件出了啥问题了 可以用仿真看看能不能收到数据啊
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-5-10
在线时间
20 小时
 楼主| 发表于 2018-11-23 18:38:57 | 显示全部楼层
LIFU 发表于 2018-11-23 12:30
肯定哪里有问题 如果程序之前跑通过 基本就是硬件出了啥问题了 可以用仿真看看能不能收到数据啊

可是我换了另一个硬件也是一样的
回复

使用道具 举报

1

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2017-10-21
在线时间
23 小时
发表于 2018-11-24 14:06:42 | 显示全部楼层
这东西不难 好好找找原因吧
回复

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-4-12
在线时间
24 小时
发表于 2019-3-1 20:25:24 | 显示全部楼层
我也和你一样的问题
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-3-1 22:31:36 | 显示全部楼层
龙吟殷九洲 发表于 2019-3-1 20:25
我也和你一样的问题

试试这个

[mw_shl_code=applescript,true]#ifndef __HX711_H__
#define __HX711_H__

#include "sys.h"
#include "delay.h"

extern s32 zhiliang_temp,zhiliang;
#define HX711_RCC_APB2Periph_GPIOx   RCC_APB2Periph_GPIOB
#define GPIO_HX711                   GPIOB
#define HX711_ADSK_Pin               GPIO_Pin_6          //PB6
#define HX711_ADDO_Pin               GPIO_Pin_7          //PB7

#define        HX711_ADSK                   PBout(6)
#define        HX711_ADDO                   PBout(7)
#define        HX711_ADDO_IN                PBin(7)       //读数据端口
#define HX711_Delay1ms()             delay_ms(1)   //延时nms


#define A_128 128
#define B_32  32
#define A_64  64

void HX711_IO_Init(void);
void HX711_ADDO_IO_OUT(void);
void HX711_ADDO_IO_IN(void);

s32  HX711_getdata(u8 beishu);

#endif
[/mw_shl_code]
[mw_shl_code=applescript,true]/*
//测试hx711的main

//stm32系统
#include "sys.h"
#include "delay.h"
#include "usart1.h"

#include "hx711.h"
       
int main()
{
                s32 zhiliang;       
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
                delay_init();
               
                HX711_IO_Init();       
                USART1_Init(115200);
                USART1_printf("USART1_printf OK...\r\n");

               
                while(1)
                {
                        zhiliang=HX711_getdata(A_128);
                        if(zhiliang!=0) //0:超时
                                USART1_printf("%ld\r\n",zhiliang);
                        delay_ms(100); //10Hz
                }       
}
*/
#include "hx711.h"

//RATE引脚 0-10Hz  1-80Hz    默认接地了 10Hz

s32 zhiliang_temp,zhiliang;
//HX711_getdata(A_64)

void HX711_IO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_APB2PeriphClockCmd(HX711_RCC_APB2Periph_GPIOx, ENABLE);
       
        GPIO_InitStructure.GPIO_Pin = HX711_ADSK_Pin | HX711_ADDO_Pin;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIO_HX711, &GPIO_InitStructure);
       

        GPIO_ResetBits(GPIO_HX711, HX711_ADSK_Pin | HX711_ADDO_Pin); //SCK RES置低
  GPIO_SetBits(GPIO_HX711, HX711_ADDO_Pin);                    //DATA拉高
}



void HX711_ADDO_IO_OUT(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;       
       
        GPIO_InitStructure.GPIO_Pin=HX711_ADDO_Pin;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_Init(GPIO_HX711,&GPIO_InitStructure);
}

void HX711_ADDO_IO_IN(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;       
       
        GPIO_InitStructure.GPIO_Pin=HX711_ADDO_Pin;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
        GPIO_Init(GPIO_HX711,&GPIO_InitStructure);
}
s32 HX711_getdata(u8 beishu) //beishu: A_128  B_32  A_64
{
                s32 count=0;
                u8 i,amp,chaoshi;
                HX711_ADDO_IO_IN();
                switch(beishu)
                {
                                case A_128:amp=1;break;
                                case B_32 :amp=2;break;
                                case A_64 :amp=3;break;
                                default   :amp=1;break;
                }
                while(HX711_ADDO_IN)
                {
                   HX711_Delay1ms();
                         chaoshi++;
                         if(chaoshi>10)
                                        return  0;
                }

                for(i=0;i<24;i++)
                {
                                HX711_ADSK=1;//最小0.2us
                                HX711_ADSK=0;
                                count<<=1;
                                if(HX711_ADDO_IN)
                                count++;
                }
                for ( i = 0; i < amp; i++)
                {
                                HX711_ADSK=1;
                                HX711_ADSK=0;
                }
                if(count & 0x800000)//补码输出,需要还原
                                count=count | ((-1) << 24);

                return(count);
}
[/mw_shl_code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 17:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表