rtc使用

2023-05-16

首先我们要知道,rtc并非片上外设,所以要通过连接总线以读取数据

什么是RTC

RTC (Real Time Clock):实时时钟

RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。

在这里插入图片描述

在断电情况下 RTC仍可以独立运行 只要芯片的备用电源一直供电,RTC上的时间会一直走。

RTC实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断)。但其高级指出也就在于掉电之后还可以正常运行。

两个 32 位寄存器包含二进码十进数格式 (BCD) 的秒、分钟、小时( 12 或 24 小时制)、星期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。系统可以自动将月份的天数补偿为 28、29(闰年)、30 和 31 天。

上电复位后,所有RTC寄存器都会受到保护,以防止可能的非正常写访问。

无论器件状态如何(运行模式、低功耗模式或处于复位状态),只要电源电压保持在工作范围内,RTC使不会停止工作。

RCT特征:

● 可编程的预分频系数:分频系数高为220。
● 32位的可编程计数器,可用于较长时间段的测量。
● 2个分离的时钟:用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟 频率的四分之一以上)。
● 可以选择以下三种RTC的时钟源
     ● HSE时钟除以128;
     ● LSE振荡器时钟;
     ● LSI振荡器时钟

● 2个独立的复位类型:
     ● APB1接口由系统复位;
     ● RTC核心(预分频器、闹钟、计数器和分频器)只能由后备域复位

● 3个专门的可屏蔽中断:
     ● 1.闹钟中断,用来产生一个软件可编程的闹钟中断。

     ● 2.秒中断,用来产生一个可编程的周期性中断信号(长可达1秒)。

     ● 3.溢出中断,指示内部可编程计数器溢出并回转为0的状态。

RTC时钟源:
三种不同的时钟源可被用来驱动系统时钟(SYSCLK):

● HSI振荡器时钟
● HSE振荡器时钟
● PLL时钟

这些设备有以下2种二级时钟源:

● 40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。 RTC用于从停机/待机模式下自动唤醒系统。
● 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。

RTC原理框图

在这里插入图片描述
RTC时钟的框图还是比较简单的,这里我们把他分成 两个部分:

APB1 接口:用来和 APB1 总线相连。 此单元还包含一组 16 位寄存器,可通过 APB1 总线对其进行读写操作。APB1 接口由 APB1 总 线时钟驱动,用来与 APB1 总线连接。

通过APB1接口可以访问RTC的相关寄存器(预分频值,计数器值,闹钟值)。

RTC 核心接口:由一组可编程计数器组成,分成 两个主要模块 。
在这里插入图片描述g)
第一个模块是 RTC 的 预分频模块,它可编程产生 1 秒的 RTC 时间基准 TR_CLK。RTC 的预分频模块包含了一个 20 位的可编程分频器(RTC 预分频器)。如果在 RTC_CR 寄存器中设置了相应的允许位,则在每个 TR_CLK 周期中 RTC 产生一个中断(秒中断)。
在这里插入图片描述
第二个模块是一个 32 位的可编程计数器 (RTC_CNT),可被初始化为当前的系统时间,一个 32 位的时钟计数器,按秒钟计算,可以记 录 4294967296 秒,约合 136 年左右,作为一般应用,这已经是足够了的。

RTC具体流程:

RTCCLK经过RTC_DIV预分频,RTC_PRL设置预分频系数,然后得到TR_CLK时钟信号,我们一般设置其周期为1s,RTC_CNT计数器计数,假如1970设置为时间起点为0s,通过当前时间的秒数计算得到当前的时间。RTC_ALR是设置闹钟时间,RTC_CNT计数到RTC_ALR就会产生计数中断,

  • RTC_Second为秒中断,用于刷新时间,
  • RTC_Overflow是溢出中断。
  • RTC Alarm 控制开关机

RTC时钟选择

使用HSE分频时钟或者LSI的时候,在主电源VDD掉电的情况下,这两个时钟来源都会受到影响,因此没法保证RTC正常工作.所以RTC一般都时钟低速外部时钟LSE,频率为实时时钟模块中常用的32.768KHz,因为32768 = 2^15,分频容易实现,所以被广泛应用到RTC模块.(在主电源VDD有效的情况下(待机),RTC还可以配置闹钟事件使STM32退出待机模式).

RTC复位过程

除了RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器外,所有的系统寄存器都由系统复位或电源复位进行异步复位。
RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV寄存器仅能通过备份域复位信号复位。

系统复位后,禁止访问后备寄存器和RCT,防止对后卫区域(BKP)的意外写操作

读RTC寄存器

RTC内核完全独立于APB1接口,软件通过APB1接口对RTC相关寄存器访问。但是相关寄存器只在RTC APB1时钟进行重新同步的RTC时钟的上升沿被更新。所以软件必须先等待寄存器同步标志位(RTC_CRL的RSF位)被硬件置1才读。

配置RTC寄存器

必须设置RTC_CRL寄存器中的CNF位,使RTC进入配置模式后,才能写入RTC_PRL、
RTC_CNT、RTC_ALR寄存器。

另外,对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行。可以通过查询
RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是’1’
时,才可以写入RTC寄存器。

RTC时钟源

RTC是一个独立的时钟源
在这里插入图片描述

RTC寄存器

  • RTC控制寄存器 (RTC_CRH, RTC_CRL)
  • RTC预分频装载寄存器 (RTC_PRLH, RTC_PRLL)
  • RTC预分频余数寄存器 (RTC_DIVH, RTC_DIVL)
  • RTC计数器寄存器 (RTC_CNTH, RTC_CNTL)
  • RTC闹钟寄存器 (RTC_ALRH ,RTC_ALRL)

RTC控制寄存器高位——RTC_CRH 寄存器

在这里插入图片描述
作用:配置3个专门的可屏蔽中断(溢出中断、闹钟中断、秒中断)使能。

注意:系统复位后所有的中断被屏蔽,因此可通过写RTC寄存器来
确保在初始化后没有挂起的中断请求。当外设正在完成前一次写操作时(标志位RTOFF=0),不
能对RTC_CRH寄存器进行写操作。

RTC控制寄存器低位——RTC_CRL 寄存器

在这里插入图片描述
一般用到该寄存器的 3,4,5位

  1. 第 3 位为寄存器同步标志位,我们在修改控制寄存器 RTC_CRH/CRL 之前,必须先判断该位,是否已经同步了,如果没有则等待同步
  2. 第 4 位为配置标位,在软件修改 RTC_CNT/RTC_ALR/RTC_PRL 的值的时候,必须先软件置位该位,以允许进入配置模式
  3. 第 5 位为 RTC 操作位,该位由硬件操作,软件只读。通过该位可以判断上次对 RTC 寄存器的操作是否完成,如果没有,我们必须等待上一次操作结束才能开始下一次,也就是判断RTOFF位是否置位。

三个位总结如下:

 修改CRH/CRL寄存器,必须先判断RSF位,确定已经同步。
 修改CNT,ALR,PRL的时候,必须先配置CNF位进入配置模式,修改完之后,设置CNF位为0退出配置模式
 **同时在对RTC相关寄存器写操作之前,必须判断上一次写操作已经结束,**

RTC 预分频装载寄存器——(RTC_PRLH/RTC_PRLL) 寄存器

作用:配置 RTC 时钟的分频数,

比如我们使用外部 32.768K 的晶振作为时钟的输入频率,那么我们要设置这两个寄存器的值为 7FFFh(32767),就可获得周期为1秒钟的信号。
在这里插入图片描述

RTC预分频器余数寄存器(RTC_DIVH、RTC_DIVL)

作用: 和他的名字一样,获得余数,也就是获取更精确的计时,比如:0.1s ,0.01 s等

寄存器是只读寄存器,其值在RTC_PRL或RTC_CNT寄存器中的值发生改变后,由硬件重新装载。
在这里插入图片描述

RTC 计数器寄存器——RTC_CNTX 寄存器

作用:存放计数器内的计数值。也就是用来记录时钟时间

该寄存器由 2 个 16 位的寄存器组成 RTC_CNTH 和 RTC_CNTL,总共 32 位,当进行读操作时,直接返回计数器内的计数值(系统时间)
在这里插入图片描述

RTC 计数器寄存器——RTC 闹钟寄存器(RTC_ALRH、RTC_ALRL)

作用: RTC时钟中断控制寄存器

该寄存器也是由 2 个 16 位的寄存器组成 RTC_ALRH 和 RTC_ALRL,也就是32位,当可编程计数器的值与RTC_ALR中的32位值相等时,即触发一个闹钟事件,并且产生RTC闹钟中断。
在这里插入图片描述

BKP备份寄存器

备份寄存器是42个16位的寄存器。可用来存储84个字节数据。
它们处在备份区域,当VDD电源切断,仍然由VBAT维持供电。

当系统在待机模式下被唤醒,或者系统复位或者电源复位,它们也不会复位。
执行以下操作将使能对后备寄存器和RTC访问:

  • 设置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备时钟。
  • 设置寄存器PWR_CR的DBP位,使能对RTC和后备寄存器的访问

一般用 BKP 来存储 RTC 的校验值或者记录一些重要的数据,

在这里插入图片描述

配置RTC寄存器:

1.查询RTOFF位,知道RTOFF的值为1.

2.置CNF值为1,进入配置模式。

3.对一个或者多个RTC寄存器进行写操作。

4.清除CNF标志位,退出配置模式。

5.查询RTOFF,直到RTOFF位变1,已确认写操作已经完成。

仅当CNF标志位被清除时,写操作才能进行,这个操作至少需要3个RTCCLK周期。

RTC相关库函数

  • RTC时钟源和时钟操作函数:
 void RCC_RTCCLKConfig(uint32_t  CLKSource);//时钟源选择
 void RCC_RTCCLKCmd(FunctionalState NewState)//时钟使能
  • RTC配置函数(预分频,计数值):
void RTC_SetPrescaler(uint32_t PrescalerValue);//预分频配置:PRLH/PRLL
void RTC_SetCounter(uint32_t CounterValue);//设置计数器值:CNTH/CNTL
void RTC_SetAlarm(uint32_t AlarmValue);//闹钟设置:ALRH/ALRL
  • RTC中断设置函数:
void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState);//CRH
  • RTC配置函数:
void RTC_EnterConfigMode(void);//允许RTC配置 :CRL位 CNF
void RTC_ExitConfigMode(void);//退出配置模式:CRL位 CNF
  • RTC同步函数:
void RTC_WaitForLastTask(void);//等待上次操作完成:CRL位RTOFF
 void RTC_WaitForSynchro(void);//等待时钟同步:CRL位RSF
  • RTC相关状态位获取清除函数:
FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG);
void RTC_ClearFlag(uint16_t RTC_FLAG);
ITStatus RTC_GetITStatus(uint16_t RTC_IT);
void RTC_ClearITPendingBit(uint16_t RTC_IT);
  • 其他相关函数(BKP等)
PWR_BackupAccessCmd();//BKP后备区域访问使能
RCC_APB1PeriphClockCmd();//使能PWR和BKP时钟
RCC_LSEConfig();//开启LSE,RTC选择LSE作为时钟源	
PWR_BackupAccessCmd();//BKP后备区域访问使能
uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR);//读BKP寄存器
void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);//写BKP

配置RTC步骤

  • ①使能PWR和BKP时钟:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
  • ② 使能后备寄存器访问:
PWR_BackupAccessCmd(ENABLE); //使能 RTC 和后备寄存器访问
  • ③复位备份区域,开启外部低速振荡器。
BKP_DeInit();//复位备份区域
  • ④ 配置RTC时钟源,使能RTC时钟:
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //选择 LSE 作为 RTC 时钟(RCC_RTCCLKSource_LSI 和 RCC_RTCCLKSource_HSE_Div128)
RCC_RTCCLKCmd(ENABLE); //使能 RTC 时钟
  • ⑤ 设置RTC预分频系数:RTC_SetPrescaler();
RTC_EnterConfigMode();/// 允许配置	
RTC_SetPrescaler(32767); //设置RTC预分频的值
RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成
  • ⑥ 设置时间:RTC_SetCounter();
RTC_EnterConfigMode();/// 允许配置
void RTC_SetCounter(uint32_t CounterValue);
RTC_WaitForLastTask();	//等待最近一次对RTC寄存器的写操作完成
  • ⑦开启相关中断(可选):
void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState);//RTC_ITConfig(RTC_IT_SEC, ENABLE); //使能 RTC 秒中断
  • ⑧编写中断服务函数:
RTC_IRQHandler();
  • ⑨部分操作要等待写操作完成和同步。
   RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成
   RTC_WaitForSynchro();	//等待RTC寄存器同步 

具体的代码,库函数写的太多了,我会用CubeMx配置下,用HAL库写一个例程,几十行就可以解决RTC

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rtc使用 的相关文章

  • f103 hal RTC_alarm使用方法

    1 初始化RTC RTC handle span class token punctuation span Instance span class token operator 61 span span class token consta
  • STM32 RTC晶振不起振原因

    今天下载程序后发现程序像死机一样 xff0c 然后仿真发现 xff0c 程序一直在等待RTC晶振就绪 xff0c 最终超时死机 然后检查的电路看都没问题 xff0c 最后通过查阅资料和咨询厂家了解到可能是晶振匹配电容的原因 如下为记录 xf
  • Undefined symbol RTC_DateStruct (referred from main.o).

    被自己蠢哭了 我是两个工程文件合在一起用的 一个工程中的 c文件变量定义之后是在另一个 c文件中共用的所以用了 extern RTC TimeTypeDef RTC TimeStruct extern RTC DateTypeDef RTC
  • 1.0 DS1302-外部RTC

    一 综述 DS1302是美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片 xff0c 因为应用非常广泛 xff0c 结果就导致了大量的国产仿制品 xff0c GC1302是一款国产DS1302仿制芯片 xff0c 使用方法
  • 树莓派RTC

    文章目录 一 RTC准备二 RTC芯片三 为什么使用hwclock显示找不到硬件总结 一 RTC准备 在使能树莓派RTC之前 xff0c 需要先为树莓派RTC模块安装电池 xff08 一般为纽扣电池 xff09 二 RTC芯片 树莓派4B使
  • hallib_RTC

    RTC 一 配置参数 1 2 只有使能RTC之后才能选LSE 二 编写应用代码 1 在mspinit里面加上这个函数 xff0c 打开秒中断 xff0c 这个函数在 h文件里面 span class token function HAL R
  • rtc使用

    首先我们要知道 xff0c rtc并非片上外设 xff0c 所以要通过连接总线以读取数据 什么是RTC RTC Real Time Clock xff1a 实时时钟 RTC是个独立的定时器 RTC模块拥有一个连续计数的计数器 xff0c 在
  • stm32f407 RTC不更新问题排查

    1 问题 在做stm32f407rtc实验时 xff0c 代码是用cubemx生成的 xff0c 通过串口打印出时间值 xff0c 1s打印一次 但是结果与料想中的不一致 发现打印出来的值一直不更新 按下复位键 xff0c 后时间会更新一次
  • STM32CubeMX之RTC电子钟

    STM32CubeMX之RTC电子钟 1 简介 实时时钟是一个独立的定时器 RTC模块拥有一组连续计数的计数器 在相应软件配置下 可提供时钟日历的功能 修改计数器的值可以重新设置系统当前的时间和日期 2 特性 可编程的预分频系数 分频系数最
  • 深入理解 TCP 拥塞控制

    随着网络技术的飞速发展 越来越多的工作依赖网络完成 基于互联网的实时通信系统的质量和实时性也很大程度也依赖于网络质量 然而 在Internet的TCP IP体系结构中 拥塞的发生是其固有的属性 网络拥塞是指用户对网络资源 包括链路带宽 存储
  • 拥抱国产化,推动产业互联网,拍乐云做了什么?

    新一轮科学技术进步法的修订中提出要健全科技创新保障措施 完善创新体系 为促进实现高水平科技自立自强提供法治保障 随着国家对信息安全 科学自主的要求越来越高 音视频技术作为视频会议 应急指挥 办公协同 远程银行等行业场景的基础技术支撑 其独立
  • 深入解析QUIC协议

    QUIC Quick UDP Internet Connection 是Google提出的一个基于UDP的传输协议 因其高效的传输效率和多路并发的能力 已经成为下一代互联网协议HTTP 3的底层传输协议 除了应用于Web领域 它的优势同样适
  • 【STM32】详解RTC实时时钟的概念和配置&示例代码

    一 什么是RTC RTC Real time Clock 实时时钟 本质上是一个支持BCD编码的定时器 计数器 主电源断电后能够由电池供电 使其时钟跳转依然正常 二 STM32F4芯片内的RTC功能 日历时钟 时分秒 年月日 星期 两个闹钟
  • 拍乐云首发音视频「分组讨论」开放能力,开启线上群聊互动新玩法

    苹果CEO库克近日宣布 因疫情反复 苹果将无限期推迟员工重返办公室计划 疫情常态化之下 在线工作 在线学习 在线娱乐也都变得常态化 我们似乎开始接受这种 All in在线 的模式 并对在线互动的体验提出了更高要求 当我们想要实现一个校招的网
  • 高质量、高并发的实时通信架构设计与探索

    中国互联网络信息中心 CNNIC 近日发布的第 47 次 中国互联网络发展状况统计报告 显示 截至 2020 年 12 月 我国网民规模达 9 89 亿 随着社会信息化水平持续提升及电子设备加速普及 手机网民规模持续增长 基本实现对全体网民
  • ClearCase 中是否有 RTC 等效的“挂起模式”?

    我发现 RTC 中的 暂停更改设置 非常有用 而且由于我们也在使用 ClearCase 数十个用户 我想知道 ClearCase 中是否也提供该功能 如果不是 它可以由 script trigger hook 生成吗 我们使用UCM 我想解
  • 何时在 RTC 源控制中的流中使用多个组件

    在我看来 RTC 源代码控制组件是文件和文件夹的逻辑分组 我什么时候应该在 RTC 源控制中的流中使用多个组件 方法一 我有多个 java Eclipse 项目 但我将这些项目添加到单个流中的一个组件中 这些项目被打包到一个部署文件中 方法
  • 如何使用纯 java api 更改 RTC 流和组件所有权?

    我需要更改组件和流的所有权 我正在尝试查找任何用于此目的的 API 请帮忙 这里我有一个代码片段 但我不知道它是如何工作的 IScmService scmService null IRepositoryItemService itemSer
  • Polarion ALM 工具 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我们正在公司寻找完整的 ALM 解决方案 我们正在研究 Polarion ALM 和 RTC 有人听说过 Polarion 完整的 ALM 工具吗 如
  • Eclipse 将编译器合规性更新到 1.7

    我在更新 Eclipse 工作区的编译器合规性时遇到一些问题 我实际上使用的是 RTC 但它本质上是 Eclipse 目前 它使用 1 6 的 jdk 因此我可以将 JDK 合规性更改为 1 6 的限制 但是 我在我的项目中使用 jdk 1

随机推荐

  • 【元器件学习笔记—电阻】(6)——电阻并联电路

    电阻串联和并联电路 任何复杂的电路经过各种等效和简化后都可以归纳为两种电路 xff1a 一是串联电路 xff0c 二是并联电路 电阻并联电路 并联电路与串联电路是完全不同的电路 xff0c 它们之间不能相互等效 xff0c 并联电路的一些特
  • 【元器件学习笔记—电阻】(7)——电阻串并联电路

    电阻串并联电路 电阻串并联电路是电阻串联电路与电阻并联电路的组合电路 下图所示是由 3 只电阻器构成的电阻器串并联电路 电路中的电阻 R1 和 R2 并联 xff0c 然后再与电阻 R3 串联 xff0c 这就是纯电阻的串并联电路 纯电阻器
  • 【元器件学习笔记—电阻】(8)——电阻分压电路

    电阻分压电路 电阻分压电路工作原理 下图所示是典型的电阻分压电路 xff08 没有接入负载电路 xff09 xff0c 电阻分压电路由 和 两只电阻构成 电路中有电压输入端和电压输出端 1 电路结构 输入电压 加在电阻 和 上 xff0c
  • 小程序验证手机号和身份证号码

    if isPhone params mobile Toast content 39 请填写正确的手机号 39 type 39 error 39 return false var idCardMsg 61 identityIDCard par
  • 神州战神笔记本清灰+换硅脂-记录

    文章目录 Introduction拆清灰涂抹硅脂安装开机测试 Introduction 笔记本购买于2020年4月份左右 xff0c 至今已使用2年半时间 CPU是i7 9750H xff0c 基准频率是2 6GHz 用control ce
  • 【PADS VX2.4下载与安装】

    PADS VX2 4下载与安装 电脑 xff1a Windows10 64bit 一 下载地址 链接 xff1a https pan baidu com s 1yTAU5Hymrc1i8MhALwbsrA 提取码 xff1a hljd 二
  • 【FreeRTOS】详细讲解FreeRTOS中消息队列并通过示例讲述其用法

    讲解FreeRTOS中消息队列及其用法 使用消息队列的原因消息队列函数解析示例遇到的问题 使用消息队列的原因 在裸机系统中 xff0c 两个程序间需要共享某个资源通常使用全局变量来实现 xff1b 但在含操作系统 下文就拿FreeRTOS举
  • 【FreeRTOS】详细讲解FreeRTOS里中断管理并通过示例讲述其用法

    文章目录 中断函数解析FreeRTOS中断使用示例 中断 大家看到中断后 xff0c 有没有想到一个名词 异常呢 xff1f 若大家想到了 xff0c 但是记不起相关概念 xff1b 或者是 xff0c 大家没想到这个名词 xff0c 没关
  • 【嵌入式软件开发实习】个人面试记录及其总结(一)

    文章目录 问题一 xff1a 使用宏定义完成两个数据的交换问题二 xff1a 制作一个函数接口判断函数参数输入是否符合要求 xff0c 如果符合要求就返回部分输入 xff0c 如果不符合就返回no result问题三 xff1a 什么是结构
  • 嵌入式经典通信总线协议——RS232和RS485

    UART 通信的不足 注意 xff1a TTL电平信号通信距离应该 lt 61 1 5米 两种电平标准 RS232协议 因为控制器一般使用 TTL 电平标准 xff0c 所以常常会使用 MA3232 芯片对 TTL 及 RS 232电平的信
  • 把所阅读的文章背景/主题变成白色

    今天在CSDN找SVD分解的资料 xff0c 找到了一篇写的很好的文章 xff0c 但是它的主题是黑色的 xff0c 是黑色的 xff01 作为黑色主题深恶痛绝人士 xff0c 于是我便想把这篇文章的主题改成白色 我们作为读者似乎并没有这个
  • 计算机保研专业课必备之数据结构

    数据结构保研面试准备 算法的五大特征 有穷性 有限的步骤确定性 不可二义性可行性 每一步都是通过执行有限次数完成的输入 零个或多个输入输出 至少有一个或多个输出 O n 的大O是什么意思 xff1f 什么是时间复杂度 大O表示的是最坏情况下
  • Go语言快速的一键生成一个gRPC服务

    目录 前言 介绍 使用命令行工具 micro 生成 gRPC 服务 安装 xff1a 创建项目 xff1a 安装 protobuf 和依赖项 xff1a 构建并运行服务 xff1a 总结 前言 由于近期因为一些事情很久没更了今天带来一个Go
  • 编程实现在str1中查找str2的初始位置

    问题描述 有两个字符串str1和str2 xff0c 它们的长度都不超过100个字符 请编程实现在str1中查找str2的初始位置 输入形式 有两行输入 xff0c 第一行输入字串str1 xff0c 第二行输入字串str2 输出形式 一个
  • 数据挖掘Java——KNN算法的实现

    一 KNN算法的前置知识 k 近邻 xff08 kNN k NearestNeighbor xff09 是在训练集中选取离输入的数据点最近的k个邻居 xff0c 根据这个k个邻居中出现次数最多的类别 xff08 最大表决规则 xff09 x
  • thinkPHP生成微信支付平台证书

    1 先安装微信支付V3版本 xff1b 2 在目录 vendor wechatpay wechatpay下执行以下代码 xff1b 3 在本地VScode编辑器的终端运行命令行 xff0c 执行以下代码 xff1a composer exe
  • 数据挖掘Java——DBSCAN算法的实现

    一 DBSCAN算法的前置知识 DBSCAN算法 xff1a 如果一个点q的区域内包含多于MinPts个对象 xff0c 则创建一个q作为核心对象的簇 然后 xff0c 反复地寻找从这些核心对象直接密度可达的对象 xff0c 把一些密度可达
  • 数据挖掘Java——Kmeans算法的实现

    一 K means算法的前置知识 k means算法 xff0c 也被称为k 平均或k 均值 xff0c 是一种得到最广泛使用的聚类算法 相似度的计算根据一个簇中对象的平均值来进行 算法首先随机地选择k个对象 xff0c 每个对象初始地代表
  • 直立车学习笔记(一)

    直立车是通过两个电机的前后加速度来维持车体保持一定的角度 xff0c 调直立对于PID的理解有一个质的飞跃 xff0c 接下来我会不定期更新我学习直立车的成果和调PID的经历 xff0c 记录一下我的成果 xff0c 也让其他人学习一下 x
  • rtc使用

    首先我们要知道 xff0c rtc并非片上外设 xff0c 所以要通过连接总线以读取数据 什么是RTC RTC Real Time Clock xff1a 实时时钟 RTC是个独立的定时器 RTC模块拥有一个连续计数的计数器 xff0c 在