找回密码
 立即注册
查看: 80|回复: 11

32G12K128如何实现任意端口唤醒?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-30 08:26:07
已绑定手机

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 4 天前 | 显示全部楼层 |阅读模式
如题所示,看芯片的资料32G12K128支持任意端口中断唤醒,我翻了一下芯片的规格书,找到相关的章节,确实有提到端口唤醒的地方,但里面的例程也相对简单。

我现在是要用32G12K128来做遥控器,为了省电,在长时间没有操作的前提下,关闭外设,将mcu设为PD模式,PD=1  并设置了中断唤醒引脚,打开使能。可mcu 就是不能唤醒。

我的端口初始化代码如下:
                  P6M0 = 0x03; P6M1 = 0x00;
                 P6IM0=0;
                 P6IM1=0x03; //低电平中断
                 P0INTE=0x03;
                 P0WKUE=0x03; //开启掉电唤醒


想实现p6.0/p6.1 端口电平唤醒,mcu进入休眠后唤醒不成功,我的问题出在哪里?
                 
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 4 天前 | 显示全部楼层
换 STC32G8K64-LQFP48/32,
所有 I/O都可以中断, 可支持 省电模式唤醒
截图202507281702233376.jpg

截图202507281702459733.jpg

截图202507281704281599.jpg



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 4 天前 | 显示全部楼层
截图202507281706264912.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-30 08:26:07
已绑定手机

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 4 天前 | 显示全部楼层
P6 中断跳转地址是多少
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-30 08:26:07
已绑定手机

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 4 天前 | 显示全部楼层
按上面的方式可以实现按键唤醒,但感觉不稳定,经常出现按键唤醒失效的情况,不得不重新上电才能重启系统,目前我的mcu 采用的内部晶振,是否需要RTC晶振?

点评

和外部32768晶振没关系 初始化先正确设置IAP_TPS PD之前加几个nop 如果主时钟频率接近极限频率,设置IRCDB=16  详情 回复 发表于 4 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-07-31 08:58:47
已绑定手机

87

主题

5532

回帖

1万

积分

超级版主

DebugLab

积分
10123
发表于 4 天前 | 显示全部楼层
pete*** 发表于 2025-7-28 20:28
按上面的方式可以实现按键唤醒,但感觉不稳定,经常出现按键唤醒失效的情况,不得不重新上电才能重启系统, ...

和外部32768晶振没关系
初始化先正确设置IAP_TPS
PD之前加几个nop
如果主时钟频率接近极限频率,设置IRCDB=16
还是不行就尝试PD之前修改主时钟频率到一个较低的频率,唤醒后再还原
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-30 08:26:07
已绑定手机

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 4 天前 | 显示全部楼层
Debu*** 发表于 2025-7-28 21:16
和外部32768晶振没关系
初始化先正确设置IAP_TPS
PD之前加几个nop

我现在的时钟频率设置为35M, IAP_TPS还没有设置过。nop倒是加了好多
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:137
  • 最近打卡:2025-07-31 12:11:20

76

主题

6281

回帖

1万

积分

超级版主

积分
13347
发表于 4 天前 | 显示全部楼层
允许IO中断就可以唤醒。
当按键比较多时,一般使用行列扫描,此时,不需要每个按键都能唤醒,比如4x8的键盘,有32个键,只需要4个能唤醒的IO做扫描输出,8个普通IO做扫描输入。
普通IO     IO7  IO6  IO5  IO4  IO3  IO2  IO1  IO0
唤醒IO1    K7   ..............................................K0
唤醒IO2    K15 ..............................................K8
唤醒IO3    K23 ..............................................K16
唤醒IO4    K31 ..............................................K24

睡眠处理:
IO7~IO0 = 0;
唤醒IO1~4 = 1;
清除唤醒IO1~4中断标志(需要的话);
允许唤醒IO1~4中断;
PCON |= 0x02;
NOP(5);
禁止唤醒IO1~4中断;
IO7~IO0 = 1;
正常运行程序,正常扫描按键。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 3 天前 | 显示全部楼层
要能唤醒,
低电平中断/高电平中断 是不行的;
需要 上升沿中断/下降沿中断 才行;
但 STC32G12K128的普通I/O的上升沿中断/下降沿中断设计有BUG,
尚未改版/也不会改版/做了车规认证不能改版,只会出新型号 STC32G34K128。

所以建议 用 STC32G8K64-LQFP48/44/32, STC8H8K64U-LQFP64/48/44/32
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-07-30 08:26:07
已绑定手机

1

主题

5

回帖

21

积分

新手上路

积分
21
发表于 前天 08:26 | 显示全部楼层
神*** 发表于 2025-7-29 00:18
要能唤醒,
低电平中断/高电平中断 是不行的;
需要 上升沿中断/下降沿中断 才行;

谢谢你的回复,你的意思是按键唤醒在STC32G12k128上实现有风险了?按楼上梁工的思路可以彻底解决吗?盼复。我的板子刚发出打样中。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-1 01:53 , Processed in 0.127003 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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