/** * @brief Apllication Initialisation Routine * @param None * @retval : None */ void ApplicationInit(void) { /* System Clocks Configuration */ RCC_Configuration(); /*Enables the clock to Backup and power interface peripherals */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP | RCC_APB1Periph_PWR,ENABLE); /* SysTick Configuration*/ SysTickConfig(); /*Initialisation of TFT LCD */ STM3210B_LCD_Init(); /* Unlock the Flash Program Erase controller */ FLASH_Unlock(); /*RTC_NVIC Configuration */ RTC_NVIC_Configuration(); /* RTC Configuration*/ RTC_Configuration(); BKP_RTCOutputConfig(BKP_RTCOutputSource_None); /* General Purpose I/O Configuration */ GPIO_Configuration(); /* Battery Removal Emulation */ GPIO_SetBits(GPIOC, GPIO_Pin_8); while(!(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13))) { TamperEvent = 1; } /* Joystick NVIC Configuration */ NVIC_JoyStickConfig(); /* Tamper pin NVIC Configuration */ Tamper_NVIC_Configuration(); /* Configure PVD Supervisor to disable the Tamper Interrupt when voltage drops below 2.5 volts*/ PWR_PVDCmd(ENABLE); PWR_PVDLevelConfig(PWR_PVDLevel_2V5); PWR_BackupAccessCmd(ENABLE); /* Only JoyStick Sel Interrupt is enabled on startup */ SelIntExtOnOffConfig(ENABLE); /* Tamper FeatureRTC - Enable Tamper Interrupt and configure for Low level */ BKP_ITConfig(ENABLE); /* Enable Tamper Pin for Active low level: Tamper level detected for low level*/ BKP_TamperPinLevelConfig(BKP_TamperPinLevel_Low); /* Enable tamper Pin Interrupt */ BKP_TamperPinCmd(ENABLE); /* Menu Initialisation */ MenuInit(); }
/** * @brief Main program. * @param None * @retval None */ int main(void) { /* System Clocks Configuration */ RCC_Configuration(); /* NVIC configuration */ NVIC_Configuration(); /* Initialize Leds mounted on STM3210X-EVAL board */ STM_EVAL_LEDInit(LED1); STM_EVAL_LEDInit(LED2); STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED4); /* Enable PWR and BKP clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); /* Enable write access to Backup domain */ PWR_BackupAccessCmd(ENABLE); /* Clear Tamper pin Event(TE) pending flag */ BKP_ClearFlag(); /* Tamper pin active on low level */ BKP_TamperPinLevelConfig(BKP_TamperPinLevel_Low); /* Enable Tamper interrupt */ BKP_ITConfig(ENABLE); /* Enable Tamper pin */ BKP_TamperPinCmd(ENABLE); /* Write data to Backup DRx registers */ WriteToBackupReg(0xA53C); /* Check if the written data are correct */ if(CheckBackupReg(0xA53C) == 0x00) { /* Turn on LED1 */ STM_EVAL_LEDOn(LED1); } else { /* Turn on LED2 */ STM_EVAL_LEDOn(LED2); } while (1) { } }
/** * @brief Main program. * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup file (startup_stm32f10x_xx.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file */ /* NVIC configuration */ NVIC_Configuration(); /* Initialize Leds mounted on STM3210X-EVAL board */ STM_EVAL_LEDInit(LED1); STM_EVAL_LEDInit(LED2); STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED4); /* Enable PWR and BKP clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); /* Enable write access to Backup domain */ PWR_BackupAccessCmd(ENABLE); /* Disable Tamper pin */ BKP_TamperPinCmd(DISABLE); /* Disable Tamper interrupt */ BKP_ITConfig(DISABLE); /* Tamper pin active on low level */ BKP_TamperPinLevelConfig(BKP_TamperPinLevel_Low); /* Clear Tamper pin Event(TE) pending flag */ BKP_ClearFlag(); /* Enable Tamper interrupt */ BKP_ITConfig(ENABLE); /* Enable Tamper pin */ BKP_TamperPinCmd(ENABLE); /* Write data to Backup DRx registers */ WriteToBackupReg(0xA53C); /* Check if the written data are correct */ if(CheckBackupReg(0xA53C) == 0x00) { /* Turn on LED1 */ STM_EVAL_LEDOn(LED1); } else { /* Turn on LED2 */ STM_EVAL_LEDOn(LED2); } while (1) { } }