我用的是ST8L151K4T6 做实验,只焊了一个MCU。一个复位电路:10k电阻加一个103电容。3.45V供电,并用一个104滤波。程序的目的是为了测试单片机的功耗。在程序中将IO口输出低电平。其中SWIM 和复位脚输出高电平。然后进入停机状态。
运行如下代码:
PD_ODR&=0x0f;
PD_DDR|=0xf0;
PD_CR1|=0xf0;
PD_CR2|=0xf0;
PA_ODR&=0x83;
PA_ODR|=0x03;
PA_DDR|=0x7f;
PA_CR1|=0x7f;
PA_CR2|=0x7f;
PB_ODR=0x00;
PB_DDR|=0xFF;
PB_CR1|=0xFF;
PB_CR2|=0xFF;
PC_ODR&=0x80;
PC_DDR|=0x7F;
PC_CR1|=0x7F;
PC_CR2|=0x7F;
delay(65530);
while(1)
{
if(PWR_CSR2&0x01==0x01)
break;
}
PWR_CSR2 = 0x2;
while(1)
{
_asm("halt"); ;//进入停机状态
}
发现电流有49.5uA。测试的时候是拨掉仿真器的。测试工具为:FLUKE 17B数字万用表的微安档
与手册上介绍的几个uA,差别很大。求各位支招。
|