m0_74474210 2024-05-20 22:33 采纳率: 93.8%
浏览 1
已结题

按键到7之后长按进入定时时间修改,但是settime和setweight没有被调用过,怎么改?

按键1对应的事件有很多,当按键1短按,1-6显示光标,然后按按键2-3进行加减,到按键7的时候长按显示光标,然后当再次短按就移动光标,在长按的基础上怎么去检测短按,这时按键1都为0

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-20 22:33
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题:

    您提问的目的是要解决在使用STM32开发板进行编程时,按键长按后无法修改定时时间的问题。具体来说,您希望在按键长按到7之后能够进入定时时间的修改模式,但在实际操作中settimesetweight函数没有被调用。

    图片内容:

    1. 第一张图片展示了一个函数displaySetTime,用于显示提醒时间,以及一个函数SetReminderTime,用于设置提醒时间。
    2. 第二张图片显示了按键长按逻辑和一些条件判断。
    3. 第三张图片提供了一些函数定义,如displayCursorSetFoodweight,以及一个按键扫描函数keyscan
    4. 第四张图片展示了displayTime函数,用于显示时间设置。
    5. 第五张图片继续展示了displayTime函数,包括设置喂食时间的代码。
    6. 第六张图片显示了设置喂食时间的代码,以及如何显示喂食重量。
    7. 第七张图片提供了设置年份、月份和日期的代码。
    8. 第八张图片展示了设置喂食重量的代码,以及退出设置后保存数据的逻辑。
    9. 第九张图片提供了设置小时、分钟和秒的代码。
    10. 第十张图片提供了设置日的代码。
    11. 第十一张图片提供了设置年份和月份的代码。

    问题出现原因:

    根据您提供的信息和图片内容,问题可能出现的原因包括:

    • 长按按键的逻辑没有正确触发settimesetweight函数。
    • keyLongPress变量的逻辑判断可能有误,导致长按事件没有被正确处理。
    • 可能存在代码中的逻辑错误或缺少必要的函数调用。

    问题解决方案:

    为了解决按键长按后无法修改定时时间的问题,您可以尝试以下步骤:

    1. 确保长按按键的逻辑正确无误,并且能够正确设置keyLongPress变量。
    2. 检查SetReminderTime函数是否在长按事件中被正确调用。
    3. 确保displaySetTime函数能够根据settimesetweight的设置来更新显示。

    提供代码:

    由于我无法直接修改图片中的代码,我将提供一个示例代码片段,您可以根据这个示例来调整您的代码:

    // 假设这是您的按键长按处理函数
    void longPressHandler() {
        if (keyLongPress) {
            // 进入定时时间设置模式
            setReminderTimeMode();
            // 重置长按标志
            keyLongPress = false;
        }
    }
    
    // 假设这是设置提醒时间的函数
    void setReminderTimeMode() {
        // 调用settime和setweight函数
        settime();
        setweight();
        // 更新LCD显示
        displaySetTime();
    }
    
    // 确保在您的主循环中定期调用按键处理函数
    while(1) {
        keyscan(); // 扫描按键
        longPressHandler(); // 处理长按事件
        // ... 其他代码
    }
    

    代码运行方式:

    • 您需要将上述代码集成到您的STM32项目中。
    • 确保您的开发环境已经设置好,如Keil MDK或其他STM32开发工具。
    • 编译并下载代码到STM32开发板。

    代码预期运行结果:

    • 当用户长按按键到7时,setReminderTimeMode函数被调用。
    • 定时时间设置模式被激活,settimesetweight函数执行。
    • LCD显示更新以反映新的定时时间设置。

    推荐相关链接:

    请注意,这些链接仅供参考,您可能需要根据您的具体情况进行调整。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 修改了问题 5月20日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?