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条回答
lsb
1楼-- · 2019-07-20 13:35
该程序已经改好了,主要是因为一些不规范的问题造成的,有空会把改好的程序发过来。
lsb
2楼-- · 2019-07-20 17:17
采集之后一直显示83886,请问这是什么问题
xuande
3楼-- · 2019-07-20 18:58
 精彩回答 2  元偷偷看……
lsb
4楼-- · 2019-07-20 22:00
xuande 发表于 2016-7-28 14:29
身边找个人,让他指导,全部重写。

都不会,自学的,写的很烂
哈喽KT
5楼-- · 2019-07-21 01:48
这个貌似很难解决的,简单的移植完全没用,程序上要进行处理的,换个思路吧,16位的AD配上好一点的运放电路也是能做的
lsb
6楼-- · 2019-07-21 04:35
 精彩回答 2  元偷偷看……

一周热门 更多>