M0LPC1100低功耗代码,实测deep sleep下4uA
RT,废话不说,上代码,希望对大家有用LPC_IOCON->PIO2_6 &= ~(3<<3);
LPC_IOCON->PIO2_0 &= ~(3<<3);
LPC_IOCON->RESET_PIO0_0 &= ~(3<<3); LPC_IOCON->RESET_PIO0_0 |= (1<<0); // PIO0_0 As GPIO
//LPC_IOCON->RESET_PIO0_0 |= 0; // PIO0_0 As Reset with internal pull up res
LPC_IOCON->PIO0_1 &= ~(3<<3); LPC_IOCON->PIO0_1 &= ~(1<<5);
LPC_IOCON->PIO1_8 &= ~(3<<3);
LPC_IOCON->PIO0_2 &= ~(3<<3);
LPC_IOCON->PIO2_7 &= ~(3<<3);
LPC_IOCON->PIO2_8 &= ~(3<<3);
LPC_IOCON->PIO2_1 &= ~(3<<3);
LPC_IOCON->PIO0_3 &= ~(3<<3);
LPC_IOCON->PIO0_4 &= ~(3<<3); // SCL
LPC_IOCON->PIO0_5 &= ~(3<<3); // SDA
LPC_IOCON->PIO1_9 &= ~(3<<3);
LPC_IOCON->PIO3_4 &= ~(3<<3);
LPC_IOCON->PIO2_4 &= ~(3<<3);
LPC_IOCON->PIO2_5 &= ~(3<<3);
LPC_IOCON->PIO3_5 &= ~(3<<3);
LPC_IOCON->PIO0_6 &= ~(3<<3);
LPC_IOCON->PIO0_7 &= ~(3<<3);
LPC_IOCON->PIO2_9 &= ~(3<<3);
LPC_IOCON->PIO2_10&= ~(3<<3);
LPC_IOCON->PIO2_2 &= ~(3<<3);
LPC_IOCON->PIO0_8 &= ~(3<<3);
LPC_IOCON->PIO0_9 &= ~(3<<3);
LPC_IOCON->JTAG_TCK_PIO0_10&= ~(3<<3); LPC_IOCON->JTAG_TCK_PIO0_10|= (1<<0); // PIO0_10 As GPIO
LPC_IOCON->PIO1_10&= ~(3<<3);
LPC_IOCON->PIO2_11&= ~(3<<3);
LPC_IOCON->JTAG_TDI_PIO0_11&= ~(3<<3); LPC_IOCON->JTAG_TDI_PIO0_11|= (1<<0); // PIO0_11 As GPIO
LPC_IOCON->JTAG_TMS_PIO1_0 &= ~(3<<3); LPC_IOCON->JTAG_TMS_PIO1_0 |= (1<<0); // PIO1_0 As GPIO
LPC_IOCON->JTAG_TDO_PIO1_1 &= ~(3<<3); LPC_IOCON->JTAG_TDO_PIO1_1 |= (1<<0); // PIO1_1 As GPIO
LPC_IOCON->JTAG_nTRST_PIO1_2 &= ~(3<<3); LPC_IOCON->JTAG_nTRST_PIO1_2 |= (1<<0); // PIO1_2 As GPIO
LPC_IOCON->PIO3_0 &= ~(3<<3);
LPC_IOCON->PIO3_1 &= ~(3<<3);
LPC_IOCON->PIO2_3 &= ~(3<<3);
LPC_IOCON->ARM_SWDIO_PIO1_3 &= ~(3<<3); LPC_IOCON->ARM_SWDIO_PIO1_3 |= (1<<0); // PIO1_3 As GPIO
LPC_IOCON->PIO1_4 &= ~(3<<3);
LPC_IOCON->PIO1_11&= ~(3<<3);
LPC_IOCON->PIO3_2 &= ~(3<<3);
LPC_IOCON->PIO1_5 &= ~(3<<3);
LPC_IOCON->PIO1_6 &= ~(3<<3);
LPC_IOCON->PIO1_7 &= ~(3<<3);
LPC_IOCON->PIO3_3 &= ~(3<<3);
LPC_GPIO0->DIR = 0XFFF;
LPC_GPIO0->DATA = 0X00;
LPC_GPIO1->DIR = 0XFFF;
LPC_GPIO1->DATA = 0X00;
LPC_GPIO2->DIR = 0XFFF;
LPC_GPIO2->DATA = 0X00;
LPC_GPIO3->DIR = 0XFFF;
LPC_GPIO3->DATA = 0X00;
LPC_SYSCON->SYSAHBCLKCTRL |= 0X5BFFF;/*AHB clk ctrl,enable sys,Disable others*/
// LPC_SYSCON->SYSAHBCLKCTRL = 0X1F;/*AHB clk ctrl,enable sys,Disable others*/
LPC_SYSCON->PDRUNCFG &= ~((1<<0)|(1<<1)|(1<<2)) ;
LPC_SYSCON->MAINCLKSEL = 0x00; /* Select wdt*/
LPC_SYSCON->MAINCLKUEN = 0x01; /* Update MCLK clock source */
LPC_SYSCON->MAINCLKUEN = 0x00; /* Toggle update register once */
LPC_SYSCON->MAINCLKUEN = 0x01;
while ( !(LPC_SYSCON->MAINCLKUEN & 0x01) ); /* Wait until updated */
LPC_SYSCON->SYSAHBCLKDIV = 4; /* FOR POWER NO EFFECT SYS AHB clock, typical is 1 or 2 or 4 */
/// LPC_SYSCON->SYSAHBCLKDIV = 0x00; //
LPC_SYSCON->SYSPLLCLKSEL = 0x00; //
LPC_SYSCON->SSP0CLKDIV = 0X00;
LPC_SYSCON->UARTCLKDIV = 0X00;
LPC_SYSCON->SSP1CLKDIV = 0X00;
LPC_SYSCON->WDTCLKDIV = 0X00;
LPC_SYSCON->CLKOUTDIV = 0X00;
LPC_SYSCON->SYSTICKCLKDIV = 0X00;
LPC_PMU->PCON |= (1<<11);
LPC_PMU->PCON |= (1<<8);
LPC_SYSCON->PDSLEEPCFG |= 0x000018ff;/*all phy power down during deep-sleep mode*/
LPC_SCB->SCR |= (1<<2);
__WFI(); 最近也在测LPC111X的低耗,用普通万用表能测吗?你用的是什么表?
页:
[1]