【求助】关于STC8H系列单片机STOP模式下IO口状态和功耗的问题
我用STC8H8K64U最小系统电路,3.3V供电,运行如下程序,单片机电流超过了100uA:#include "stc8h.h"
#include "intrins.h"
void main()
{
P0IE=0x00;
P1IE=0x00;
P2IE=0x00;
P3IE=0x00;
P4IE=0x00;
P5IE=0x00;
P6IE=0x00;
P7IE=0x00;
//WKTCL = 0xfe;
// WKTCH = 0x7f;
// WKTCH |= 0xff;
while (1)
{
_nop_();
_nop_();
PCON = 0x02; //MCU进入掉电模式
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
而换成下面的代码,电流就较正常了(2.1uA):
#include "stc8h.h"
#include "intrins.h"
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
//WKTCL = 0xfe;
// WKTCH = 0x7f;
// WKTCH |= 0xff;
while (1)
{
_nop_();
_nop_();
PCON = 0x02; //MCU进入掉电模式
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
这是为什么?哪位大佬能帮我解释下
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
神农鼎 发表于 2024-2-18 10:48
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对 ...
谢谢,但是我写的第一段代码已经关闭了数字输入,(stc8h8k64u IO上电默认是高阻输入)为什么电流还是很大? 低功耗这东西,你得自己检查硬件电路。软件来配合硬件电路 _奶咖君_ 发表于 2024-2-18 11:12
低功耗这东西,你得自己检查硬件电路。软件来配合硬件电路
电路是STC8H8K64U最小系统,没有接任何外设{:dizzy:} gqzjl 发表于 2024-2-18 10:52
谢谢,但是我写的第一段代码已经关闭了数字输入,(stc8h8k64u IO上电默认是高阻输入)为什么电流还是很 ...
数字输入使能寄存器是扩展寄存器-XFR,
设置前要打开扩展寄存器访问使能,
P_SW2 |= 0x80;
乘风飞扬 发表于 2024-2-19 10:04
数字输入使能寄存器是扩展寄存器-XFR,
设置前要打开扩展寄存器访问使能,
P_SW2 |= 0x80;
谢谢! 硬件的设计和代码的处理…缺一个你就会头大…
页:
[1]