/********************************** (C) COPYRIGHT ******************************* * File Name : main.c * Author : WCH * Version : V1.0.0 * Date : 2021/06/06 * Description : Main program body. ********************************************************************************* * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. * Attention: This software (modified or not) and binary are used for * microcontroller manufactured by Nanjing Qinheng Microelectronics. *******************************************************************************/ /* *@Note *BKP routine: *Intrusion detection pin (PC13), when an intrusion detection event occurs, all data *backup register contents are cleared,And trigger the intrusion detection interrupt. * */ #include "debug.h" /********************************************************************* * @fn BKP_Tamper_Init * * @brief Initializes the BKP Tamper. * * @return none */ void BKP_Tamper_Init(void) { NVIC_InitTypeDef NVIC_InitStructure = {0}; RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); BKP_TamperPinCmd(DISABLE); PWR_BackupAccessCmd(ENABLE); BKP_ClearFlag(); BKP_WriteBackupRegister(BKP_DR1, 0x9880); BKP_WriteBackupRegister(BKP_DR2, 0x5678); BKP_WriteBackupRegister(BKP_DR3, 0xABCD); BKP_WriteBackupRegister(BKP_DR4, 0x3456); printf("BKP_DR1:%08x\r\n", BKP->DATAR1); printf("BKP_DR2:%08x\r\n", BKP->DATAR2); printf("BKP_DR3:%08x\r\n", BKP->DATAR3); printf("BKP_DR4:%08x\r\n", BKP->DATAR4); BKP_TamperPinLevelConfig(BKP_TamperPinLevel_High); //TPAL:0,PC13 set input-pull-down // BKP_TamperPinLevelConfig( BKP_TamperPinLevel_Low ); //TPAL:1,PC13 input-pull-up NVIC_InitStructure.NVIC_IRQChannel = TAMPER_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); BKP_ITConfig(ENABLE); BKP_TamperPinCmd(ENABLE); } /********************************************************************* * @fn main * * @brief Main program. * * @return none */ int main(void) { SystemCoreClockUpdate(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); USART_Printf_Init(115200); printf("SystemClk:%d\r\n", SystemCoreClock); printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() ); BKP_Tamper_Init(); while(1); }