备案个人网站做广告公司网站建设

diannao/2025/10/21 3:21:30/文章来源:
备案个人网站,做广告公司网站建设,团购网站及域名,企业网站开发心得体会目录 一:时间相关 1:Unix时间戳 2: UTC/GMT 3:时间戳转化 二:BKP 1:简历 2:基本结构 三: RTC 1:简历 2: 框图 3:RTC基本结构 4:RTC操作注意 四:案例 A:读写备份寄存器 1:连接图 2: 步骤 3: 代码 B:实时时钟 1:连接图 2:函数介绍 3:代码 一:时间相关 1:Un…目录 一:时间相关 1:Unix时间戳 2: UTC/GMT 3:时间戳转化 二:BKP 1:简历 2:基本结构 三: RTC 1:简历 2: 框图 3:RTC基本结构 4:RTC操作注意 四:案例 A:读写备份寄存器 1:连接图 2: 步骤 3: 代码  B:实时时钟 1:连接图 2:函数介绍  3:代码 一:时间相关 1:Unix时间戳 Unix 时间戳Unix Timestamp定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数不考虑闰秒 时间戳存储在一个秒计数器中秒计数器为32位/64位的整型变量 世界上所有时区的秒计数器相同不同时区通过添加偏移来得到当地时间 2: UTC/GMT GMTGreenwich Mean Time格林尼治标准时间是一种以地球自转为基础的时间计量系统。它将地球自转一周的时间间隔等分为24小时以此确定计时标准 UTCUniversal Time Coordinated协调世界时是一种以原子钟为基础的时间计量系统。它规定铯133原子基态的两个超精细能级间在零磁场下跃迁辐射9,192,631,770周所持续的时间为1秒。当原子钟计时一天的时间与地球自转一周的时间相差超过0.9秒时UTC会执行闰秒来保证其计时与地球自转的协调一致 3:时间戳转化 C语言的time.h模块提供了时间获取和时间戳转换的相关函数可以方便地进行秒计数器、日期时间和字符串之间的转换 二:BKP 1:简历 BKPBackup Registers备份寄存器 BKP可用于存储用户应用程序数据。当VDD2.0~3.6V电源被切断他们仍然由VBAT1.8~3.6V维持供电。当系统在待机模式下被唤醒或系统复位或电源复位时他们也不会被复位 TAMPER引脚产生的侵入事件将所有备份寄存器内容清除 RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲 存储RTC时钟校准寄存器 用户数据存储容量      20字节中容量和小容量/ 84字节大容量和互联型 2:基本结构 BKP处于后备区域,  后备区域的作用:  当VDD主电源掉电时后备区域仍然可以由VBAT的备用电池供电;  当VDD主电源上电时后备区域供电会由VBAT切换到VDD,  也就是主电源有电时VBAT不会用到这样可以节省电池电量         BKP里主要有 : 数据寄存器、控制寄存器、状态寄存器和RTC时钟校准寄存器,       其中数据寄存器是主要部分用来存储数据的,  每个数据奇存器都是16位的,   一个数据奇存器可以存2个字节,  对于小的来说里面有DR1、DR2、一直到、DR10一共10个数据寄存器;    对于大容量和互联型里面有DR11~DR42的数据寄存器         可以从PC13位置的TAMPERS脚引入一个检测信号器, 当TAMPER产生上升沿或者下降沿时, 清除BKP所有的内容以保证安全-----对应简历中的第三条         时钟输出,  可以把RTC的相关时钟,  从PC13位置的RTC引脚输出出去供外部使用,  其中输出校准时钟时,  再配合这个校准寄存器可以对RTC的误差进行校准 三: RTC 1:简历 RTCReal Time Clock实时时钟 RTC是一个独立的定时器可为系统提供时钟和日历的功能 RTC和时钟配置系统处于后备区域系统复位时数据不清零VDD2.0~3.6V断电后可借助VBAT1.8~3.6V供电继续走时 32位的可编程计数器可对应Unix时间戳的秒计数器 20位的可编程预分频器可适配不同频率的输入时钟 可选择三种RTC时钟源      HSE时钟除以128通常为8MHz/128      LSE振荡器时钟通常为32.768KHz      LSI振荡器时钟40KHz 2: 框图 3:RTC基本结构 3个时钟选择一个当作RTCCLK,  之后RTCCLK先通过预分频器对时钟进行分频.         余数寄存器(DIV) : 是一个自减计数器存储当前的计数值.         重装寄存器 : 是计数目标决定分频值, 分频之后得到1Hz的秒计数信号,  通向32位计数器一秒自增一次         3个信号可以触发中断,  分别是秒信号、计数器溢出信号和闹钟信号,  三个信号先通过中断输出控制,  三个信号先通过中断输出控制,  使能的中断才能通向NVIC 4:RTC操作注意 执行以下操作将使能对BKP和RTC的访问    设置RCC_APB1ENR的PWREN和BKPEN使能PWR和BKP时钟      设置PWR_CR的DBP使能对BKP和RTC的访问 若在读取RTC寄存器时RTC的APB1接口曾经处于禁止状态则软件首先必须等待RTC_CRL寄存器中的RSF位寄存器同步标志被硬件置1 必须设置RTC_CRL寄存器中的CNF位使RTC进入配置模式后才能写入RTC_PRL、RTC_CNT、RTC_ALR寄存器--------其实这个操作在库函数中, 每个写奇存器的函数,  它都自动帮我们加上了这个操作, 所以我们就不用再单独调用代码进入配置模式了 对RTC任何寄存器的写操作都必须在前一次写操作结束后进行。可以通过查询RTC_CR寄存器中的RTOFF状态位判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时才可以写入RTC寄存器 四:案例 A:读写备份寄存器 1:连接图 2: 步骤 1: 设置RCC_APB1ENR的PWREN和BKPEN使能PWR和BKP时钟      2: 设置PWR_CR的DBP使能对BKP和RTC的访问 3: 代码  简单的实现BKP的功能  #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include Key.hvoid Key_Init(void) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin GPIO_Pin_1 | GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIO_InitStructure); }uint8_t Key_GetNum(void) {uint8_t KeyNum 0;if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 0){Delay_ms(20);while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) 0);Delay_ms(20);KeyNum 1;}if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) 0){Delay_ms(20);while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) 0);Delay_ms(20);KeyNum 2;}return KeyNum; }/*执行以下操作将使能对BKP和RTC的访问     1: 设置RCC_APB1ENR的PWREN和BKPEN使能PWR和BKP时钟     2: 设置PWR_CR的DBP使能对BKP和RTC的访问*/ uint16_t ArrayWrite[]{0x1234,0x5678}; uint16_t ArrayRead[2]; uint16_t KeyNum; int main(void) { Key_Init();OLED_Init();//1: 设置RCC_APB1ENR的PWREN和BKPEN使能PWR和BKP时钟     RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);//2: 设置PWR_CR的DBP使能对BKP和RTC的访问PWR_BackupAccessCmd(ENABLE);OLED_ShowString(1,1,W:);OLED_ShowString(3,1,R:);while (1){KeyNumKey_GetNum();if (KeyNum1){ArrayWrite[0];ArrayWrite[1];BKP_WriteBackupRegister(BKP_DR1,ArrayWrite[0]);BKP_WriteBackupRegister(BKP_DR2,ArrayWrite[1]);OLED_ShowHexNum(1,3,ArrayWrite[0],4);OLED_ShowHexNum(1,8,ArrayWrite[1],4);}ArrayRead[0]BKP_ReadBackupRegister(BKP_DR1);ArrayRead[1]BKP_ReadBackupRegister(BKP_DR2);OLED_ShowHexNum(3,3,ArrayRead[0],4);OLED_ShowHexNum(3,8,ArrayRead[1],4);}}执行以下操作将使能对BKP和RTC的访问              1: 设置RCC_APB1ENR的PWREN和BKPEN使能PWR和BKP时钟              2: 设置PWR_CR的DBP使能对BKP和RTC的访问 B:实时时钟 1:连接图 2:函数介绍  在stm32f10x_rcc.h的文件中-----时钟相关的函数 void RCC_LSEConfig(uint8_t RCC_LSE); void RCC_LSICmd(FunctionalState NewState); void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource);   void RCC_RTCCLKCmd(FunctionalState NewState) RCC_LSEConfig : 配置外部低速时钟(LSE) RCC_LSICmd : 配置内部低速时钟(LSI) RCC_RTCCLKConfig: 这个函数用来选择RTCCLK的时钟源 ,  实际上就是配置PPT的数据选择器 RCC_RTCCLKCmd : 使能--开启或者关闭RTC时钟 时钟在选择完毕后 , 需要获取标志位,等待标志完成后在操作 RCC_LSEConfig(RCC_LSE_ON);//选择外部低速时钟while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)RESET);//LSE准备ok了 在stm32f10x_rcc.h的文件中-----获取标志位函数 FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG); 在stm32f10x_rtc.h的文件中-----进入RTC配置模式 void RTC_EnterConfigMode(void) 这个函数作用: 置CRL的CNF为1进入配置模式 必须设置RTC_CRL寄存器中的CNF位使RTC进入配置模式后才能写入RTC_PRL、RTC_CNT、RTC_ALR寄存器 在stm32f10x_rtc.h的文件中-----退出RTC配置模式 void RTC_ExitConfigMode(void) 作用 : 就是把CNF位清零  在stm32f10x_rtc.h的文件中-----CNT计数器相关 uint32_t RTC_GetCounter(void)   void RTC_SetCounter(uint32_t CounterValue) RTC_GetCounter :  获取RTC计数器值 RTC_SetCounter :  写入CNT的值 在stm32f10x_rtc.h的文件中-----预分频器 void RTC_SetPrescaler(uint32_t PrescalerValue) RTC_SetPrescaler : 写入预分频器的值----这个值会写入到预分频器的PRL重装寄存器中,  用来配置预分频器的分频系数 在stm32f10x_rtc.h的文件中-----写入闹钟的值 void RTC_SetAlarm(uint32_t AlarmValue) 在stm32f10x_rtc.h的文件中-----读取预分频器中的DIV余数寄存器 uint32_t  RTC_GetDivider(void); 余数奇存器是一个自减计数器 ,  获取余数奇存器的值一般是为了得到更细致的时间 在stm32f10x_rtc.h的文件中-----等待完成操作 void RTC_WaitForLastTask(void); void RTC_WaitForSynchro(void); RTC_WaitForLastTask : 等待上次操作完成  对RTC任何寄存器的写操作都必须在前一次写操作结束后进行。可以通过查询RTC_CR寄存器中的RTOFF状态位判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时才可以写入RTC寄存器 RTC_WaitForSynchro :  等待同步----清除RSF标志位然后循环直到RSF为1 若在读取RTC寄存器时RTC的APB1接口曾经处于禁止状态则软件首先必须等待RTC_CRL寄存器中的RSF位寄存器同步标志被硬件置1 3:代码 #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include MYRTC.huint16_t MyRTC_Time[] {2023, 1, 1, 23, 59, 55}; void MYRTC_init(void) {RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);PWR_BackupAccessCmd(ENABLE);if(BKP_ReadBackupRegister(BKP_DR1)!0xA5A5){//LSE的频率是32.768KHz也就是32768HzRCC_LSEConfig(RCC_LSE_ON);//选择外部低速时钟while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)RESET);//LSE准备ok了RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//配置RTC时钟RTCCLKRCC_RTCCLKCmd(ENABLE);//开启RTC时钟RTC_WaitForLastTask();//等待上次操作完成 RTC_WaitForSynchro();//等待同步时钟//写预分频器RTC_SetPrescaler(32768-1);RTC_WaitForLastTask();RTC_SetCounter(1672588795); //写入CNTRTC_WaitForLastTask();BKP_WriteBackupRegister(BKP_DR1,0xA5A5);}else{RTC_WaitForLastTask();//等待上次操作完成 RTC_WaitForSynchro();//等待同步时钟}}void MYRTC_Settime(void) {//内部的定义typedef unsigned int time_t; /* date/time in unix secs past 1-Jan-70 */ time_t time_cnt;struct tm time_date;time_date.tm_year MyRTC_Time[0] - 1900;time_date.tm_mon MyRTC_Time[1] - 1;time_date.tm_mday MyRTC_Time[2];time_date.tm_hour MyRTC_Time[3];time_date.tm_min MyRTC_Time[4];time_date.tm_sec MyRTC_Time[5];//默认是伦敦时间, 转化为北京的东八区的时间time_cntmktime(time_date)-8*60*60; //mktimer日期类型的时间数据类型--转化为--秒计数器数据类型RTC_SetCounter(time_cnt);//写入CNT计数器RTC_WaitForLastTask();}void MyRTC_ReadTime(void) {time_t time_cnt;struct tm time_date;time_cnt RTC_GetCounter() 8 * 60 * 60;time_date *localtime(time_cnt); //秒计数器数据类型--转化为---日期类型的时间数据类型MyRTC_Time[0] time_date.tm_year 1900;MyRTC_Time[1] time_date.tm_mon 1;MyRTC_Time[2] time_date.tm_mday;MyRTC_Time[3] time_date.tm_hour;MyRTC_Time[4] time_date.tm_min;MyRTC_Time[5] time_date.tm_sec; }int main(void) {OLED_Init();MYRTC_init();OLED_ShowString(1, 1, Date:XXXX-XX-XX);OLED_ShowString(2, 1, Time:XX:XX:XX);OLED_ShowString(3, 1, CNT :);OLED_ShowString(4, 1, DIV :);while (1){MyRTC_ReadTime();OLED_ShowNum(1, 6, MyRTC_Time[0], 4);OLED_ShowNum(1, 11, MyRTC_Time[1], 2);OLED_ShowNum(1, 14, MyRTC_Time[2], 2);OLED_ShowNum(2, 6, MyRTC_Time[3], 2);OLED_ShowNum(2, 9, MyRTC_Time[4], 2);OLED_ShowNum(2, 12, MyRTC_Time[5], 2);OLED_ShowNum(3, 6, RTC_GetCounter(), 10);OLED_ShowNum(4, 6, RTC_GetDivider(), 10);} }

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

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

相关文章

网站备案时间怎么查询系统学生个人网页优秀模板

起因&#xff1a;最近公司要发票自动匹配&#xff0c; 比如财务输入10000W块&#xff0c;找到发票中能凑10000的。然后可以快速核销。 废话不多&#xff0c; 一 官方文档 https://developers.google.cn/optimization/pack/knapsack?hlzh-cn 二 POM文件 <!--google 算法包…

汕头网站设计怎么做企业营销型网站推广

思科加强生成树性能的属性&#xff08;Portfast/Uplinkfast/BackboneFast&#xff09;与RSTP的关系本文截自于博主CCNP交换技术稿件内容4.2.6思科加强生成树性能的属性&#xff08;Portfast/Uplinkfast/BackboneFast&#xff09;与RSTP的关系首先说明一下&#xff0c;为什么笔者…

如何查网站的空间wordpress改logo不显示

在数字化阅读日益盛行的今天&#xff0c;各种电子文献格式层出不穷&#xff0c;其中CAJ和PDF无疑是两种最为常见的格式。CAJ是中国知网推出的一种专用全文阅读格式&#xff0c;而PDF则因其跨平台、不易被修改的特性&#xff0c;受到了广大读者的青睐。因此&#xff0c;将CAJ格式…

便宜建站空间开发公司产品部课件

<?phpheader("Content-Type:text/html;charsetutf-8");/*无限级分类。牵扯2个应用0是-找指定栏目的子栏目1是-找指定栏目的子孙栏目&#xff0c;即子孙树2是-找指定栏目的父栏目/父父栏目....顶级栏目&#xff0c;即家谱树*/$aarr array(array(id>1,name>…

网站建设类毕业设计江西网站建设公司哪家好

时钟周期是一个时间的量&#xff0c;人们规定10纳秒&#xff08;ns&#xff09;为一个时钟周期。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。对于PC100规格的内存来说&#xff0c;它的运行时钟周期应该不高于10纳秒。纳秒与工作频率之间的…

网站怎么做有创意帝国网站数据库配置文件

题目描述 给定一个正整数 n&#xff0c;对 n 分解质因数。 设 np1​p2​p3​⋯px​&#xff0c;其中 pi​ 均为质数。 如果 pi​ 均为奇数&#xff0c;则称 n 为『只因数』。 现在&#xff0c;给出若干个 n&#xff0c;请你判断 n 是不是『只因数』。 输入格式 本题单测试…

昆明移动端网站建设安卓下载软件

2月9日在洛杉矶举行的第11届网络搜索与数据挖掘国际会议&#xff08;WSDM 2018&#xff09;上&#xff0c;公布了今年的WSDM Cup竞赛成绩&#xff0c;来自阿里巴巴的AliOS团队凭借优秀的算法能力&#xff0c;摘得榜眼。这是该赛事举办11届以来&#xff0c;中国企业在该赛事上首…

网站购物车功能怎么做网站设计的性能需求

今天小编给广大用户分享搜狐视频怎么下载到电脑。搜狐视频有海量的视频让我们可以不断的去浏览&#xff0c;而且这些资源是 跟搜狐视频网站同步。搜狐视频有占用内存小、耗电小、交互简单、播放流畅的优势&#xff0c;无论你是千元机还是几千元的高中低档手机中均能完美运行&am…

网站ftp空间做旅游网站目的和意义

HashMap头插死循环是指在JDK1.7中&#xff0c;多线程环境下&#xff0c;HashMap进行扩容时由于多个线程一起执行扩容&#xff0c;可能会导致某一结点被错误插入头部并形成一个循环链表。 发生死循环的源码如下&#xff1a; // hashmap由数组链表构成 void transfer(Entry[] ne…

网站商城怎么做的中国发达国家还有多远

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

四川外国语大学网站建设系wordpress 3.5 官方中文版

前言C# 对类型系统进行改进一直都没有停过&#xff0c;这是一个长期的过程。C# 8 之后则主要围绕扩展性方面进行各种改进&#xff0c;目前即将发布的 C# 11 中自然也包含该方面的进度。这些改进当然还没有做完&#xff0c;本文则介绍一下已经推出和即将推出的关于这方面改进的新…

重点学科网站建设dw怎么做秋季运动会网站

题意&#xff1a; 一颗n个点的树&#xff0c;问其中两点之间的边上数的和加起来是3的倍数的点对有多少个&#xff1f; 输出这样的点对所占比例 题解&#xff1a; 树形dp求解 因为是求长度为3的倍数&#xff0c;模3的结果只有0/1/2&#xff0c;我们可以单独考虑作为一维。 设…

网站建设管理标准重庆招聘网站哪个好

1、MySQL卸载&#xff1a; &#xff08;通过yum命令卸载之前安装的mysql&#xff0c; find命令找到mysql文件&#xff0c;再用rm –rf 强制删除/var/lib/mysql&#xff09; 2、MySQL安装&#xff1a; &#xff08;使用yum命令安装mysql&#xff0c;安装完成后启动数据库&#x…

免费建立网站教程海纳企业网站建设

题目: 如果一个字符串str,把字符串str前面任意的部分挪到后面形成的字符串叫做str的旋转词。比如str="12345",str的旋转词有"12345"、"23451"、"34512"、"45123"、和"51234"。给定两个字符串a和b,请判断a和b…

突唯阿 领先的响应式网站建设平台东莞专业做淘宝网站建设

目录项目结构国际化curd操作404页面拦截器地址&#xff1a; https://github.com/sevenyoungairye/spring-boot-study员工管理员系统&#xff0c;页面用html thymeleaf模板数据库用的是map集合&#xff0c;没用真实的数据库项目结构 国际化 默认中文 中文&#xff0c;英文切换…

杭州哪家做网站程序员接单网站

647. 回文子串 动态规划解决的经典题目&#xff0c;如果没接触过的话&#xff0c;别硬想 直接看题解。 代码随想录 516.最长回文子序列 647. 回文子串&#xff0c;求的是回文子串&#xff0c;而本题要求的是回文子序列&#xff0c; 大家要搞清楚两者之间的区别。 代码随想…

福海网站制作嘉定个人网站建设

观察者模式&#xff1a; 书中通过小菜描述同事在公司看股票行情&#xff0c;并请求前台帮忙在老板回来时提醒同事&#xff0c;引出需求。将前台通知同事老板回来的事写成程序。未用模式实现&#xff1a; 1 //前台类2 public class Secretary {3 private List<StockObser…

网页模板免费下载网站蚌埠高端网站建设

System.Data虽然不引人关注&#xff0c;但在.NET中&#xff0c;System.Data对于各种关系数据库的连接是非常重要的。System.Data也被称为ADO.NET&#xff0c;其前身是ActiveX Data Objects。System.Data提供了通过的框架&#xff0c;在她的基础上.NET数据驱动应用可以被构建。这…

网站弹屏广告怎么做潍坊高级网站建设推广

假设工程根目录为 d:/Project/ 然后在 d:/Project/a/b/c/d/file.py 里使用 os.getcwd() 方法获取的是 d:/Project/a/b/c/d 现在我想获取 d:/Project 怎么做? ------------------------------------分割线--------------------------------- 谢谢大家的热情回答,都怪我没有将问…

网站开发需要有登陆界面的网站微信群二维码大全网站

2019.12.31 天气&#xff1a;晴 地点&#xff1a;杭州 今天是2019年的最后一天&#xff0c;就用这篇博客来记录一下这一年的历程吧。 时间很快&#xff0c;它从指缝中悄悄划过的时候&#xff0c;我们好似毫无感觉&#xff0c;突然又一年就过去了&#xff0c;大学四年的生活也随…