外围没有接任何电路, 进入halt模式前所有端口都设置为开路 低电平输出,STM8L151进入低功耗 halt模式, 功耗还有300uA,怎样才能做到手册上说的( 停止模式 350nA),有哪位大神能指点迷津,我感激不尽,单片机型号是STM8L151C8(48管脚的),我的代码如下
#define MyGPIO_Mode_Type GPIO_Mode_Out_OD_Low_Slow
void HardWarePort_Def(void)
{
GPIO_Init(GPIOA, GPIO_Pin_2, MyGPIO_Mode_Type);
GPIO_Init(GPIOA, GPIO_Pin_3, MyGPIO_Mode_Type);
GPIO_Init(GPIOA, GPIO_Pin_4, MyGPIO_Mode_Type);
GPIO_Init(GPIOA, GPIO_Pin_5, MyGPIO_Mode_Type);
GPIO_Init(GPIOA, GPIO_Pin_6, MyGPIO_Mode_Type);
GPIO_Init(GPIOA, GPIO_Pin_7, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_0, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_1, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_2, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_3, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_4, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_5, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_6, MyGPIO_Mode_Type);
GPIO_Init(GPIOB, GPIO_Pin_7, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_0, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_1, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_2, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_3, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_4, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_5, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_6, MyGPIO_Mode_Type);
GPIO_Init(GPIOC, GPIO_Pin_7, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_0, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_1, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_2, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_3, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_4, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_5, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_6, MyGPIO_Mode_Type);
GPIO_Init(GPIOD, GPIO_Pin_7, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_0, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_1, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_2, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_3, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_4, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_5, MyGPIO_Mode_Type);
GPIO_Init(GPIOE, GPIO_Pin_7, MyGPIO_Mode_Type);
GPIO_Init(GPIOF, GPIO_Pin_0, MyGPIO_Mode_Type);
}
void main()
{
disableInterrupts() //关闭系统总中断
//CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); //内部时钟为1分频 = 16Mhz
HardWarePort_Def();
enableInterrupts(); //使能系统总中断
CLK_DeInit();
PWR_FastWakeUpCmd(DISABLE);
PWR_UltraLowPowerCmd(ENABLE);
halt();
while(1)
{
}
}
首先,你先弄个最小系统,电源 BOOT脚 和芯片就行了,这样能确定到底是你芯片 功耗没降 还是外围
一周热门 更多>