m0_73784255 2023-03-19 02:35 采纳率: 17.6%
浏览 180
已结题

Hi3861称重模块

我用Hi3861连接称重模块HX711一直无法测量重量,
这是我的GPIO口的定义和初始化

img

img


请问该如何才能使Hi3861正确从HX711中读取重量?
能否附上示例代码?

  • 写回答

4条回答 默认 最新

  • MarkHan_ 2023-03-19 06:52
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    你好!针对你的问题,以下是我给出的解决方案:

    1.首先,请确保已经正确连接好了 Hi3861 和 HX711。确保引脚连接正确,并且电源和地线也连接好了。

    2.其次,请注意 HX711 的电源电压和 Hi3861 的电源电压是否匹配。如果不匹配,可能会导致读取不到数据。

    3.接下来,你需要编写代码来读取 HX711 的数据。以下是一个简单的示例代码,你可以根据自己的需求进行修改。

    #include <stdio.h>
    #include <stdlib.h>
    #include <hi3861.h>
    
    #define HX711_CLK_PORT GPIO_5
    #define HX711_DATA_PORT GPIO_4
    
    void HX711_Init() {
        gpio_init(HX711_CLK_PORT, GPIO_OUTPUT);
        gpio_init(HX711_DATA_PORT, GPIO_INPUT);
        gpio_write(HX711_CLK_PORT, 1);
        gpio_write(HX711_DATA_PORT, 1);
    }
    
    uint32_t HX711_Read() {
        uint32_t data = 0;
        uint8_t i;
        gpio_write(HX711_CLK_PORT, 0);
        delay_us(1);
        gpio_write(HX711_CLK_PORT, 1);
        delay_us(1);
        for (i = 0; i < 24; i++) {
            gpio_write(HX711_CLK_PORT, 0);
            delay_us(1);
            data <<= 1;
            if (gpio_read(HX711_DATA_PORT)) {
                data++;
            }
            gpio_write(HX711_CLK_PORT, 1);
            delay_us(1);
        }
        gpio_write(HX711_CLK_PORT, 0);
        delay_us(1);
        data ^= 0x800000;
        return data;
    }
    
    int main() {
        uint32_t weight;
        HX711_Init();
        while (1) {
            weight = HX711_Read();
            printf("weight: %d\n", weight);
            delay_ms(500);
        }
        return 0;
    }
    
    

    4.上述代码中,我们使用 gpio_init() 函数对 GPIO 引脚进行初始化,使用 gpio_write() 函数设置引脚输出状态,使用 gpio_read() 函数读取引脚输入状态。我们使用了一个 delay_us() 函数来进行延时。注意,如果你需要修改引脚的定义,请根据自己的实际情况进行修改。

    5.在 main() 函数中,我们首先调用 HX711_Init() 函数来初始化 HX711 模块。然后在一个无限循环中,我们调用 HX711_Read() 函数来读取 HX711 模块的数据,并使用 printf() 函数打印出来。为了不让数据刷新得太快,我们在每次读取后延时了 500 毫秒。

    希望这些信息能够帮助你解决问题!

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月27日
  • 已采纳回答 3月19日
  • 赞助了问题酬金15元 3月19日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法