⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 一个ST的ARM7,STR710低功耗能模式的开发代码,提供大家参考,是一个完整的环境文件,开发环境是IAR
💻 C
字号:
/******************** (C) COPYRIGHT 2003-2004 STMicroelectronics ***************
* File Name          : main.c
* Author             : MCD Application Team
* Date First Issued  : 12/10/2004
* Description        : STR71x Low Power STANDBY Mode test for the STR71x Power
*
********************************************************************************
* History:
* 24/05/05 : V3.0
* 30/11/04 : V2.0
* 16/05/03 : Created
********************************************************************************
*THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A
RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR
CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH
SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN
IN CONNECTION WITH THEIR PRODUCTS.
********************************************************************************/



#include "71x_lib.h"
#include "lpmode.h"

void Test_STANDBYmode (void);      //enter in STANDBY mode


void delay(u32 value)              //delay
{
   u32 i;
   for(i=0; i<value; i++);
}

void Test_STANDBYmode (void)
{
 //MCU in STANDBY mode
 //The wake up is done by the RTC alarm interrupt (after 10s)
 //or by the Wakeup pin


   //Configure the RTC alarm to wakeup the MCU after 10s
   RTC_PrescalerConfig (0x0008000);                      //Configure RTC prescaler for 1 second increments
   RTC_FlagClear (RTC_AIR);                              //Clear pending interrupts flags
   RTC_FlagClear (RTC_GIR);
   RTC_ITConfig(RTC_GIT, ENABLE);                        //Enable Global interrupt
   RTC_ITConfig(RTC_AIT, ENABLE);                        //Enable Alarm interrupt
   RTC_CounterConfig(0);
   RTC_AlarmConfig(2);                                  //Wakeup after 10s : wakeup = MCU RESET

   STANDBY(ENABLE);                                      //Enter Standby (LPVR Enabled)

}


u32 counter;

int main(void)
{

  #ifdef DEBUG
  debug();
  #endif

  counter = 10;

  /* Set system, peripheral clocks */
  RCCU_Div2Config(ENABLE);                     // CK/2 Enabled
  RCCU_PLL1Config(RCCU_PLL1_Mul_16, RCCU_Div_4);    // Configure PLL with mult factor = 16, div factor = 4 (x4)
  RCCU_FCLKConfig(RCCU_DEFAULT);               // Set the APB1 clock to default (/1)
  RCCU_PCLKConfig(RCCU_DEFAULT);               // Set the APB2 clock to default (/1)
  RCCU_RCLKSourceConfig(RCCU_PLL1_Output);     // Set the RCLK to the PLL output
  PCU->PLL2CR|=0x0007;                         // stop the PLL2 (DX1,DX2,DX0 =1)
  RCCU->PER &=~0x001F;                         // stop unused periph clocks in PRCCU_PER register

  /* GPIO configuration & initialization*/
  GPIO_WordWrite (GPIO0,0x0);
  GPIO_WordWrite (GPIO1,0x0);
  GPIO_WordWrite (GPIO2,0x0);
  GPIO_Config (GPIO0 ,0xFFFF, GPIO_OUT_PP);    //configure all GPIO as pushpull output
  GPIO_Config (GPIO1, 0xFFFF, GPIO_OUT_PP);
  GPIO_Config (GPIO2, 0xFFFF, GPIO_OUT_PP);

  while(counter)                                //pin P1.8 toggling before entering STANDBY mode
  {
    GPIO_BitWrite (GPIO1, 8, 1);                //Set P1.8
    delay(0x2FFFF);                             //delay
    GPIO_BitWrite (GPIO1, 8, 0);                //Clear P1.8
    delay(0x2FFFF);                             //delay
    counter--;
  }

  Test_STANDBYmode();                                //enter in STANDBY mode

  while(1)                                      //This part of code should not be reached.
                                                //There is a RESET after STANDBY mode.
  {
    GPIO_BitWrite (GPIO1, 8, 1);                //Set P1.8
    delay(0x17FFF);                             //Smaller delay
    GPIO_BitWrite (GPIO1, 8, 0);                //Clear P1.8
    delay(0x17FFF);                             //Smaller delay
  }

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -