在各位大侠指导下,有进展:
乘风***大侠还给了以前网友的贴子,还有例子程序:
我跟着改了一下:
- if(++SleepDelay >= 5) //5秒后休眠
- {
- SleepDelay = 0;
- ioIndex = 0 ;
- if(INT0 && INT1) //两个中断都是高电平时才进入休眠,下降沿唤醒。
- {
- SleepDelay = 0;
- TM1638Off(); //关闭TM1638显示,省电
-
- IE0 = 0; //外中断0标志位
- IE1 = 0; //外中断1标志位
- EX0 = 1; //INT0 Enable
- EX1 = 1; //INT1 Enable
-
- IT0 = 1; //INT0 下降沿中断
- // IT0 = 0; //INT0 上升,下降沿中断
- IT1 = 1; //INT1 下降沿中断
- // IT1 = 0; //INT1 上升,下降沿中断
-
- // EX2 = 1; //使能 INT2 下降沿中断
- // EX3 = 1; //使能 INT3 下降沿中断
- // EX4 = 1; //使能 INT4 下降沿中断
-
- printf_usb("MCU Sleep.\r\n");//printf_usb能在串口助手打印出来
-
- delay_ms(1); //延时1ms,保证MCU Sleep.能传输的到串口
- usb_uninit();
-
- PD = 1; //Sleep成功进入,但不能唤醒
-
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
-
-
- P3IE = 0xFF; //恢复数字输入
- usb_init();
- TM1638OPEN(); //打开TM1638
- printf_usb("MCU wakeup from P%02X.\r\n", ioIndex);
- }
- }
复制代码
结果如下:1 顺利的进入休眠,同时TM1638Off()也顺利执行,数码管关闭了
但是不能唤醒,检查P32 P33 的电平,是高电平............
继续查找问题.....................
|