老网站改版做优惠网站多少钱

news/2025/9/23 0:27:03/文章来源:
老网站改版,做优惠网站多少钱,静态网页制作源代码,公司品牌官网建站目录 1. RTC 实时时钟的应用场景 2. RTC 的配置与初始化 2.1 设置 RTC 时钟源 2.2 初始化 RTC 寄存器 2.3 中断配置 2.4 备份寄存器配置 2.5 校准 RTC 3. 实例演示代码 4. 总结 1. RTC 实时时钟的应用场景 实时时钟#xff08;RTC#xff09;在嵌入式系统中具有广泛…目录 1. RTC 实时时钟的应用场景 2. RTC 的配置与初始化 2.1 设置 RTC 时钟源 2.2 初始化 RTC 寄存器 2.3 中断配置 2.4 备份寄存器配置 2.5 校准 RTC 3. 实例演示代码 4. 总结 1. RTC 实时时钟的应用场景 实时时钟RTC在嵌入式系统中具有广泛的应用场景特别是对于需要准确跟踪时间的应用。下面是一些常见的 RTC 应用场景 时钟显示 RTC 可用于驱动液晶显示屏上的时钟模块以在设备上显示当前时间。 日历功能 RTC 可用于记录日期包括年、月、日等信息从而实现日历功能。 定时任务 在需要周期性执行任务的应用中RTC 可以作为触发定时任务执行的时钟源。 事件记录 RTC 可用于记录系统中的事件发生时间例如记录故障发生的时间戳。 定时器功能 RTC 还可以用作定时器实现定时触发操作例如定时启动警报等。 电源管理 RTC 可以在设备休眠时运行唤醒时提供时间信息从而实现高效的电源管理。 日志记录 RTC 可以用于记录系统运行状态或用户操作记录的时间信息以便后续分析。 2. RTC 的配置与初始化 配置和初始化 RTC 模块是使用实时时钟功能的关键步骤。下面是配置和初始化 RTC 的一般步骤 2.1 设置 RTC 时钟源 RTC 的时钟源通常有两种选择外部晶体振荡器LSE和内部振荡器LSI。外部晶体振荡器通常是32.768kHz提供更高的精度和稳定性而内部振荡器则更为节省成本可以在LSE失效时使用。 2.2 初始化 RTC 寄存器 RTC 模块通常包含多个寄存器用于存储时间、日期和控制信息。在初始化过程中需要设置这些寄存器的初始值以确保 RTC 模块能够正确地工作。 2.3 中断配置 如果需要使用 RTC 中断功能例如定时器中断或闹钟中断还需要配置相应的中断使能位和中断优先级。这样当 RTC 模块产生中断时系统可以及时响应并处理中断事件。 2.4 备份寄存器配置 RTC 模块通常还包含一些备份寄存器(BKP)用于存储关键信息例如设备状态、配置参数等。在初始化过程中可以根据需要对这些备份寄存器进行配置以实现数据的备份和恢复功能。 2.5 校准 RTC 通过下列RTC简图可知后备区域的时钟与APB1总线的时钟是不相同的为了确保 RTC 模块提供的时间信息准确可靠需要对 RTC 进行周期性的校准。校准过程包括校正 RTC 时钟源的偏差以及对 RTC 寄存器的时间值进行校准以确保与外部时间标准的一致性。 3. 实例演示代码 本节我们将利用RTC实现一个时钟显示的功能通过读取时间戳来获取当前时间主供电断开依然可以由备用电池供电故主供电断开依然可以记时本程序可以通过动态传参的方法来配置当前的初始时间。         首先是等待RTC同步函数 void rtc_wait(void) {RTC_WaitForSynchro(); //等待同步RTC_WaitForLastTask(); //等待上一次操作完成 }接着是RTC的初始化 void rtc_Init(uint16_t year,uint16_t mouth,uint16_t day,uint16_t hour,uint16_t min,uint16_t sec) {time_t time_cnt;struct tm time_date; BKP_Init();//备份寄存器初始化同时使能PWR的时钟if (R_Save_data(BKP_DR10) ! 0x2024) //判断是否是第一次设置备份寄存器{RCC_LSEConfig(RCC_LSE_ON); //LSE时钟通常是32.768kHzwhile (RCC_GetFlagStatus(RCC_FLAG_LSERDY) ! SET); //LSE准备就绪RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //配置LSE来源RCC_RTCCLKCmd(ENABLE); //RTC时钟使能rtc_wait();//等待同步主时钟和低速时钟的同步RTC_SetPrescaler(32768 - 1); //把32.768kHz分频到1HzRTC_WaitForLastTask(); //等待上一次操作完成time_date.tm_year year - 1900; //time库中年是从1900年算起的time_date.tm_mon mouth - 1; //time库中月是从1月算起的time_date.tm_mday day;time_date.tm_hour hour;time_date.tm_min min;time_date.tm_sec sec;time_cnt mktime(time_date) - 8 * 60 * 60; //将日期转换为秒计数器并减8个时区东8RTC_SetCounter(time_cnt); //更新到计数器RTC_WaitForLastTask(); //等待上一次操作完成BKP_WriteBackupRegister(BKP_DR10, 0x2024); //第一次设置完成写入标志位}else rtc_wait();//第一次已经配置好了后期主上电只需等待时钟同步 }接着是RTC读取时间的函数 void Read_RTC(uint16_t *year,uint16_t *mouth,uint16_t *day,uint16_t *hour,uint16_t *min,uint16_t *sec) {time_t time_cnt; struct tm time_date; time_cnt RTC_GetCounter() 8 * 60 * 60; //获取当前的秒计数器time_date *localtime(time_cnt); //将秒计数器转换为日期*year time_date.tm_year 1900; //将日期时间结构体赋值给数组的时间*mouth time_date.tm_mon 1;*day time_date.tm_mday;*hour time_date.tm_hour;*min time_date.tm_min;*sec time_date.tm_sec; }在这里我们要注意需要在文件的开头包含time.h文件因为在函数中使用到了该头文件中包含的结构体和其他有关时间戳的函数通过该头文件我们可以避免自己编写闰年等等的程序逻辑 #include time.h在获取函数之前我们还需要定义全局变量一定要全局变量哈不要写在main函数或者其他功能函数中了 uint16_t year,mouth,day,hour,min,sec;接着我们只需要在初始化时将当前时间作为参数传入初始化函数就可以在获取函数中通过全局变量实时获取到当前的时间了 rtc_Init(2024,2,19,4,27,55); //RTC初始化当前时间2024年2月19日4点27分55秒 Read_RTC(year,mouth,day,hour,min,sec);//获取函数将日期信息分别赋值到全局变量中 最后程序中如果出现函数未定义的可能是在BKP篇中封装好的函数下附BKP篇的.c文件 #include bkp.h//备份寄存器初始化 void BKP_Init(void) {//备份寄存器通常需要在Vbat电压下工作Vbat是用于保持备份寄存器内容的电源而PWR模块负责监测Vbat电压RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //开启PWR的时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE); //开启BKP的时钟PWR_BackupAccessCmd(ENABLE); //用PWR使能备份寄存器 }/*在f103c8t6中有20个字节的后备数据空间对应10个16位的备份寄存器 BKP_DR对应BKP_DR1 - BKP_DR10 */ uint16_t W_Save_data(uint16_t BKP_DR, uint16_t data) {BKP_WriteBackupRegister(BKP_DR, data); //将需要掉电保存的数据写入备份寄存器if(data BKP_ReadBackupRegister(BKP_DR)) //读取写入的备份寄存器的数据{return 1; //如果正确读取到备份寄存器的数据返回1}else return 0; }uint16_t R_Save_data(uint16_t BKP_DR) {return BKP_ReadBackupRegister(BKP_DR); } 4. 总结 RTC实时时钟模块在嵌入式系统中扮演着重要角色通过提供精确时间和日期信息帮助系统实现定时任务、时间戳记录、闹钟等功能。我们学习了RTC的原理、配置和应用场景。在配置和初始化RTC时需要注意时钟源选择、寄存器初始化和异常处理以确保模块的稳定可靠运行。通过掌握RTC知识我们能够提升系统性能和稳定性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优秀设计案例网站怎么建设自己网站(儿童)步骤

需求: 进入桌面不弹出预制应用的所有权限弹窗,默认一次性授予,不在弹出,且重启不会复现。 查看应用信息可看到所有权限已经授予。防止出现安卓机器弹出界面大小无法点击现象 路径一: /vendor/mediatek/proprietary/packages/modules/Permission/PermissionController/…

电影网站app怎么做做电影下载网站需要什么

云服务器的优势 裸机云服务器,拥有物理机同样的性能和安全,也具有云主机的灵活和弹性。其最显著的优势在于,用户能够直接控制服务器及其资源,这一点与虚拟化云实例有明显区别,后者会将底层硬件操作对用户进行隐藏。此外…

网站结构怎么做万柏林区静默管理

SDK开发工具包下载 Go语言官网地址:golang.org,无法访问Golang中文社区:首页 - Go语言中文网 - Golang中文社区下载地址:Go下载 - Go语言中文网 - Golang中文社区 尽量去下载稳定版本,根据使用系统下载压缩包格式的安装…

罗湖网站制作公司凡客app官网

一、领域驱动设计为何又焕发青春?领域驱动设计(Domain Driven Design,DDD)确实已不再青春,从 Eric Evans 出版了划时代的著作《领域驱动设计》至今,已有将近十五年的时间,在软件设计领域中&…

贵阳企业网站排名优化免费建网站入驻

概述 根据《MySQL 8.0 Reference Manual》的描述,Common Table Expressions(简称CTE)是一种名为临时结果集的表达式。它可以用来构造复杂的查询语句,并且可以在多个查询中重复使用同一个结果集。CTE的优点是可以使查询语句更加简…

做网站优化有前景吗江苏镇江扬中贴吧

U盘是一种常见的存储设备,它可以方便我们携带各种文件和数据。但是,当我们不小心将U盘格式化了,里面的数据也将全部都消失。并且,对于一些拥有较多电脑操作技能的用户来讲,格式化删除的数据与普通右击删除的方式相比&a…

如何创建网站详细步骤网页制作设计教程

python编程应该用什么工具发布时间:2020-11-05 11:16:20来源:亿速云阅读:101作者:小新小编给大家分享一下python编程应该用什么工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下&#xff0…

在线视频下载网站如何做制作免费网站的平台

https://www.lucidchart.com/pages/signup?utm_expid39895073-174.qKyHpBEbQS26y86OArD-rQ.1 https://www.processon.com/

电商网站建设哪家公司好百度竞价冷门产品

1.依产生的先后顺序,当前媒体可分为四类:报纸、杂志等纸质平面媒体、广播媒体、电视媒体、互联网媒体。该说法( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:A 2.第四媒体发展到宽带互联网阶段成为&a…

东莞建站网站建设产品推广合肥网站建设发布

微软正式发布Azure IoT Central,这是一个面向物联网的软件即服务解决方案。借助该服务,微软旨在提供一种设计、开发、配置和管理IoT设备的低代码方式,同时提供开箱即用的安全性、可伸缩性以及与流程&应用程序集成。Azure IoT Central构建…

网站个人备案流程网站建设施工方案

过去的两年里,骨传导耳机逐渐被大众的所熟知。可能毕竟长时间使用音量过大的传统入耳式耳机,多多少少会对我们的听力健康构成威胁。所以很多人就想找一款不伤耳朵的耳机。然后就了解到了骨传导耳机,所以就会延伸出这些问题——骨传导耳机好用…

深圳安嘉建设有限公司网站网站域名是什

** 1.实现了Interceptor接口,并实现了两个拦截方法:update和query。当Mybatis执行update或query语句时,会自动调用intercept法。intercept方法首先获取当前执行的SQL语句,并计算执行该SQL语句所需的时间。然后,它将执行…

建数据库的网站多少钱id中怎么链接wordpress

Pytorch入门 简单容易上手,感觉比keras好理解多了,和mxnet很像(似乎mxnet有点借鉴pytorch),记一记。 直接从例子开始学,基础知识咱已经看了很多论文了。。。 import torch import torch.nn as nn import to…

做网站找那家公司好数字媒体应用 网站开发

正题 P2599 题目大意 给n堆石子,第 i 堆有 aia_iai​ 个石子,每次可以从最左边或者最右边的一堆里面取若干个,两个人轮流取,问先手是否存在必胜策略 解题思路 设 li,jl_{i,j}li,j​ 为在 [i,j][i,j][i,j] 右边添加一堆大小 li,…

创意设计公司网站网站静态页面模板

为什么80%的码农都做不了架构师?>>> 安装Apk过程中,出现如下错误: Failed to install on device ‘XXX′: timeout 原因时设备速度太卡,导致启动超时,解决办法:延长超时时间。 方法&#xff…

南通专业网站设计制作杭州建设网站公司网站

声明:原创文章,禁止转载! Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案 分析Android11 系统对于EMMC/UFS作为内部存储、SD卡被格式化为内部存储、SD卡/U盘被格式化为便携式存储的不同处理 一.现象描述 实测Android9 Android10 A…

东莞营销网站建设收费标准崇信县门户网

题目很简单&#xff0c;就是我们在写二分的时候&#xff0c;会遇到这样的情况&#xff1a; mid left (right-left)/2; if (nums k)return mid;if (nums>k)left mid;if (nums<k)right mid-1; 若我们debug会发现其可能会一致卡在left mid&#xff0c;例如&#xff08…

北京做网站开发公司电话网站设计与开发网站策划

作者 | 码哥 来源 | 码哥字节❝这可能是最中肯的 Redis 使用规范了一网友昨天和我说&#xff0c;公司凌晨 12 点之后&#xff0c;网站用户量暴增&#xff0c;出现了一个技术故障&#xff0c;用户无法下单&#xff0c;当时老大火冒三丈&#xff01;经过查找发现 Redis 报 C…

刷手机网站关键词wordpress事例

前面的章节中&#xff0c;我们从纯理论的角度对依赖注入进行了深入论述&#xff0c;我们接下来会对.NET Core依赖注入框架进行单独介绍。为了让读者朋友能够更好地理解.NET Core依赖注入框架的设计与实现&#xff0c;我们按照类似的原理创建了一个简易版本的依赖注入框架&#…

网站上的图片带店面是怎么做的谷歌手机版下载安装

1什么是json JSON(JavaScript Object Notation&#xff0c;JS对象简谱&#xff09;是一种轻量级的数据交换格式。它是基于ECMAScript&#xff08;欧洲计算机协会制定的js规范&#xff09;的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰…