找回密码
 立即注册
查看: 823|回复: 16

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

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-04-30 08:41:54

4

主题

32

回帖

1496

积分

金牌会员

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

主函数

主函数

INT0中断函数

INT0中断函数

随心
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

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


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


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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

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

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

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-04-30 08:41:54

4

主题

32

回帖

1496

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-04-30 08:41:54

4

主题

32

回帖

1496

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

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

按键扫描 - 休眠唤醒.zip

9.15 KB, 下载次数: 92

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-04-30 08:41:54

4

主题

32

回帖

1496

积分

金牌会员

积分
1496
发表于 2024-5-15 09:50:23 | 显示全部楼层
本帖最后由 kite 于 2024-5-15 09:59 编辑
Lkck*** 发表于 2024-5-14 17:58
请提供全部代码

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

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

433.7 KB, 下载次数: 80

串口接收数据.txt

6.27 KB, 下载次数: 78

随心
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-04-30 08:41:54

4

主题

32

回帖

1496

积分

金牌会员

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

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 06:35 , Processed in 0.124909 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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