{if(0xA5A5 != bkp_data_read(BKP_DATA_0)) {//第一次运行 初始化设置rtc_configuration();//RTC初始化/* wait until last write operation on RTC registers has finished */rtc_lwoff_wait();/* change the current time */rtc_counter_set(0);/* wait until last write operation on RTC registe...
uint32_t seccount = 0; if (bkp_read_data(BKP_DATA_0) != 0xA5A5) { rtc_configuration(); if(year < 1970 || year > 2099) return 1; for(t = 1970; t < year; t++){ if(is_leap_year(t)){ seccount += 31622400; }else{ seccount += 31536000; } } month -= 1; for(t=0...
/* 开启PWR和BKP模块的时钟 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); /* 允许对BKP进行存取操作*/ PWR_BackupAccessCmd(ENABLE); /* 初始化BKP区域*/ BKP_DeInit(); /* LSE允许,这里LSE是指外部接的32768HZ 晶振的一个振荡器,它使用PC14和PC15两条引脚。有关...
,可操作与10GBASE-R和1000BASE-X有关的所有物理层性能。此外,88X2242-B0-BKP2C000兼容1端口XAUI和40GBASE-R4。 2023-07-27 13:46:13 GD32F103的RTC实现 );led_config();printf( "\r\n This is aRTCdemo... \r\n" ); if (bkp_data_read(BKP_DATA_0 zeshou...
25 RTC_WriteBackupRegister(RTC_BKP_DRX, RTC_BKP_DATA); 26 } RTC时间和日期设置函数主要是设置时间和日期这两个结构体,然后调相应的RTC_SetTime和RTC_SetDate函数把初始化好的时间写到相应的寄存器,每当写完之后都会在备份寄存器里面写入一个数,以作标记,为的是程序开始运行的时候检测RTC的时间是否已经配置过...
RTC_BKP_DRX和RTC_BKP_DATA:这两个宏用于在备份域寄存器设置RTC已配置标志,本实验中初始化RTC后,向备份域寄存器写入一个数字, 若下次芯片上电检测到该标志,说明RTC之前已经配置好时间,所以不应该再设置RTC,而如果备份域电源也掉电,备份域内记录的该标志也会丢失, 所以芯片上电后需要重新设置时间。这两个宏的值...
BKP_DR8选中数据后备寄存器8 BKP_DR9选中数据后备寄存器9 BKP_DR10选中数据后备寄存器10 例:u16 Data; Data=BKP_ReadBackupRegister(BKP_DR1); 功耗控制(PWR) PWR有多种用途,包括功耗管理和低功耗模式选择。 PWR 函数名描述 PWR_DeInit将外设PWR寄存器重设为缺省值 PWR_BackupAccessCmd使能或者失能RTC和后备寄存器...
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);//打开存储器时钟 PWR_BackupAccessCmd(ENABLE);//使能或者失能RTC和后备寄存器访问 BKP_DeInit();//将外设BKP的全部寄存器重设为缺省值 RCC_LSEConfig(RCC_LSE_ON);//设置外部低速晶振(LSE) while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);//检查指...
RTC模块和时钟配置是在后备区域,即在系统复位或从待机模式唤醒后RTC的设置和时间维持不变,只要后备区域供电正常,那么RTC将可以一直运行。但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前, 先要取消备份区域(BKP)写保护。
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);//使能PWR和BKP外设时钟 /...