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

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

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 18:06:53 | 显示全部楼层
上拉电阻使能后默认就是高电平

P22 P23 P24 高电平 就是111 ,对应第7位:

如果不想显示可以设置段码P00-P07对应的 下拉电阻使能,默认低电平,

这样不管位码如何,数码管就没有显示

我们设置好之后保存,建立系统:





截图202602281757479265.jpg
截图202602281806508908.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:02:46 | 显示全部楼层
接着我们添加用户的代码:

和蜂鸣器一样,新建文件目录APP

建立2个文件 SMG.c 和smg.h

我们是动态扫描8个数码管,反正肉眼分辨20ms---50ms没差别的

我们位码先让com8 有效(低电平)就是要求P22 P23 P24 是111 (可以回去看看真值表) 111=7

然后段选传达0 的字摸 0x3F  (因为段选只有第7位有效,其他位是没显示的)

同理第二位com7  有效的时候 P22 P23 P24 就是011 =6

然后段选传达1 的字摸 0x06  (因为段选只有第6位有效,其他位是没显示的)

同理第三位com6  有效的时候 P22 P23 P24 就是101 =5

然后段选传达2 的字摸 0x5b  (因为段选只有第5位有效,其他位是没显示的)

........................................

同理第三位com1  有效的时候 P22 P23 P24 就是000 =0

然后段选传达7 的字摸 0x07  (因为段选只有第1位有效,其他位是没显示的)

注意消隐的原因,SMG_PORT=0;    //消隐

实际是段码给0,清除段数据,消除重影












回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:03:44 | 显示全部楼层
完整的看我们的功能函数:

#include  "smg.h"

//共阴极数码管显示0~F的段码数据
u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

                               

//从第pos位开始,显示缓冲器dat[]的内容       
void SMG_DisPlay(u8 dat[],u8 pos)  //dat[]是显示的内容,pos是显示的开始位置
{
        u8 i=0;
        u8 pos_temp=pos-1;
        for (i=pos_temp; i<8;i++)
        {
                switch (i)
                        {
                        case 0: LSC=1;LSB=1;LSA=1;break;
                        case 1: LSC=1;LSB=1;LSA=0;break;
                        case 2: LSC=1;LSB=0;LSA=1;break;
                        case 3: LSC=1;LSB=0;LSA=0;break;
                        case 4: LSC=0;LSB=1;LSA=1;break;
                        case 5: LSC=0;LSB=1;LSA=0;break;
                        case 6: LSC=0;LSB=0;LSA=1;break;
                        case 7: LSC=0;LSB=0;LSA=0;break;
                       
                        }
                                SMG_PORT=dat [i-pos_temp];
                                delay_ms (1) ;
                                SMG_PORT=0;    //消隐,实际是段码给0,清除段数据,消除重影
                       
                               
        }
       

}
       
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:04:35 | 显示全部楼层
主函数:

//<<AICUBE_USER_INCLUDE_BEGIN>>
// 在此添加用户头文件包含
#include  "smg.h"
//<<AICUBE_USER_INCLUDE_END>>


//<<AICUBE_USER_GLOBAL_DEFINE_BEGIN>>
// 在此添加用户全局变量定义、用户宏定义以及函数声明
        u8 i = 0;
        u8 smgbuf[8];
//<<AICUBE_USER_GLOBAL_DEFINE_END>>



////////////////////////////////////////
// 项目主函数
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    // 在此添加用户主函数初始化代码  
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
    // 在此添加主函数中运行一次的用户代码  
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
        USBLIB_OUT_Done();              //查询方式处理USB接收的数据

        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        // 在此添加主函数中用户主循环代码  
                for (i=0; i<8; i++) smgbuf[i] = gsmg_code[i];
                        SMG_DisPlay(smgbuf,1);  //dat[]是显示的内容,pos是显示的开始位置
                        //smgbuf有8个元素,从第一位开始全部显示
                        delay_ms(10) ;
                       
        //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:07:41 | 显示全部楼层
编译后下载

一切顺利,接着我们开始学习8.1-按键控制实验-简介

主要是学对GPIO的输入控制




截图202602282007387084.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:09:46 | 显示全部楼层
按键是机械的结构:

截图202602282009426307.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:17:35 | 显示全部楼层
硬件设计:

我手头的普中HC6800-ES V2.0 的按键:

RXD 就是 P31  TXD 就是P30
截图202602282012567449.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:18:10 | 显示全部楼层
RXD 就是 P31  TXD 就是P30

截图202602282018076023.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:22:30 | 显示全部楼层
LED是对应P2口
截图202602282022066951.jpg
回复

使用道具 举报 送花

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

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2026-2-28 20:26:12 | 显示全部楼层
我们设置上拉,把开关初始电平固定为高电平

软件设计:

截图202602282026095353.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-31 21:22 , Processed in 0.111565 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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