找回密码
 立即注册
查看: 169|回复: 15

长按按键,程序可能哪没写对,关机未实现,软件求支援

[复制链接]
  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 132 天

    [LV.7]常住居民III

    4

    主题

    32

    回帖

    628

    积分

    高级会员

    积分
    628
    发表于 2024-5-14 10:10:51 | 显示全部楼层 |阅读模式
    实际测得的现象是:现象是松手后小灯又会亮。
    想要的是长按按键关机,小灯熄灭,然后用另外一个按键唤醒,即对应的INT0。
    还有就是如果用这个按键关机还要用这个按键唤醒怎么实现,我想象的是会不会误触发,关机后立马唤醒,这部分如何处理?

    主函数

    主函数

    INT0中断函数

    INT0中断函数

    随心
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 115 天

    [LV.6]常住居民II

    43

    主题

    1044

    回帖

    7171

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    7171
    QQ
    发表于 2024-5-14 11:09:56 | 显示全部楼层
    还有就是如果用这个按键关机还要用这个按键唤醒怎么实现,
    我想象的是会不会误触发,关机后立马唤醒,这部分如何处理?  
    这部分监测到按键长按之后先关闭所有的外设,按下松开在彻底进入休眠即可。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    18 小时前
  • 签到天数: 131 天

    [LV.7]常住居民III

    18

    主题

    544

    回帖

    847

    积分

    荣誉版主

    热心市民

    积分
    847
    发表于 2024-5-14 11:11:03 | 显示全部楼层
    首先,你的标题措辞不合适“stc8h1k24长按按键无法关机的情况” 好像说stc8h1k24有问题,
    实则是你的程序逻辑比较混乱,你的长按检测本身没什么问题,
    但长按超时flag标记后,只要按键不释放,仍然在判断按键的while(P33==0)循环里无法退出,
    倒不如直接把关机操作的代码段安排到打标记那里,


    一般来说,不建议用while循环检测长按键,这会阻碍其它代码的运行,
    建议在定时器终端中或大循环中周期查询按键的方式去累加一个变量,
    再通过比较变量触发关机代码


    睁开眼睛做场梦~~~
    回复 支持 1 反对 0 送花

    使用道具 举报

    该用户从未签到

    568

    主题

    10000

    回帖

    1万

    积分

    管理员

    积分
    14517
    发表于 2024-5-14 11:19:39 | 显示全部楼层
    帮他改了标题,那标题影响STC8H1K24的光辉形象,真想对他禁言1周

    【长按按键,程序可能哪没写对,关机未实现,软件求支援】

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 132 天

    [LV.7]常住居民III

    4

    主题

    32

    回帖

    628

    积分

    高级会员

    积分
    628
     楼主| 发表于 2024-5-14 11:31:50 | 显示全部楼层
    电子DIY小家 发表于 2024-5-14 11:09
    还有就是如果用这个按键关机还要用这个按键唤醒怎么实现,
    我想象的是会不会误触发,关机后立马唤醒,这部 ...

    好的,谢谢。
    随心
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 132 天

    [LV.7]常住居民III

    4

    主题

    32

    回帖

    628

    积分

    高级会员

    积分
    628
     楼主| 发表于 2024-5-14 15:16:34 | 显示全部楼层
    本帖最后由 kite 于 2024-5-15 09:53 编辑
    晓飛飛 发表于 2024-5-14 11:11
    首先,你的标题措辞不合适“stc8h1k24长按按键无法关机的情况” 好像说stc8h1k24有问题,
    实则是你的程序逻 ...

    还是不行,大佬能看下我下面回复的吗?这个触发应该不是软件问题吧,是不是我这板子电路哪里有问题?
    随心
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    10 小时前
  • 签到天数: 73 天

    [LV.6]常住居民II

    5

    主题

    89

    回帖

    532

    积分

    高级会员

    积分
    532
    发表于 2024-5-14 17:58:32 | 显示全部楼层
    请提供全部代码
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 166 天

    [LV.7]常住居民III

    27

    主题

    1467

    回帖

    4560

    积分

    论坛元老

    积分
    4560
    发表于 2024-5-14 18:28:45 | 显示全部楼层
    写了个测试程序,供参考
    截图202405141828398449.jpg

    按键扫描 - 休眠唤醒.zip

    9.15 KB, 下载次数: 9

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 132 天

    [LV.7]常住居民III

    4

    主题

    32

    回帖

    628

    积分

    高级会员

    积分
    628
     楼主| 发表于 2024-5-15 09:50:23 | 显示全部楼层
    本帖最后由 kite 于 2024-5-15 09:59 编辑

    这个是我用来测试的一个程序,现在能够进入睡眠了,用串口助手发现是被误触发了中断,代码是长按p33关机,然后开启p32--INT0中断用于唤醒。现在实测发现是长按p33然后松手关机,立马就进入INT0了,然后唤醒。
    微信图片_20240515094416.png

    03-外中断INT0-INT1-INT2-INT3- INT4测试.zip

    433.7 KB, 下载次数: 5

    串口接收数据.txt

    6.27 KB, 下载次数: 5

    随心
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 132 天

    [LV.7]常住居民III

    4

    主题

    32

    回帖

    628

    积分

    高级会员

    积分
    628
     楼主| 发表于 2024-5-15 09:52:37 | 显示全部楼层
    乘风飞扬 发表于 2024-5-14 18:28
    写了个测试程序,供参考

    谢谢大佬的参考代码,好像找到问题了。我感觉是不是我们的板子电路哪里有问题了,明明没有按下另外一个按键但是却触发了中断。
    随心
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-18 19:20 , Processed in 0.072282 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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