靖江建设行业协会网站淘客优惠券推广网站怎么做

bicheng/2026/1/24 9:28:37/文章来源:
靖江建设行业协会网站,淘客优惠券推广网站怎么做,谷歌推广怎么做,古县网站建设实时时钟RTC是一个独立的定时器。RTC模块拥有一个连续计数的计数器#xff0c;在软件配置下#xff0c;可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 在掉电情况下 RTC仍可以独立运行 只要芯片的备用电源…实时时钟RTC是一个独立的定时器。RTC模块拥有一个连续计数的计数器在软件配置下可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 在掉电情况下 RTC仍可以独立运行 只要芯片的备用电源一直供电,RTC上的时间会一直走。相对于通用定时器TIM 外设它十分简单只有很纯粹的计时和触发中断的功能但从掉电还继续运行的角度来说它却是32 中唯一一个具有如此强大功能的外设。所以RTC外设的复杂之处并不在于它的定时功能而在于它掉电还继续运行的特性。 以上所说的掉电是指主电源VDD 断开的情况为了RTC 外设掉电继续运行必须接上锂电池给STM32 的RTC、备份发卡通过VBAT 引脚供电。当主电源VDD 有效时由VDD 给RTC 外设供电而当VDD 掉电后由VBAT 给RTC 外设供电。但无论由什么电源供电RTC 中的数据都保存在属于RTC 的备份域中若主电源VDD 和VBAT 都掉电那么备份域中保存的所有数据将丢失。备份域除了RTC 模块的寄存器还有42 个16 位的寄存器可以在VDD 掉电的情况下保存用户程序的数据系统复位或电源复位时这些数据也不会被复位。 RCT特征 ● 可编程的预分频系数分频系数高为220。 ● 32位的可编程计数器可用于较长时间段的测量。 ● 2个分离的时钟用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟 频率的四分之一以上)。 可以选择以下三种RTC的时钟源 ● HSE时钟除以128 ● LSE振荡器时钟 ● LSI振荡器时钟 2个独立的复位类型 ● APB1接口由系统复位 ● RTC核心(预分频器、闹钟、计数器和分频器)只能由后备域复位 3个专门的可屏蔽中断 ● 1.闹钟中断用来产生一个软件可编程的闹钟中断。 ● 2.秒中断用来产生一个可编程的周期性中断信号(长可达1秒)。 ● 3.溢出中断指示内部可编程计数器溢出并回转为0的状态。 结构框图 UNIX时间戳 由于RTC_CNT是32位寄存器可存储的最大值为2^32-1即这样计时它将在136年时溢出。假如某个时刻读取到计数器的数值为X 606024*2即两天时间的秒数而假设又知道计数器是在2011 年1 月1 日的0 时0 分0 秒置0 的那么就可以根据计数器的这个相对时间数值计算得这个X 时刻是2011 年1 月3 日的0 时0 分0 秒了。而计数器则会在(2011136) 年左右溢出也就是说到了2011136年时如果我们还在使用这个计数器提供时间的话就会出现问题。在这个例子中定时器被置0 的这个时间被称为计时元年相对计时元年经过的秒数称为时间戳也就是计数器中的值。 大多数操作系统都是利用时间戳和计时元年来计算当前时间的而这个时间戳和计时元年大家都取了同一个标准——UNIX 时间戳和UNIX 计时元年。UNIX 计时元年被设置为格林威治时间1970 年1 月1 日0 时0 分0 秒大概是为了纪念UNIX 的诞生的时代吧而UNIX 时间戳即为当前时间相对于UNIX 计时元年经过的秒数。因为unix 时间戳主要用来表示当前时间或者和电脑有关的日志时间如文件创立时间log 发生时间等考虑到所有电脑文件不可能在1970 年前创立所以用unix 时间戳很少用来表示1970 前的时间。在这个计时系统中使用的是有符号的32 位整型变量来保存UNIX 时间戳的即实际可用计数位数比我们上面例子中的少了一位少了这一位UNIX 计时元年也相对提前了这个计时方法在2038 年1 月19 日03 时14 分07 秒将会发生溢出这个时间离我们并不远。由于UNIX 时间戳被广泛应用到各种系统中溢出可能会导致系统发生严重错误届时很可能会重演一次“千年虫”的问题所以在设计预期寿命较长的设备需要注意。 BKP备份寄存器 1备份寄存器是42个16位的寄存器。可用来存储84个字节数据。2它们处在备份区域,当VDD电源切断,仍然由Vear维持供 电。 3当系统在待机模式下被唤醒,或者系统复位或者电源复位,它们也 不会复位。 4执行以下操作将使能对后备寄存器和 RTC 访问: 设置寄存器RCC APB1ENR的 PWREN 和 BKPEN位,使能电源和后备时钟。 设置寄存器 PWR CR的 DBP位使能对 RTC和后备寄存器的访问。 一共有 42 个 16 位备份寄存器。常用来保存一些系统配置信息和相关标志位。 RTC相关寄存器 1 、RTC控制寄存器(RTC_CRH,RTC_CRL) 2、 RTC预分频装载寄存器(RTC_ PRLH, RTC_PRLL) 3、RTC预分频余数寄存器(RTC_ DIVH,RTC_DIVL) 4、RTC计数器寄存器(RTC_CNTH,RTC_CNTL) 5、RTC闹钟寄存器(RTC_ALRH, RTC_ALRL) RTC控制寄存器 ① 修改 CRH/CRL 寄存器必须先判断 RSF 位确定已经同步。 ② 修改 CNT,ALR,PRL的时候必须先配置CNF 位进入配置模式修改完之后设置 CNF位为 0 退出配置模式 ③ 同时在对 RTC 相关寄存器写操作之前必须判断上一次写操作已经结束也就是判断 RTOFF 位是否置位。 配置RTC寄存器 必须设置RTC_CRL寄存器中的CNF位使RTC进入配置模式后才能写入RTC_PRRTC_CNT、RTC_ALR寄存器。 另外对RTC任何寄存器的写操作都必须在前一次写操作结束后进行。可以通过查询!RTC_CR寄存器中的RTOFF状态位判断RTC寄存器是否处于更新中。仅当RTOFF状态位是11!时才可以写入RTC寄存器。 配置过程: 1查询RTOFF位直到RTOFF的值变为1’2.置CNF值为1进入配置模式 3对一个或多个RTC寄存器进行写操作4清除CNF标志位退出配置模式 5查询RTOFF直至RTOFF位变为1以确认写操作已经完成。 仅当CNF标志位被清除时写操作才能进行这个过程至少需要3个RTCCLK周期。   读RTC寄存器 RTC核完全独立于RTC APB1接口。 软件通过APB1接口访问RTC的预分频值、计数器值和闹钟值。但是相关的可读寄存器只在与RTC APB1时钟进行重新同步的RTC时钟的上升沿被更新。RTC标志也是如此的。 这意味着如果APB1接口曾经被关闭而读操作又是在刚刚重新开启APB1之后则在第一次的内部寄存器更新之前从APB1上读出的RTC寄存器数值可能被破坏了(通常读到0)。下述几种情况下能够发生这种情形: 发生系统复位或电源复位 系统刚从待机模式唤醒(参见第4.3节:低功耗模式)。系统刚从停机模式唤醒(参见第4.3节:低功耗模式)。 所有以上情况中APB1接口被禁止时(复位、无时钟或断电)RTC核仍保持运行状态。因此若在读取RTC寄存器时RTC的APB1接口曾经处于禁止状态则软件首先必须等待RTC_CRL寄存器中的RSF位(寄存器同步标志)被硬件置1。 RTC 配置一般步骤 1、使能 PWR 和 BKP 时钟 2、使能后备寄存器访问 3、配置RTC时钟源使能RTC时钟如果使用: LSE,要打开 4、设置RTC 预分频系数 5、设置时间 6、开启相关中断如果需要) 7、编写中断服务函数 8、部分操作要等待写操作完成和同步。 等待最近一次对RTC寄存器的写操作完成等待RTC 寄存器同步   RTC的时间和闹钟寄存器都是以秒钟为计数单位的所以要把时间换算成秒钟获取时间需要把秒钟转换成日期。 判断是否是闰年 u8 Is_Leap_Year(u16 year) {                   if(year%40) //必须能被4整除     {          if(year%1000)          {              if(year%4000)return 1;//如果以00结尾,还要能被400整除                     else return 0;            }else return 1;        }else return 0;     }     设置时间 u8 const table_week[12]{0,3,3,6,1,4,6,2,5,0,3,5};      const u8 mon_table[12]{31,28,31,30,31,30,31,31,30,31,30,31}; u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec) {     u16 t;     u32 seccount0;     if(syear1970||syear2099)return 1;            for(t1970;tsyear;t)    //把所有年份的秒钟相加     {         if(Is_Leap_Year(t))seccount31622400;//闰年的秒钟数         else seccount31536000;              //平年的秒钟数     }     smon-1;     for(t0;tsmon;t)       //把前面月份的秒钟数相加     {         seccount(u32)mon_table[t]*86400;//月份秒钟数相加         if(Is_Leap_Year(syear)t1)seccount86400;//闰年2月份增加一天的秒钟数            }     seccount(u32)(sday-1)*86400;//把前面日期的秒钟数相加      seccount(u32)hour*3600;//小时秒钟数     seccount(u32)min*60;     //分钟秒钟数     seccountsec;//最后的秒钟加上去     RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP,     ENABLE);    //使能PWR和BKP外设时钟       PWR_BackupAccessCmd(ENABLE);    //使能RTC和后备寄存器访问      RTC_SetCounter(seccount);    //设置RTC计数器的值     RTC_WaitForLastTask();    //等待最近一次对RTC寄存器的写操作完成           return 0;         } 设置闹钟 u8 RTC_Alarm_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec) {     u16 t;     u32 seccount0;     if(syear1970||syear2099)return 1;            for(t1970;tsyear;t)    //把所有年份的秒钟相加     {         if(Is_Leap_Year(t))seccount31622400;//闰年的秒钟数         else seccount31536000;              //平年的秒钟数     }     smon-1;     for(t0;tsmon;t)       //把前面月份的秒钟数相加     {         seccount(u32)mon_table[t]*86400;//月份秒钟数相加         if(Is_Leap_Year(syear)t1)seccount86400;//闰年2月份增加一天的秒钟数            }     seccount(u32)(sday-1)*86400;//把前面日期的秒钟数相加      seccount(u32)hour*3600;//小时秒钟数     seccount(u32)min*60;     //分钟秒钟数     seccountsec;//最后的秒钟加上去                      //设置时钟     RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP,            ENABLE);    //使能PWR和BKP外设时钟        PWR_BackupAccessCmd(ENABLE);    //使能后备寄存器访问       //上面三步是必须的!          RTC_SetAlarm(seccount);       RTC_WaitForLastTask();    //等待最近一次对RTC寄存器的写操作完成                return 0;         } 获取时间 u8 RTC_Get(void) {     static u16 daycnt0;     u32 timecount0;      u32 temp0;     u16 temp10;           timecountRTC_GetCounter();           temptimecount/86400;   //得到天数(秒钟数对应的)     if(daycnt!temp)//超过一天了     {               daycnttemp;         temp11970;    //从1970年开始         while(temp365)         {                              if(Is_Leap_Year(temp1))//是闰年             {                 if(temp366)temp-366;//闰年的秒钟数                 else {temp1;break;}               }             else temp-365;      //平年              temp1;           }            calendar.w_yeartemp1;//得到年份         temp10;         while(temp28)//超过了一个月         {             if(Is_Leap_Year(calendar.w_year)temp11)//当年是不是闰年/2月份             {                 if(temp29)temp-29;//闰年的秒钟数                 else break;              }             else              {                 if(tempmon_table[temp1])temp-mon_table[temp1];//平年                 else break;             }             temp1;           }         calendar.w_monthtemp11;    //得到月份         calendar.w_datetemp1;      //得到日期      }     temptimecount%86400;             //得到秒钟数               calendar.hourtemp/3600;         //小时     calendar.min(temp%3600)/60;     //分钟         calendar.sec(temp%3600)%60;     //秒钟     calendar.weekRTC_Get_Week(calendar.w_year,calendar.w_month,calendar.w_date);// 获取星期        return 0; } 获取星期 u8 RTC_Get_Week(u16 year,u8 month,u8 day) {         u16 temp2;     u8 yearH,yearL;          yearHyear/100;    yearLyear%100;      // 如果为21世纪,年份数加100       if (yearH19)yearL100;     // 所过闰年数只算1900年之后的       temp2yearLyearL/4;     temp2temp2%7;      temp2temp2daytable_week[month-1];     if (yearL%40month3)temp2--;     return(temp2%7); }

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

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

相关文章

网站的后台怎么做app营销策略有哪些

横、纵表 定义 横表定义:一个对象的所有属性在一行,列的定义是对象的各个字段 举例:学生成绩表 姓名 Java C语言 ​ 张三 100 88 纵表定义:一个对象的所有属性被分配到多行,列的定义是对象的字段和字段的值 举例…

视频广告联盟平台排名优化工具下载

一、事件与处理 程序在运算过程中发生的一些事情:鼠标单击、键盘的按下... 这些的事件的监控与处理在Qt中不是以信号的方式处理的。 当这些事件发生时会调用QObject类中的功能函数(虚函数),所有的控件类都继承了这个类。 常用的鼠…

铜川做网站的公司上海装修公司排名前20

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 网康下一代防火墙(NGFW)是一款可以全面应对应用层威胁的高性能防火墙。通过深入洞察网络流量中的用户、应用和内容,并…

淘宝网客网站建设网站开发和软件开发

今天学习Makefile预定义变量的使用,加qq:1126137994.微信:liu1126137994一起学习更多技术!!! 1.预定义变量:自动变量 在Makefile中存在一些预定义过的变量,我们可以直接拿来使用而…

平面网站设计网站备案域名更改

手搓反激电源 | 五、反激高频变压器的设计与计算 先上干货,变压器设计规格书 千里之行,积于跬步,万里之船,成于罗盘 A journey of thousands of miles accumulates in steps, and the ship of thousands of miles becomes a compass 反激式变换操作 反激式变换器的…

酷炫网站首页WordPress里h1跟p有什么

大家有没有想过这个问题:软件测试中有哪些误区呢?想起这个题目,是因为最近遇到好几次关于这方面的讨论。发觉即便做过几年测试的老员工也或多或少有些这方面的困惑。当然一家之言,仅作抛砖引玉之谈。 误区一:测试就是…

学做网站论坛 可以吗个人网站开发赚钱方向

​2023年12月13日,北京玻色量子科技有限公司(以下简称“玻色量子”)联合上海交通大学在中科院分区1区、计算化学领域Top刊物JCTC(Journal of Chemical Theory and Computation)内刊的封面上发表了以“Encoding Molecul…

妇联加强网站平台建设高端网站改版顾问

目录 一、面向过程和面向对象初步认识 二、类的引入和定义 2.1类的引入 2.2类的定义 三、类的访问限定符及封装 3.1访问限定符 3.2封装 四、类的作用域 五、类的实例化 六、类的对象大小的计算 6.1如何计算对象的大小 6.2类对象的存储方式 七、类成员函数的thi…

正规的丹阳网站建设邯郸市中小学健康管理平台登录

解析 绿题照样不会qwq 一开始的想法是按位分类讨论 辛辛苦苦码了七十行 然后发现当一次性需要进多位的时候就炸了 qwq 关键要考虑到一点:异或就是不进位的加法 所以考虑u和v的差值,设为d 将其二进制分解,然后就是让其在对应的位进位即可 后…

建设个人信息网站企业培训公司有哪些

TX Text Control 支持VISUAL STUDIO 2022、.NET 5 和 .NET 6 支持 .NET WPF 应用程序的文档处理 将文档编辑、创建和 PDF 生成添加到您的 WPF 应用程序中。 视窗用户界面 功能齐全的文档编辑器 TX Text Control 是一款完全可编程的丰富编辑控件,它在专为 Visual Stu…

网站怎么做百度权重做淘宝有没有店小秘类型的网站

在 macOS 上设置 Redis 密码的步骤与在其他操作系统上大致相同,关键是要找到并编辑 Redis 配置文件,然后重启 Redis 服务。以下是详细步骤: 找到 Redis 配置文件:如果你是通过 Homebrew 安装的 Redis,配置文件通常位于…

做百度推广首先要做网站吗设计之家图片

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 所有的控件当中,除了label、edit、radio、combobox和button之外,另外一个用的比较多的控件就是grid,也可称之为…

网站建设购物商城专业网站运营设计

近年来,随着互联网发展,出现了各种各样的网站,web应用,网络极大方便了人们的生活,改变了人们生活方式。而随着网络的发展普及,网络安全问题也困扰着用户。 许多人都曾有过这样经历,网站上线后&…

兰州 网站建设公司哪家好电商网站有什么特点

这是我的ubutun版本号 在这个系统装桌面版微信很多功能不健全。搜索了很多方法,这个算是不错的一个法子。 1.添加仓库 首次使用时,你需要运行如下一条命令将移植仓库添加到系统中。 wget -O- https://deepin-wine.i-m.dev/setup.sh | sh 2.应用安装 …

网站的ftp怎么登陆成立一个公司需要多少钱

揭秘建筑类中级职称申报:是否能越过初级直接评审? 很多人想知道越过初级直接评审建筑类中级职称可以不? 关于越过初级职称/助理工程师直接申报建筑类中级职称,原则上是不行的,实际上分情况而定。如果你有二级建造师也…

可画在线设计网站制作游戏的软件app

随着新时代的到来,物联网和区块链技术的结合正在改变商业领域的运作模式。对于传统商家而言,如何利用区块链技术实现商业模式的转型和升级,成为了一个值得探讨的问题。本文将探讨新时代物联网区块链如何链接底层商业,并阐述传统商…

中国建设银行总行网站成都广告公司制作

方法 pthread_mutex_lock(mutex) pthread_mutex_trylock(mutex) pthread_mutex_unlock(mutex) 用法 线程可调用pthread_mutex_lock()来获取某个互斥量,如果该互斥量已经被其他线程加锁,则该线程将会被阻塞,直到互斥量被其他线程释放。 线程可调用pthread_mutex_trylock(…

网站建设服务收费营销网站设计公司招聘

导购APP、淘客机器人与淘客系统:全面对比与选择 在互联网购物的时代,导购APP、淘客机器人和微赚淘客系统成为了消费者们的三大重要工具。它们各具优势,但也存在一些问题。本文将为您详细对比这三种工具,帮助您在购物时做出最合适…

wordpress建站服务器选择怀化网站建设公司

今天分享的是Win10系统下MySQL的安装教程,打开MySQL官网,按步骤走呀~ 宝们安装MySQL后,需要简单回顾一下关系型数据库的介绍与历史(History of DataBase) 和 常见关系型数据库产品介绍 呀,后面就会进入正式…

威县网站建设网站建设先有域名然后呢

文章目录 定制repo(不再切换python和google源)前言各用各的repo定制repo2/repo3源码自动识别repo2/repo3项目完整解决方案: 定制repo(不再切换python和google源) 众知,Android/AOSP/ROM系统开发&#xff0c…