找回密码
 立即注册
楼主: wuzhengmin

学习休眠唤醒遇到的问题:1无法开启休眠 2舍弃一下功能后能进入休眠但无法唤醒

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 13:32:13 | 显示全部楼层
先设置4列为推挽输出,使能上拉:

截图202603011332112537.jpg
截图202603011332368319.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 13:41:30 | 显示全部楼层
P14—P17设为高阻输入模式,上拉使能

这样都是高电平,我们让某一列变低电平,按下哪行的键,哪行就是低电平
截图202603011336051971.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 13:50:37 | 显示全部楼层
接着是数码管:

截图202603011348168956.jpg
截图202603011350348158.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 14:29:02 | 显示全部楼层
管脚就设置好了,生成代码:

把前面的数码管和按键都移植过来:

#define KEY_MATRIX_PORT  P1
//列P10—P13设为推挽输出,上啦也使能,默认高电平
//行P14—P17设为高阻输入模式,上拉使能,默认高电平

我们让第一列为低电平: KEY_MATRIX_PORT = 1111  0111 = 0xF7
截图202603011429005121.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 18:17:26 | 显示全部楼层

我手头普中HC6800-ESV2.0 板子矩阵开关

纵向是P13 P12 P11 P10   横向是P17 P16 P15 P14   

列P10—P13设为推挽输出,上啦也使能,默认高电平。

行P14---P17设为高阻输入 ,上拉也使能,默认高电平。

首先J21的跳线要插在VCC+LE 的2端,如果是插在LE和P102端,数码管不显示按键值

其次一开始没有按下按键,是没有显示的,按下矩阵键盘之后才有显示
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 18:19:04 | 显示全部楼层
我们使用了printf_usb 函数:

看看主函数:

  1. //<<AICUBE_USER_HEADER_REMARK_BEGIN>>
  2. ////////////////////////////////////////
  3. // 在此添加用户文件头说明信息  
  4. // 文件名称: main.c
  5. // 文件描述:
  6. // 文件版本: V1.0
  7. // 修改记录:
  8. //   1. (2026-03-01) 创建文件
  9. ////////////////////////////////////////
  10. //<<AICUBE_USER_HEADER_REMARK_END>>
  11. #include "config.h"                     //默认已包含stdio.h、intrins.h等头文件
  12. //<<AICUBE_USER_INCLUDE_BEGIN>>
  13. // 在此添加用户头文件包含  
  14. #include "key.h"
  15. #include  "smg.h"
  16. //<<AICUBE_USER_INCLUDE_END>>
  17. //<<AICUBE_USER_GLOBAL_DEFINE_BEGIN>>
  18. // 在此添加用户全局变量定义、用户宏定义以及函数声明  
  19. //<<AICUBE_USER_GLOBAL_DEFINE_END>>
  20. ////////////////////////////////////////
  21. // 项目主函数
  22. // 入口参数: 无
  23. // 函数返回: 无
  24. ////////////////////////////////////////
  25. void main(void)
  26. {
  27.     //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
  28.     // 在此添加用户主函数初始化代码  
  29.         u8 key=1;
  30.         u8 key_num=0; //键值要转换为数码管的段码
  31.        
  32.        
  33.     //<<AICUBE_USER_MAIN_INITIAL_END>>
  34.     SYS_Init();
  35.     //<<AICUBE_USER_MAIN_CODE_BEGIN>>
  36.     // 在此添加主函数中运行一次的用户代码  
  37.     //<<AICUBE_USER_MAIN_CODE_END>>
  38.     while (1)
  39.     {
  40.         USBLIB_OUT_Done();              //查询方式处理USB接收的数据
  41.         //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
  42.         // 在此添加主函数中用户主循环代码
  43.                 key=key_matrix_ranks_scan();
  44.                 if(key!=0)
  45.                 printf_usb("KEY VALue:  %02X.  key_value: %02u  \r\n", key,key);        //输出2位16进制的key按键值,10进制的key按键值
  46.                
  47.                 if (key!=0) key_num=gsmg_code[key-1]; //Key的段码给了key_num
  48.                
  49.                 SMG_DisPlay(&key_num, 8);  //本来第一个参数是数组,我们只有1个数,要用&
  50.                 //第二个参数是显示位置,我们选第8位(最右边)显示。这个地址运算符&,本来是数组(相当于指针)
  51.                 //我们需要传递的是地址,&key_num就是地址(房间的门牌号)
  52.         //<<AICUBE_USER_MAIN_LOOP_END>>
  53.     }
  54. }
复制代码
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 18:36:17 | 显示全部楼层
因为99.9%的时候,按键值都是0,所以用USB-CDC 打印函数检查按键值

要加检测条件if(key!=0),否则0会覆盖你想看的按键值............

普中的板子,要注意跳线,这点和STC不同,STC是尽量不用跳线。。。。。。。

好了,矩阵按键实验就完成啦!
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 18:41:51 | 显示全部楼层
接着学习  10.1-LED点阵实验-介绍

我们板载的点阵是8*8=64个

本讲主要内容
1.LED点阵介绍
2.硬件设计
3.软件设计
4.实验现象



截图202603011841498176.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 18:56:10 | 显示全部楼层
实际把a设置为低电平 ,1的电平为高电平
就点亮啦红色圈中的LED

截图202603011856098341.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-3-1 19:01:25 | 显示全部楼层
其实和数码管很像,第一列是1个数码管

第二列是第二个数码管 .................


列就是位码 ,行就是段码


截图202603011901233853.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-1 02:43 , Processed in 0.114341 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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