m0_50347212 2024-03-14 10:05 采纳率: 27.3%
浏览 4

仿真温湿度那栏显示00

img

img

img

img

img

img

img

img


把别人的程序模块化之后就不显示温湿度了,之前全在main的时候能正常显示。模块化之后就不显示温湿度了,这是怎么回事?

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-14 10:06
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,您在将一个温湿度显示程序模块化后出现了不显示温湿度的问题。从代码片段来看,data pros() 函数中读取了 DHT11 温湿度传感器的数据,并将其转换为可显示的字符形式存储在 temp_bufhumibuf 中。然而,在模块化之后,可能存在的问题是没有正确调用该数据处理函数或没有正确更新 LCD 显示。

    分析整个流程,当 mode=0 时,应该会显示实时温湿度。但请注意,图3和图4-图5中的代码段似乎存在结构错误,例如 {} 括号没有正确匹配闭合,这可能导致部分代码未被执行。你需要检查并修正这些语法错误以确保正确的逻辑执行。

    此外,请确保在主函数(main)中正确地初始化 LCD 并且在循环中调用了 datapros() 函数来获取并刷新温湿度数据到 LCD 上。这里是一个修复后的、简化的主函数示例:

    #include "Key.H"
    #include "LCD1602.H"
    #include "DHT11.H"
    
    void main() {
        unsigned char i = 0;
        lcd_init(); // 初始化 LCD
        while(DHT11_Init()) { // 检测 DHT11 是否存在
            // ... 错误处理或初始化提示
        }
        
        Init_EEPROM();
        i = 0;
        while(1) {
            key_pros(); // 处理按键输入
            baojinpros(); // 报警处理
            
            datapros(); // 获取并处理温湿度数据
            // 更新 LCD 显示
            if(mode == 0) {
                lcd_init_display();
                for(i = 0; i < 2; i++) {
                    wrc(0x85 + i);
                    wrd(tempbuf[i]);
                }
                // 显示温度单位和湿度值
                // ...
            } else {
                // 其他模式下的显示...
            }
    
            Delay(1000); // 确保每次读取 DHT11 数据之间的间隔足够
        }
    }
    

    同时,需要确认在 datapros() 函数内部,temph, templ, humih, humil 这些变量是否已正确赋值。如果它们是在用户交互过程中动态设置的,那么请确保在调用 data pros() 之前已经进行了有效赋值。

    总之,请检查并修复所有语法错误以及确保模块间的正确协同工作,特别是在主函数中正确调度各个模块的功能实现。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月14日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注