STM2F4控制HX711AD采集

2019-07-20 08:47发布

求大神帮我看看这个程序有没有错,一直采集不到程序。使用的探索者开发板
#include "hx711.h"
#include "delay.h"       


unsigned long Count;

void ADInit(void)
{


        GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);         

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;         //SCK
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOD,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;         //DOUT
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;           
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;         
GPIO_Init(GPIOD, &GPIO_InitStructure);               
       
}

unsigned long ReadCount(void)
{

unsigned char i;
ADSK=0; //使能AD(PD_SCK 置低)
Count=0;
while(ADDO); //AD转换未结束则等待,否则开始读取
for (i=0;i<24;i++)
{
ADSK=1; //PD_SCK 置高(发送脉冲)
Count=Count<<1; //下降沿来时变量Count左移一位,右侧补零
ADSK=0; //PD_SCK 置低
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;//第25个脉冲下降沿来时,转换数据
ADSK=0;
return(Count);
}
//*******************************
#ifndef __HX711_H
#define __HX711_H
#include "sys.h"


#define ADDO PDout(6)        // DS0

#define ADSK PDout(7)        // DS1


void ADInit(void);


unsigned long ReadCount(void);

extern unsigned long Count;

#endif


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
哈喽KT
1楼-- · 2019-07-21 09:07
lsb 发表于 2016-7-28 19:55
现在能采集了,只不过不能进行实时显示

那也可以了啊,实时显示太灵敏也不好的
正点原子
2楼-- · 2019-07-21 12:41
 精彩回答 2  元偷偷看……
卤煮小鱼
3楼-- · 2019-07-21 18:27
 精彩回答 2  元偷偷看……
还是看不穿
4楼-- · 2019-07-21 23:13
你好,请问你的Hx711是买的模块吗?我现在买了一个模块是要求5V左右提供电工作电压,但看芯片手册有个要求:数字电源(DVDD)应使用与 MCU 芯片相同的的数字供电电源。那如果用STM32可以吗
zhczlzhang
5楼-- · 2019-07-22 04:22
楼主,问下你的问题解决了吗?我也是用的探索板,输出一直是8388608,怎么都读不出来。

一周热门 更多>