OpenEdv-开源电子网

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

用HX711做的AD采集,但是好像是没有采集到数据,所以采集到的count值应该为0,

[复制链接]

7

主题

19

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-3-1
在线时间
37 小时
发表于 2017-3-16 09:53:38 | 显示全部楼层 |阅读模式
10金钱
用HX711做的AD采集,但是好像是没有采集到数据,在count^0x800000之后count的值为0x800000,所以采集到的count值应该为0,我猜测是这几种情况(1)管脚设置
        关于管脚方面,尝试了论坛里和光盘里定义的几个,但是都没有反应,count的值仍为0
(2)read_COUNT函数的问题
       但是基本是参考51程序的翻译还有论坛里的程序,感觉应该没问题(不过很大可能是比较笨没侃出来。。。。。)
(3)HX711连接应该没有问题,我拿51试验过,换到32就没起作用了


暂时提供的信息应该只有这么多,因为论坛里关于F4的HX711信息实在很少,F1的信息与F4又有可能不同,所以只好向大家求助啦!
谢谢大家!


下面是代码
        main.c
        #include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "AD24.h"

int main(void)
{
       
    extern unsigned long Count;
        delay_init(168);    //初始化延时函数
        uart_init(115200);        //初始化串口波特率为115200
       
        ADC24_Init();
       
        LED_Init();                //初始化LED
        LCD_Init();         //初始化LCD接口

        while(1)
        {
                ADC_ReadCount();

                LCD_ShowxNum(134,130,Count,10,16,0);    //显示ADCC采样后的原始值
               
                delay_ms(250);       
        }
}

        AD24.h
        #ifndef __AD24_H
        #define __AD24_H
        #include "sys.h"
        #include "delay.h"
        void ADC24_Init(void);
        unsigned long ADC_ReadCount(void);

        #endif




        AD24.c
        #include"AD24.h"

void ADC24_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;

        RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, ENABLE);
       
        GPIO_InitStruct.GPIO_Pin=       GPIO_Pin_11;       //ADDO
        GPIO_InitStruct.GPIO_Mode=                GPIO_Mode_IN;
        GPIO_InitStruct.GPIO_OType=        GPIO_OType_OD;
       
        GPIO_InitStruct.GPIO_Speed=                GPIO_Speed_50MHz;
        GPIO_InitStruct.GPIO_PuPd=                GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA, &GPIO_InitStruct);
       
        GPIO_InitStruct.GPIO_Pin=       GPIO_Pin_12;       //SCK
        GPIO_InitStruct.GPIO_Mode=                GPIO_Mode_OUT;
        GPIO_InitStruct.GPIO_OType=                GPIO_OType_PP;
        GPIO_InitStruct.GPIO_Speed=                GPIO_Speed_50MHz;
        //GPIO_InitStruct.GPIO_PuPd=                GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA, &GPIO_InitStruct);
       
}



unsigned long Count;
unsigned long ADC_ReadCount(void)
{
         unsigned char i=0;
                 

            Count=0;
            GPIO_ResetBits(GPIOA,GPIO_Pin_12);//ADSK=0;  
                        GPIO_SetBits(GPIOA,GPIO_Pin_11);  //ADDO=1;
            delay_us(20);
       
        while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11)==1)// while(ADDO);
                        delay_us(1);
         for (i=0;i<24;i++)
                 {
                 GPIO_SetBits(GPIOA,GPIO_Pin_12);//ADSK=1;
                                 delay_us(1);
                 Count=Count<<1;
                                         delay_us(1);
                    GPIO_ResetBits(GPIOA,GPIO_Pin_12);//ADSK=0;
                                 delay_us(1);
                 if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11)) Count++;
                                 delay_us(1);
                 }
         GPIO_SetBits(GPIOA,GPIO_Pin_12);//ADSK=1;
                             delay_us(1);
         Count=Count^0x800000;//抑或
         GPIO_ResetBits(GPIOA,GPIO_Pin_12);//ADSK=0;
                             delay_us(1);
         return Count;
}

最佳答案

查看完整内容[请看2#楼]

应该是管脚配制的问题,我以前用hx711连STC单片机没问题,接STM32没用过。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

95

主题

555

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3356
金钱
3356
注册时间
2016-1-7
在线时间
552 小时
发表于 2017-3-16 09:53:39 | 显示全部楼层
应该是管脚配制的问题,我以前用hx711连STC单片机没问题,接STM32没用过。
回复

使用道具 举报

7

主题

19

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-3-1
在线时间
37 小时
 楼主| 发表于 2017-3-16 12:52:25 | 显示全部楼层
challenger 发表于 2017-3-16 10:41
应该是管脚配制的问题,我以前用hx711连STC单片机没问题,接STM32没用过。

嗯,我也觉得是这样,我也是用的STC的51试过,代码原理相同,可以实现,但是32就是没反应。。。
回复

使用道具 举报

7

主题

19

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-3-1
在线时间
37 小时
 楼主| 发表于 2017-3-21 16:45:46 | 显示全部楼层
challenger 发表于 2017-3-16 09:53
应该是管脚配制的问题,我以前用hx711连STC单片机没问题,接STM32没用过。

嗯,因为刚开始学,代码不太会写,只是复制,有一段复制错了,才出的麻烦。。。
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-4-14
在线时间
5 小时
发表于 2017-5-5 16:35:21 | 显示全部楼层
楼主能说一下你的程序的错误在哪里吗?我的跟你的差不多,结果也是出来8388608
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 10:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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