rtc同步分频异步分频

RTC同步分频系数,必须先设置同步分频,再设置异步分频,Frtc=Fclks/((Sprec+1)*(Asprec+1)) 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GD32芯片的RTC模块是一个实时时钟计时器,用于提供精确的日期和时间信息。下面是GD32的RTC配置步骤: 1. 开启RTC时钟:使能PWR和BKP模块时钟,然后设置RTC时钟源为LSE或者LSI。 ```c RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); RCC_LSEConfig(RCC_LSE_ON); // 开启LSE while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET); // 等待LSE稳定 RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); // 选择RTC时钟源 ``` 2. 初始化RTC:设置RTC分频系数、时间格式、并清除RTC计数器。 ```c RTC_InitTypeDef RTC_InitStructure; RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24; // 24小时格式 RTC_InitStructure.RTC_AsynchPrediv = 0x7F; // 异步分频系数为0x7F RTC_InitStructure.RTC_SynchPrediv = 0xFF; // 同步分频系数为0xFF RTC_InitStructure.RTC_OutPut = RTC_Output_Disable; // 输出禁止 RTC_Init(&RTC_InitStructure); RTC_WriteProtectionCmd(DISABLE); // 取消写保护 RTC_SetCounter(0); // 清除RTC计数器 RTC_WriteProtectionCmd(ENABLE); // 使能写保护 ``` 3. 启用RTC中断:使能RTC中断,然后在中断服务函数中处理RTC事件。 ```c NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; // RTC中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; // 抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // 子优先级0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); RTC_ITConfig(RTC_IT_SEC, ENABLE); // 使能RTC秒中断 RTC_ClearITPendingBit(RTC_IT_SEC); // 清除RTC秒中断标志位 ``` 以上是GD32 RTC的基本配置步骤,具体配置还需要根据实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值