0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用CKS32F107xx系列RTC的闹钟实验

中科芯MCU 来源:中科芯MCU 2025-02-18 17:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MCU微课堂

CKS32F107xx 备份寄存器

第五十一期 2025.02.18

闹钟实验

本小节讲解的是如何在万年历实验的基础上,利用RTC的闹钟功能实现一个闹钟,在每天的[XX小时-XX分钟-XX秒]产生闹钟,然后通过闪烁LED模拟闹钟响效果。

程序设计要点

(1)初始化RTC外设,设置RTC初始时间;

(2)编程闹钟,设置闹钟时间;

(3)编写闹钟中断服务函数;

代码分析

闹钟实验是在万年历实验的基础上添加,相同部分的代码不再讲解,这里只讲解闹钟相关的代码,更加具体的请参考闹钟实验的工程源码。

(1)闹钟相关宏定义(与万年历实验相同)

(2)初始化RTC

在本工程中,除了用RTC_ITConfig使能秒中断外,还需要补充使闹钟中断RTC_IT_ALR。

/*

* 函数名:RTC_Configuration

* 描述 :配置RTC

* 输入 :无

* 输出 :无

*/

void RTC_Configuration(void)

{

……

RTC_ITConfig(RTC_IT_SEC|RTC_IT_ALR, ENABLE);//使能 RTC 秒中断和闹钟中断

……

}

(3)设置默认闹钟时间结构体

系统默认的闹钟触发时间是在断电开机后的第8秒,因此系统默认时间和闹钟时间结构体设置如下。

/*时间结构体,默认时间2000-01-01 0000*/

struct rtc_time systmtime=

{

0,0,0,1,1,2000,0

};

/*时间结构体,闹钟时间2000-01-01 0008*/

struct rtc_time clocktime=

{

8,0,0,1,1,2000,0

};

(4)闹钟中断服务函数

本实验中的RTC中断服务函数在万年历实验的基础上,增加了判断闹钟中断的分支,如果发生闹钟中断,则将闹钟响标志TimeAlarm置1,然后通过翻转LED指示灯模拟闹钟响的效果。

void RTC_IRQHandler(void)

{

if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒中断

{

RTC_ClearITPendingBit(RTC_IT_SEC);//清中断标志

TimeDisplay = 1;//置位秒显示更新任务标志

RTC_WaitForLastTask();//等待RTC操作完成

}

if (RTC_GetITStatus(RTC_IT_ALR) != RESET)//闹钟中断

{

RTC_ClearITPendingBit(RTC_IT_ALR);//清中断标志

TimeAlarm = 1 ;//闹钟响标志

}

if( TimeAlarm == 1)

{

GPIO_TogglePin(LED1_GPIO_PORT, LED1_GPIO_PIN);//闹钟响翻转LED

}

}

(5)main函数

main函数在万年历实验基础上,增加了LED初始化和闹钟设置的部分,其余部分相同。在初始化RTC结束之后,进行闹钟设置,把闹钟时间结构体通过mktimev函数转换成UNIX时间戳,再减去北京时区的偏移,写入闹钟寄存器。

int main()

{

……

LED_GPIO_Config();

……

clock_timestamp = mktimev(&clocktime) - TIME_ZOOM; //计算闹钟时间戳

RTC_SetAlarm(clock_timestamp);//写入闹钟寄存器

……

while (1)

{

……

}

}

把编译好的程序下载到开发板,当日历时间到了闹钟时间时,开发板LED4会开始闪烁,但日历会继续运行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129097
  • 闹钟
    +关注

    关注

    0

    文章

    78

    浏览量

    27870
  • 万年历
    +关注

    关注

    3

    文章

    190

    浏览量

    24896
  • RTC
    RTC
    +关注

    关注

    2

    文章

    639

    浏览量

    71030

原文标题:MCU微课堂|CKS32F107xx 备份寄存器

文章出处:【微信号:中科芯MCU,微信公众号:中科芯MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中科芯CKS32F107XX系列MCU的独立看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),它们在
    的头像 发表于 11-28 14:51 3565次阅读
    中科芯<b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b>MCU的独立看门狗介绍

    中科芯CKS32F107XX系列MCU的窗口看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG的详情,请参看我们的IWDG微课堂内容。
    的头像 发表于 11-28 14:48 3717次阅读
    中科芯<b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b>MCU的窗口看门狗介绍

    CubeMX配置RTC实现日历和闹钟实验

    CubeMX配置RTC实现日历和闹钟实验
    的头像 发表于 02-15 14:05 2664次阅读
    CubeMX配置<b class='flag-5'>RTC</b>实现日历和<b class='flag-5'>闹钟</b><b class='flag-5'>实验</b>

    CKS32F4xx系列产品串口DMA传输

    在上一讲,我们讲过CKS32F4xx系列的6个串口都支持DMA传输。因此本节我们对CKS32F4xx系列的DMA进行介绍,同时利用DMA对串
    的头像 发表于 04-10 11:18 1826次阅读

    CKS32F4xx系列RNG功能设置

      MCU 微课堂 CKS32F4xx 系 列RNG功能 随机数发生器简介     CKS32F4xx系列自带了硬件随机数发生器(RNG),RNG处理器是一个以连续模拟噪声为基础的随机数发生器,在
    的头像 发表于 09-08 10:01 1615次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>RNG功能设置

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的头像 发表于 11-06 16:56 1504次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC功能

    CKS32F4xx系列ADC多通道DMA电压采集

    CKS32F4xx系列ADC多通道DMA电压采集
    的头像 发表于 11-06 16:53 1678次阅读

    CKS32F4xx系列低功耗模式STOP模式

    CKS32F4xx系列低功耗模式STOP模式
    的头像 发表于 11-06 17:08 1232次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STOP模式

    CKS32F4xx系列产品Timer的基本使用方法-定时操作

    CKS32F4xx系列产品Timer的基本使用方法-定时操作
    的头像 发表于 11-09 17:41 1097次阅读
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品Timer的基本使用方法-定时操作

    MCU微课堂 | CKS32F4xx系列产品SPI通信

    MCU微课堂 | CKS32F4xx系列产品SPI通信
    的头像 发表于 10-24 17:12 1460次阅读
    MCU微课堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>产品SPI通信

    CKS32F107xx系列时钟系统具体配置方法讲解

    上一章节对CKS32F107xx系列时钟做了整体介绍,本章节以使用HSI内部高速时钟为例对时钟具体配置方法进行讲解。
    的头像 发表于 05-28 10:05 1396次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>时钟系统具体配置方法讲解

    CKS32F107xx系列MCU中ADC介绍

    CKS32F107xx系列产品提供2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
    的头像 发表于 06-22 11:04 1580次阅读

    CKS32F107xx系列MCU的GPIO内部硬件结构和工作模式

    16个引脚,如型号为CKS2F107VET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5组GPIO,芯片一共100个引脚,其中GPIO就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。
    的头像 发表于 07-22 09:23 1663次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>MCU的GPIO内部硬件结构和工作模式

    详解CKS32F107xx系列的定时器同步功能

    CKS32F107xx系列部分定时器在内部是相连的,可用于定时器同步或链接,方便用户配置不同的同步模式,以便在电机控制、数据采集和PWM信号生成等应用中,实现复杂的时间序列和多通道的同步操作。本节课
    的头像 发表于 11-26 17:51 1481次阅读
    详解<b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>的定时器同步功能

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同时,亦支持LIN(局域互联网)模式。
    的头像 发表于 02-18 17:18 884次阅读
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式