Renesas R7FA8D1BH (Cortex®-M85)内部RTC的应用

目录

概述

1 软硬件

1.1 软硬件环境信息

1.2 开发板信息

1.3 调试器信息

2 FSP配置RTC

2.1 配置参数

2.2 RTC模块介绍

3 RTC相关函数

3.1 R_RTC_Open()

 3.2 R_RTC_Close()

3.3 R_RTC_ClockSourceSet()

3.4  R_RTC_CalendarTimeSet()

3.5  R_RTC_CalendarTimeGet()

4 应用案例

4.1 功能介绍

​4.2 源代码文件

5 测试

5.1 测试代码介绍

5.2 测试功能


测试视频:

使用Renesas R7FA8D1BH (Cortex®-M85)控制多类i2c类型设备,实时读取数据显示在OLED 屏幕,按键实现页面切换

 

概述

本文主要介绍Renesas R7FA8D1BH (Cortex®-M85)内部RTC的应用的相关内容,包括使用FSP配置RTC的参数,FSP提供的RTC相关的应用函数接口,还编写一个Demo,调用RTC的函数接口,实现时间数据的实时更新功能。

1 软硬件

1.1 软硬件环境信息

软硬件信息版本信息
Renesas MCUR7FA8D1BH
KeilMDK ARM 5.38
FSP 版本5.3.0
调试工具:N32G45XVL-STBDAP-LINK

1.2 开发板信息

笔者选择使用野火耀阳开发板_瑞萨RA8,该板块的主控MCU为R7FA8D1BHECBD,7FA8D1BHECBD的内核为ARM Contex-M85。

1.3 调试器信息

对于R7FA8D1BHECBD芯片,其使用的内核为Cortex®-M85 Core, ST-LINK-V2或者J-LINK-V9不支持下载和调试功能。笔者经过多次尝试,发现N32G45XVL-STB板卡上自带的DAP-LINK可以下载和调试R7FA8D1BHECBD。

下图为N32G45XVL-STB开发板实物图:

2 FSP配置RTC

2.1 配置参数

1)2)在Stacks面板上创建RTC模块

2)其他参数,选择默认值

 3) 配置完成参数后,生成项目代码,在hal_data.c文件中查看和RTC相关的代码

2.2 RTC模块介绍

RTC HAL模块配置RTC模块,控制时钟、日历和闹钟功能。回调可用于响应警报和周期性中断。

主要特性:

RTC时间和日期的获取和设置。
RTC时间和日期报警的获取和设置。
RTC告警和定时事件通知。
RTC时间捕获。

 RTC HAL模块支持三种不同的中断类型:

1)当匹配年、月、日、星期中的某一天、小时、分钟或秒的任意组合时产生的警报中断
2)每2、1、1/2、1/4、1/8、1/16、1/32、1/64、1/128或1/256秒产生的周期性中断。
3)当从RTC日历读取时间以获得准确的时间读数时,内部使用进位中断

3 RTC相关函数

3.1 R_RTC_Open()

函数原型:


fsp_err_t R_RTC_Open	(	rtc_ctrl_t *const 	p_ctrl,
rtc_cfg_t const *const 	p_cfg 
)	

应用范例:

   /* Open the RTC module */err = R_RTC_Open(&g_rtc0_ctrl, &g_rtc0_cfg);

返回值:

Return values

FSP_SUCCESSInitialization was successful and RTC has started.
FSP_ERR_ASSERTIONInvalid p_ctrl or p_cfg pointer.
FSP_ERR_ALREADY_OPENModule is already open.
FSP_ERR_INVALID_ARGUMENTInvalid time parameter field.

 3.2 R_RTC_Close()

函数原型:

fsp_err_t R_RTC_Close	(	rtc_ctrl_t *const 	p_ctrl	)	

返回值:

Return values

FSP_SUCCESSDe-Initialization was successful and RTC driver closed.
FSP_ERR_ASSERTIONInvalid p_ctrl.
FSP_ERR_NOT_OPENDriver not open already for close.

3.3 R_RTC_ClockSourceSet()

函数原型:设置时钟源

fsp_err_t R_RTC_ClockSourceSet	(	rtc_ctrl_t *const 	p_ctrl	)	

应用范例:

    /* This condition can differ based on use case. */if (R_SYSTEM->RSTSR0 == 1){/* Set the RTC clock source. Can be skipped if "Set Source Clock in Open" property is enabled. */R_RTC_ClockSourceSet(&g_rtc0_ctrl);}

返回值:

Return values

FSP_SUCCESSInitialization was successful and RTC has started.
FSP_ERR_ASSERTIONInvalid p_ctrl or p_cfg pointer.
FSP_ERR_NOT_OPENDriver is not opened.
FSP_ERR_INVALID_ARGUMENTInvalid clock source.

3.4  R_RTC_CalendarTimeSet()

函数原型: 设置时间

fsp_err_t R_RTC_CalendarTimeSet	(	rtc_ctrl_t *const 	p_ctrl,
rtc_time_t *const 	p_time 
)	

 返回值:

Return values

FSP_SUCCESSCalendar time set operation was successful.
FSP_ERR_ASSERTIONInvalid input argument.
FSP_ERR_NOT_OPENDriver not open already for operation.
FSP_ERR_INVALID_ARGUMENTInvalid time parameter field.

3.5  R_RTC_CalendarTimeGet()

函数原型: 获取实时时间


fsp_err_t R_RTC_CalendarTimeGet	(	rtc_ctrl_t *const 	p_ctrl,
rtc_time_t *const 	p_time 
)	

返回值:

Return values

FSP_SUCCESSCalendar time get operation was successful.
FSP_ERR_ASSERTIONInvalid input argument.
FSP_ERR_NOT_OPENDriver not open already for operation.
FSP_ERR_IRQ_BSP_DISABLEDUser IRQ parameter not valid

4 应用案例

4.1 功能介绍

1) 初始化函数

代码15~23行: 初始化RTCv日期和时间

代码26~39行: 实现初始化函数功能

2)获取RTC功能函数

代码47行: 获取实时时间

代码48行:每个1s打印时间log

 4.2 源代码文件

 /*FILE NAME  :  bsp_rtc.cDescription:  RTC interfaceAuthor     :  tangmingfei2013@126.comDate       :  2024/06/03*/
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
#include "bsp_rtc.h"
#include "hal_data.h"#define USER_YEAR           2024rtc_time_t set_time =
{.tm_sec  = 10,.tm_min  = 20,.tm_hour = 21,.tm_mday = 11,.tm_mon  = 8,.tm_year = USER_YEAR-1900,
};
rtc_time_t get_time;void user_rtc_Init (void)
{fsp_err_t err = FSP_SUCCESS;/* Open the RTC module */err = R_RTC_Open(&g_rtc0_ctrl, &g_rtc0_cfg);/* Handle any errors. This function should be defined by the user. */assert(FSP_SUCCESS == err);/* Set the RTC clock source. Can be skipped if "Set Source Clock in Open" property is enabled. */R_RTC_ClockSourceSet(&g_rtc0_ctrl);/* Set the calendar time */R_RTC_CalendarTimeSet(&g_rtc0_ctrl, &set_time);/* Get the calendar time */R_RTC_CalendarTimeGet(&g_rtc0_ctrl, &get_time);
}void user_get_rtc(void)
{rtc_time_t *rtc_time_t;static int sec;rtc_time_t = &get_time;R_RTC_CalendarTimeGet(&g_rtc0_ctrl, rtc_time_t);if( rtc_time_t->tm_sec != sec  ){sec = rtc_time_t->tm_sec;printf("Current time:  %04d/%02d/%02d/ %02d:%02d:%02d \n",rtc_time_t->tm_year+1900, rtc_time_t->tm_mon, rtc_time_t->tm_mday,rtc_time_t->tm_hour, rtc_time_t->tm_min, rtc_time_t->tm_sec);}}void user_get_currentRtc( rtc_time_t* rtc_time_t)
{R_RTC_CalendarTimeGet(&g_rtc0_ctrl, rtc_time_t);
}

5 测试

5.1 测试代码介绍

代码189行: 获取实时RTC值

代码190行:得到秒数据,当秒被改变时,读取sensor数据,实时显示在OLED上

5.2 测试功能

 编译代码下载到板卡中,其执行步骤如下:

1)编译和下载代码

2)板卡中运行代码:

硬件环境:

 运行结果:

实时刷新sensor的值

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143850.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

workbench的使用

connection name 是可以任意取的 Hostname 是数据库的地址&#xff0c;本地的话就默认是127.0.0.1 port是端口 选择store in value来存储密码 点击测试连接test connection 单击就可以登录&#xff0c;如果需要编辑的话&#xff0c;右键选择edit connection 可以选择删除账…

C++_类和对象(下篇)—— 内部类、匿名对象、对象拷贝时的编译器优化

目录 四、类和对象&#xff08;下篇&#xff09; 5、内部类 6、匿名对象 7、对象拷贝时的编译器优化 四、类和对象&#xff08;下篇&#xff09; 5、内部类 如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫做内部类。内部类是⼀个独立的类&#xff0c;跟定义…

【C语言】带你手把手拿捏指针(3)(含转移表)

文章目录 一、字符指针变量二、数组指针变量1.数组指针变量是什么2.数组指针变量的初始化 三、二维数组传参的本质四、函数指针变量1. 函数指针变量的创建2.函数指针的使用3.案例解析&#xff1a; 五、typedof关键字六、函数指针数组和转移表1.函数指针数组2.转移表 一、字符指…

问题:WINCC 7.5 结构变量只能是内部变量吗?

问题&#xff1a;WINCC 7.5 结构变量只能是内部变量吗&#xff1f; 答案&#xff1a;不是的呢&#xff0c;你创建结构的时候可以选择外部变量的 如图&#xff1a;工控人加入PLC工业自动化精英社群 #WINCC 7.5##变量##结构##西门子工业支持中心#

Spring Cloud Alibaba-(1)搭建项目环境

1.Spring Cloud Alibaba&#xff08;官网&#xff1a;https://sca.aliyun.com/&#xff09; Spring Cloud Alibaba 是阿里巴巴结合自身丰富的微服务实践而推出的微服务开发的一站式解决方案&#xff0c;是 Spring Cloud 第二代实现的主要组成部分。吸收了 Spring Cloud Netflix…

如何让源码加密后还能运行?五种企业源代码加密措施推荐

随着企业越来越依赖技术创新&#xff0c;保护源代码的安全变得尤为重要。源代码是企业的核心资产之一&#xff0c;包含了重要的业务逻辑和技术创新。未经授权的访问、篡改或泄露都可能给公司带来巨大的损失。因此&#xff0c;实施有效的源代码加密措施至关重要。本文将推荐五种…

龙海家园的免费停车点探寻

​第一次去龙海家园就把我羡慕到了&#xff0c;楼下就是鲤鱼门地铁&#xff0c;龙海家园底商的餐饮好吃又实惠&#xff0c;还有特别多的超市&#xff0c;空中花园也很大&#xff0c;还可以共享前海基金小镇的花园环境。虽然我看到很多车排队等进龙海家园&#xff0c;但是我还是…

传输层协议(TCP和UDP)

目录 一、UDP 1、UDPAPI 2、UDPAPI的使用 二、TCP 1、TCPAPI 2、TCP的相关特性 2.1 确认应答 2.2 超时重传 2.3 连接管理&#xff08;三次握手&#xff0c;四次挥手&#xff09; 2.4 滑动窗口 2.5 流量控制 2.6 拥塞控制 2.7 延时应答 2.8 捎带应答 2.9 面向字节…

北森笔试测评之言语理解到底难不难

前篇笔记我提到过&#xff0c;言语理解是最难的&#xff0c;有同学质疑了。言语我都会做呀&#xff0c;甚至有的可以搜到&#xff0c;而图标和图形我有的不会。这里需要指出&#xff0c;会做不等于作对&#xff0c;可以回顾到高中甚至初中的时候&#xff0c;感觉做的好的一般都…

YOLO的使用

目录 一、安装ultralytics 二、数据集准备 三、训练代码 五、训练结果的目录结构 六、附录 1、部分参数 2、文件介绍 一、安装ultralytics pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple 介绍&#xff1a;Ultralytics YOLO Docs --- Train - …

计算机毕业设计 家电销售展示平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

deepspeed安装报错 No module named ‘dskernels‘解决

pip install deepseek安装报错 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/61/e6/04e2f2de08253e6b779fe7706f2e06d8fb48353e1d33a2fd7805062213d4/deepspeed-0.12.3.tar.gz (1.2 MB)Preparing metadata (setup.py) ... errorerror: subprocess-exited-with-err…

刘德华这么拼为了什么?

​马上就到63岁的生日了&#xff0c;可是刘德华今年在演唱会的连续三场的表演里边&#xff0c;出现了严重的舞台危险&#xff0c;差点命丧舞台。这一把年纪了&#xff0c;有必要这么拼吗&#xff1f;你要看画面&#xff0c;你就知道那是真的危险&#xff0c;他不是在作秀。 那他…

select系统调用(实现I/O复用)

API 在一段指定时间内&#xff0c;监听用户感兴趣的文件描述符上的可读、可写、异常事件。 int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);文件描述符集合fd_set 是一个用于管理文件描述符集合的结构体。select调用…

MICE MIXTURE OF CONTRASTIVE EXPERTS FOR UNSUPERVISED IMAGE CLUSTERING

由于论文和代码和我想的不太一致&#xff0c;因此不附上精读内容&#xff0c;感兴趣可以自行阅读 代码TsungWeiTsai/MiCE: Pytorch implementation for ICLR 2021 paper - MiCE: Mixture of Contrastive Experts for Unsupervised Image Clustering (github.com) 论文&#xff…

体感魂斗罗(一)

文章目录 体感魂斗罗实现步骤设备读取摄像头视频流使用电脑摄像头读取局域网内手机摄像头效果示意IP摄像头底部工具栏 体感魂斗罗实现步骤 目前想到的有如下步骤 读取摄像头视频流图像检测人体关键点关键点转换为人体姿势固定姿势转换键盘键位 设备 摄像头&#xff08;可用手…

rsync 服务详解

目录 1.前言 2. rsync 常用选项 3.rsync应用场景 4.rsync使用模式 5.rsync推与拉​编辑 5.1rsync推送 ​编辑5.2rsync拉取 6.rsync本地模式 7.远程模式 8.rsync守护进程 8.2改配置文件 8.3添加虚拟用户 8.4创建密码文件 8.5给文件给予权…

linux操作系统的引导和修复

1.磁盘引导 mbr 主引导记录 0 磁道 1 扇区 446 作用 &#xff1a; 记录 grub2 引导文件的位置 当 mbr 数据丢失系统会因为找不到启动分区而停止启动 问题模拟方式 系统磁盘 / dev / sda dd if/ dev / zero of / dev / vda bs 446 count 1 ## 清空系统 / dev / sda …

盘点常见网络安全术语(建议收藏)

1、黑帽 为非法目的进行黑客攻击的人&#xff0c;通常是为了经济利益。他们进入安全网络以销毁&#xff0c;赎回&#xff0c;修改或窃取数据&#xff0c;或使网络无法用于授权用户。这个名字来源于这样一个事实&#xff1a;老式的黑白西部电影中的恶棍很容易被电影观众识别&…

283. 移动零(快慢指针)

算法分析&#xff1a; 如果数组没有0&#xff0c;快慢指针同步移动&#xff0c;元素会被自己复制&#xff1b;如果有0&#xff0c;快指针找到非零元素&#xff0c;将其复制到慢指针位置最终将剩余位置填充为0。 代码&#xff1a; class Solution {public void moveZeroes(i…