OpenEdv-开源电子网

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

STM32 HX711无法读取数据,希望大佬测试一下代码

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2021-3-13
在线时间
0 小时
发表于 2021-3-13 10:30:58 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 2945291615 于 2021-3-13 10:33 编辑

百度了一周,资料和例子找了很多,但是移过来以后不运行,这个是脉冲的问题么?
HX711需要时钟么?看例子只是腿脚输出信号,没看到时钟的例子啊。
我用的是杜洋模板,求大佬测试一下我的代码如果没问题就是模块坏了。。。

我百度SPI通讯,发现这个不是SPI通讯,类似IIC通讯,但是又没有物理地址,我要疯了。


HX711.h



#ifndef __HX711_H__
#define __HX711_H__



void ADInit(void); //??????AD?????????ü??????I/O??????
u32 HX711_Read(void);  //??AD???????????????

#endif




HX711.c




#include "stm32f10x.h"
#include "hx711.h"
#include "delay.h"


#define ADIO GPIOA        //?¨??AD??????????I/O????×é??  
#define DATA GPIO_Pin_0          //?¨??AD????????????????????????
#define CLK  GPIO_Pin_1          //?¨??AD???????±????????????????
#define ADCLK RCC_APB2Periph_GPIOA  //?¨??AD?????ù??????I/O???????±???

void ADInit(void) //??????AD??????????I/O??????
{
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(ADCLK,ENABLE);

GPIO_InitStructure.GPIO_Pin = CLK;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //CLK?????¨??????????
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(ADIO,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = DATA;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//DATA?????¨??????????
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(ADIO,&GPIO_InitStructure);       
}

u32 HX711_Read(void)  //??AD????????????????
{
u32 val = 0;
u32 i = 0;

GPIO_SetBits(ADIO,DATA);
GPIO_ResetBits(ADIO,CLK);
while(GPIO_ReadInputDataBit(ADIO,DATA));
delay_us(1);
for(i=0;i<24;i++)
{
GPIO_SetBits(ADIO,CLK);
val=val<<1;
delay_us(1);  
GPIO_ResetBits(ADIO,CLK);
if(GPIO_ReadInputDataBit(ADIO,DATA))
val++;
delay_us(1);
}
GPIO_SetBits(ADIO,CLK);
val = val^0x800000;
delay_us(1);
GPIO_ResetBits(ADIO,CLK);
delay_us(1);  
return val;        
}





main.c



#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "key.h"
#include "string.h"
#include "hx711.h"
#include "stm32f10x.h" //STM32头文件
#include "touch_key.h"
#include "relay.h"
#include "oled0561.h"

u32 asd=0;
int main(void)
{        delay_ms(500);
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断分组配置
        //uart_init(115200);  //串口波特率设置
        I2C_Configuration();//I2C初始化
        OLED0561_Init(); //OLED初始化
        ADInit();                //HX711初始化
        while(1){
                asd=HX711_Read();
        //        asd=Read_Weigh();
                //将光敏电阻的ADC数据显示在OLED上
                OLED_DISPLAY_8x16(4,10*8,asd/1000+0x30);//
                OLED_DISPLAY_8x16(4,11*8,asd%1000/100+0x30);//
                OLED_DISPLAY_8x16(4,12*8,asd%100/10+0x30);//
                OLED_DISPLAY_8x16(4,13*8,asd%10+0x30);//
                delay_ms(500); //延时
        }
}










以上是我写的全部,大佬们帮测试一下或修改。


HX711无响应.rar

5.47 MB, 下载次数: 1

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

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2021-3-15 16:07:11 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-9 11:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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