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

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 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用