当前位置: 首页 > news >正文

STM32 RTC 实时时钟说明

目录

背景

RTC(实时时钟)和后备寄存器

32.768HZ 如何产生1S定时

RTC配置程序

第一次上电RTC配置

第1步、启用备用寄存器外设时钟和PWR外设时钟

第2步、使能RTC和备份寄存器访问

第3步、备份寄存器初始化

第4步、开启LSE

第5步、等待LSE启动后稳定状态

第6步、配置LSE为RTC时钟源

第7步、使能RTC时钟

第8步、设置RTC预分频

第9步、设置秒中断

第10步、秒中断函数封装


背景

通过本篇文章对常用的RTC时钟(实时时钟)进行说明. 以及了解如何通过程序来区分上电复位和管脚复位。

RTC(实时时钟)和后备寄存器

RTC 和后备寄存器通过一个开关供电,在 V DD 有效时该开关选择 V DD 供电,否则由 V BAT 引脚供电。后 备寄存器(10 16 位的寄存器 ) 可以用于在关闭 V DD 时,保存 20 个字节的用户应用数据。 RTC 和后备寄 存器不会被系统或电源复位源复位;当从待机模式唤醒时,也不会被复位。
实时时钟具有一组连续运行的计数器,可以通过适当的软件提供日历时钟功能,还具有闹钟中断和
阶段性中断功能。 RTC 的驱动时钟可以是一个使用外部晶体的 32.768kHz 的振荡器、内部低功耗 RC 振荡器或高速的外部时钟经128 分频。内部低功耗 RC 振荡器的典型频率为 40kHz 。为补偿天然晶体的偏差,可以通过输出一个512Hz的信号对RTC的时钟进行校准。RTC具有一个32位的可编程计数器, 使用比较寄存器可以进行长时间的测量。有一个20 位的预分频器用于时基时钟,默认情况下时钟为 32.768kHz时,它将产生一个 1 秒长的时间基准。

RTC晶振 (LSE:外部低速时钟):32.768KHZ

STM32单片机内部集成了一个40KHZ的RC振荡器,内部RC振荡器会会因为温度产生漂移,精度不够高,因此使用32.768HZ的LSE作为RTC的时钟源。RTC备用电池,在单片机主电源断开的时候,给RTC时钟供电,也可以用于保存备用存储器中的数据(计时器的时间值,以及用户临时存放的数据),备用寄存器 20字节保存用户数据

32.768HZ 如何产生1S定时信号

32.768KHZ的时钟晶振产生的振荡信号经过石英钟内部 分频器进行15次分频( 2的15次方就是32768)后得到1HZ秒信号,即秒针每秒钟走一下,石英钟内部分频器只能进行 15 次分频要是换成别的频率的晶振(比如说STM32中的内部RC振荡器40KHZ),15次分频后就不是1HZ的秒信号,时钟就不准了。32.768K=32768=2的15次方,数据转换比较方便、精确。
1970-01-01主要是因为这是Unix时间戳的起点。Unix时间戳是从1970年1月1日开始计算的秒数,被广泛用于计算机系统中以表示和记录时间.

RTC配置程序

RTC的配置有两种情况:
1)第一次上电
2)非第一次上电,且备用电池有电情况。

第一次上电RTC配置

void RTC_First_Config(void){ //首次启用RTC的设置RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//启用PWR和BKP的时钟(from APB1)PWR_BackupAccessCmd(ENABLE);//后备域解锁BKP_DeInit();//备份寄存器模块复位RCC_LSEConfig(RCC_LSE_ON);//外部32.768KHZ晶振开启   while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);//等待稳定    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//RTC时钟源配置成LSE(外部低速晶振32.768KHZ)    RCC_RTCCLKCmd(ENABLE);//RTC开启    RTC_WaitForSynchro();//开启后需要等待APB1时钟与RTC时钟同步,才能读写寄存器    RTC_WaitForLastTask();//读写寄存器前,要确定上一个操作已经结束RTC_SetPrescaler(32767);//设置RTC分频器,使RTC时钟为1Hz,RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1)   RTC_WaitForLastTask();//等待寄存器写入完成	//当不使用RTC秒中断,可以屏蔽下面2条
//    RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能秒中断   
//    RTC_WaitForLastTask();//等待写入完成
}

第1步、启用备用寄存器外设时钟和PWR外设时钟

通过stm32的数据手册可以知道RTC需要是能APB1

RCC_APB1Periph_PWR 

主要用于控制电源管理单元(Power Control Unit,简称PWR)的时钟使能。

在STM32中,RCC(复位和时钟控制)模块负责管理微控制器的时钟树和外设的晶振、内部振荡器以及各种时钟源的分频和倍频。具体到RCC_APB1Periph_PWR ,它是APB1总线上的一个外设,用于控制电源管理单元(PWR)的时钟使能。通过使能或失能PWR的时钟,可以控制电源管理功能的工作状态,进而影响整个系统的功耗管理。

LSE作为RTC时钟源之后,即使VDD断电,仍然可以通过RTC纽扣电池(备用电池)使得RTC外设继续工作。因此要启用PWR外设的时钟!

RCC_APB1Periph_BKP

是和后备存储器相关

第2步、使能RTC和备份寄存器访问

后面需要对RTC进行分频设置和备份寄存器初始化!

第3步、备份寄存器初始化

第4步、开启LSE

第5步、等待LSE启动后稳定状态

第6步、配置LSE为RTC时钟源

stm32数据手册中的时钟树可以RTC的时钟源有三个

1)LSE

2)  LSI(40khz)

3)HSE的128分频

第7步、使能RTC时钟

第8步、设置RTC预分频

1)等待 RTC 寄存器(RTC_CNT, RTC_ALR and RTC_PRL)与 RTC 的 APB 时钟同步

2)等待上一次rtc寄存器写操作完成

3)设置预分频

4)等待rtc寄存器写完成

固件库函数具体实现(ST公司提供)

所以要特别注意实际上的预分频数为设置值+1

第9步、设置秒中断

第10步、秒中断函数封装

void RTC_IRQHandler(void){ //RTC时钟1秒触发中断函数(名称固定不可修改)if (RTC_GetITStatus(RTC_IT_SEC) != RESET){}RTC_ClearITPendingBit(RTC_IT_SEC); RTC_WaitForLastTask();
}

RTC配置程序(用于main函数调用)

void RTC_Config(void){ //实时时钟初始化//在BKP的后备寄存器1中,存了一个特殊字符0xA5A5//第一次上电或后备电源掉电后,该寄存器数据丢失,表明RTC数据丢失,需要重新配置if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5){//判断寄存数据是否丢失       RTC_First_Config();//重新配置RTC        BKP_WriteBackupRegister(BKP_DR1, 0xA5A5);//配置完成后,向后备寄存器中写特殊字符0xA5A5}else{//若后备寄存器没有掉电,则无需重新配置RTC//这里我们可以利用RCC_GetFlagStatus()函数查看本次复位类型if (RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET){//这是上电复位}else if (RCC_GetFlagStatus(RCC_FLAG_PINRST) != RESET){//这是外部RST管脚复位}       RCC_ClearFlag();//清除RCC中复位标志//虽然RTC模块不需要重新配置,且掉电后依靠后备电池依然运行//但是每次上电后,还是要使能RTCCLKRCC_RTCCLKCmd(ENABLE);//使能RTCCLK        RTC_WaitForSynchro();//等待RTC时钟与APB1时钟同步//当不使用RTC秒中断,可以屏蔽下面2条
//        RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能秒中断        
//        RTC_WaitForLastTask();//等待操作完成}}

可用的部分是前面的10个,以为备份寄存器为20个字节。

RCC_FLAG_PORRST就是上电复位、RCC_FLAG_PINRST管脚复位

相关文章:

STM32 RTC 实时时钟说明

目录 背景 RTC(实时时钟)和后备寄存器 32.768HZ 如何产生1S定时 RTC配置程序 第一次上电RTC配置 第1步、启用备用寄存器外设时钟和PWR外设时钟 第2步、使能RTC和备份寄存器访问 第3步、备份寄存器初始化 第4步、开启LSE 第5步、等待LSE启动后稳定状态 第6步、配置LSE为…...

微服务SpringCloud Alibaba组件nacos教程【详解naocs基础使用、服务中心配置、集群配置,附有案例+示例代码】

一.Nacos教程 文章目录 一.Nacos教程1.1 Nacos简介1.2 nacos基本使用直接下载打包服务源码方式启动 1.3 创建nacos客服端1.4 nacos集群配置1.5 nacos配置中心 1.1 Nacos简介 nacos是spring cloud alibaba生态中非常重要的一个组件,它有两个作用: 1:注册…...

深度整理总结MySQL——Expalin指南(二)

Expalin指南(二 前言Extrano tables usedImpossible whereNo matching min/max rowUsing indexUsing index conditionUsing whereUsing join buffer (Block Nested Loop)Not existsUsing intersect(...)、Using union(...)和Using sort_union(...)Zero limitUsing filesortUsin…...

【机器学习】常见采样方法详解

在机器学习领域,数据采样(Sampling)是一项至关重要的技术。它不仅影响模型的训练效率,还直接关系到模型的性能与泛化能力。本文将从基础概念出发,逐步深入介绍机器学习中常见的采样方法,帮助读者全面理解并…...

Kubernetes 最佳实践:Top 10 常见 DevOps/SRE 面试问题及答案

1. 如何在 Kubernetes 中设置资源请求和限制? 资源请求确保容器有最小资源量(CPU/内存),而限制则强制容器消耗的最大资源量。这有助于高效资源分配并防止资源争用。 示例: resources:requests:memory: "256Mi&…...

Python自动化办公之Excel拆分

在日常办公中,我们经常需要将包含多个Sheet页的Excel文件拆分成多个独立的Excel文件。例如,当我们要把一份Excel表格发给各部门确认时,出于控制信息知悉范围、确保数据保密性等方面的考虑,每个部门仅需查看和确认与自己部门对应的…...

Mac上搭建宝塔环境并部署PHP项目

安装Docker Desktop》搭建Centos版本的宝塔环境》部署PHP项目 1. 下载Docker for mac 软件:https://www.docker.com/ 或使用终端命令:brew install --cask --appdir/Applications docker 2. 使用命令安装宝塔环境的centos7系统: docker pul…...

qt 控件的焦点事件

在 Qt 中,设置焦点策略是通过 QWidget 的 setFocusPolicy() 方法来实现的。焦点策略控制了一个控件何时和如何获取焦点。Qt 提供了几种常见的焦点策略,以帮助管理控件的焦点行为。 常见的焦点策略 Qt::NoFocus:控件不接受焦点。Qt::TabFocus&…...

深度学习_学习笔记

pandas Pandas 是一个强大的数据分析库,它封装和集成了多个其他库的功能,以便为用户提供更加便捷的数据处理能力。 pandas与csv 都可用于处理csv文件(注意csv文件不是excel文件) csv 是 Python 标准库的一部分,适合…...

如何在 Elasticsearch 中设置向量搜索 - 第二部分

作者:来自 Elastic Valentin Crettaz 了解如何在 Elasticsearch 中设置向量搜索并执行 k-NN 搜索。 本文是三篇系列文章中的第二篇,深入探讨了向量搜索(也称为语义搜索)的复杂性以及它在 Elasticsearch 中的实现方式。 第一部分重…...

leetcode 面试经典 150 题:跳跃游戏 II

链接跳跃游戏 II题序号45题型数组题解贪心算法难度中等熟练度✅✅✅ 题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums…...

C++20 新特性解析

1. 概念(Concepts) 概念是 C++20 引入的一项重要特性,它允许程序员定义类型约束,从而在编译时检查模板参数是否符合某些要求。概念提供了模板参数的限制,使得模板代码更加可读和易于维护。 示例代码: #include <iostream> #include <concepts>// 定义一个…...

vue不是内部或外部命令?

问题&#xff1a;当我们在使用脚手架创建项目之前&#xff0c;执行了npm i vue/cli -g或yarn global add vue/cli之后&#xff0c;再执行vue --version无法执行&#xff0c;vue不是内部或外部命令。 前几天在学vue时也是遇到了这个问题&#xff0c;现在来分享一下解决方法。 …...

C#中的Frm_Welcome.Instance.Show(),是什么意思

Frm_Welcome.Instance.Show() 是一种常见的单例模式&#xff08;Singleton Pattern&#xff09;实现方式&#xff0c;通常用于在应用程序中确保某个窗体&#xff08;Form&#xff09;只有一个实例&#xff0c;并通过该实例显示窗体。以下是对这段代码的详细解释&#xff1a; 代…...

k8s优雅操作pod容器组

k8s优雅操作pod容器组 回退备份 kubectl get deploy deployName -o yaml>>deployName-bak-date "%Y-%m-%d".yaml获取副本数 replicasecho | kubectl get -o template deploy/deployName --template{{.spec.replicas}}停止容器组 kubectl scale deployment …...

【LeetCode: 1760. 袋子里最少数目的球 + 二分】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

动态规划LeetCode-416.分割等和子集

给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2&…...

kotlin-kapt

kotlin-kapt kotlin-kapt 是 Kotlin 的一个插件&#xff0c;专门用于处理注解处理器&#xff08;Annotation Processor&#xff09;。以下是对该插件的详细解释和指南&#xff1a; kotlin-kapt 是什么&#xff1f; kotlin-kapt 是 Kotlin 官方提供的一个插件&#xff0c;用于在…...

网络安全技术复习总结

1|0第一章 概论 1.网络安全发展阶段包括四个阶段&#xff1a;通信安全、计算机安全、网络安全、网络空间安全。 2.2017年6月1日&#xff0c;我国第一部全面规范网络空间安全的基础性法律《中华人民共和国网络安全法》正式实施。 3.2021年 6月10日&#xff0c;《中华人民共和…...

java 集合

Java集合框架&#xff08;Java Collections Framework&#xff09;是一个强大的工具库&#xff0c;旨在简化数据存储和操作的任务。它提供了一组接口、类和算法&#xff0c;帮助开发者高效地管理数据&#xff0c;如列表、集合和映射。下面是Java集合框架的详细介绍&#xff1a;…...

Java常见排序算法及代码实现

1、选择排序算法 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理是每次从未排序部分选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放到已排序部分的末尾。 2、冒泡排序算法 冒泡排序&#xff08;Bubble…...

130,[1] 攻防世界 very_easy_sql

进入靶场 典型SQL注入页面 先查看源码 访问 试试http://127.0.0.1/ 还尝试了其他都是nonono 回归第一个登录页面 提交的内容不在url处显示&#xff0c;反而第二个url页面会在url处显示 明白第一个页面是通过post方式提交&#xff0c;反正没得到什么信息&#xff0c;去抓…...

Spring Boot从入门到精通:核心知识点+实战指南

目录 一、Spring Boot 是什么&#xff1f;为什么它如此流行&#xff1f; 二、快速创建你的第一个Spring Boot应用 2.1 使用Spring Initializr生成项目 2.2 核心代码示例 三、深度解析Spring Boot核心机制 3.1 自动配置原理揭秘 3.2 自定义Starter实战 四、生产环境必备…...

深入探索现代CSS:从基础到未来趋势

引言&#xff1a;CSS的进化之路 CSS&#xff08;层叠样式表&#xff09;自1996年诞生以来&#xff0c;已从简单的样式描述语言发展为构建现代Web体验的核心技术。截至2023年&#xff0c;超过98%的网站使用CSS3技术&#xff0c;其发展历程见证了Web从静态文档到富交互应用的蜕变…...

python-leetcode 23.反转链表

题目&#xff1a; 给单链表的头节点&#xff0c;反转链表&#xff0c;并返回反转后的链表。 方法一&#xff1a;迭代 在遍历链表时&#xff0c;将当前节点的next指针改为指向前一个节点。由于节点没有引用其前一个节点&#xff0c;因此要先存储前一个节点&#xff0c;在更改引…...

Foundation CSS 可见性

Foundation CSS 可见性 引言 在网页设计中,CSS可见性是一个至关重要的概念。它决定了元素在网页上是否可见,以及如何显示。Foundation CSS 是一个流行的前端框架,它提供了丰富的工具和组件来帮助开发者构建响应式和可访问的网页。本文将深入探讨 Foundation CSS 中的可见性…...

DeepSeek模拟阿里面试——java基本语法

为了全面准备阿里Java高级程序员的面试&#xff0c;以下是针对数据类型和变量、运算符、流程控制的系统性复习和准备策略&#xff1a; 数据类型和变量 基本数据类型 整数类型&#xff1a;byte&#xff08;1字节&#xff09;、short&#xff08;2字节&#xff09;、int&#xf…...

大模型基本原理(二)——ChatGPT的工作原理

如何得到一个ChatGPT&#xff1f; 1、无监督预训练&#xff1a;通过大量的文本数据集进行无监督训练&#xff0c;得到一个基座模型&#xff08;只会续写文本&#xff09; 2、监督微调&#xff1a;通过一些人类撰写的高质量对话数据对基座模型进行监督微调&#xff0c;得到一个…...

TensorRT 8.6.1教程1-TensorRT简介

区分计算节点和数据节点 视频 TensorRT 教程 | 基于 8.6.1 版本 | 第一部分_哔哩哔哩_bilibili cookbook...

Seaweedfs(master volume filer) docker run参数帮助文档

文章目录 进入容器后执行获取weed -h英文中文 weed server -h英文中文 weed volume -h英文中文 关键点测试了一下&#xff0c;这个-volume.minFreeSpace string有点狠&#xff0c;比如设置值为10&#xff08;10%&#xff09;&#xff0c;它直接给系统只留下10%的空间&#xff0…...

深度求索(DeepSeek)的AI革命:NLP、CV与智能应用的技术跃迁

Deepseek官网&#xff1a;DeepSeek 引言&#xff1a;AI技术浪潮中的深度求索 近年来&#xff0c;人工智能技术以指数级速度重塑全球产业格局。在这场技术革命中&#xff0c;深度求索&#xff08;DeepSeek&#xff09;凭借其前沿的算法研究、高效的工程化能力以及对垂直场景的…...

探索RDMA技术:从基础到实践

1. 引言 在当今的高性能计算(HPC)和数据中心领域,数据传输的效率和速度至关重要。RDMA(Remote Direct Memory Access,远程直接内存访问)技术作为一种高效的网络通信机制,能够显著减少数据传输的延迟和CPU负载。本文将从基础到实践,详细介绍RDMA技术及其编程模型,帮助…...

Excel 笔记

实际问题记录 VBA脚本实现特殊的行转列 已知&#xff1a;位于同一Excel工作簿文件中的两个工作表&#xff1a;Sheet1、Sheet2。 问题&#xff1a;现要将Sheet2中的每一行&#xff0c;按Sheet1中的样子进行转置&#xff1a; Sheet2中每一行的黄色单元格&#xff0c;为列头。…...

Flutter编译运行android问题之JVM版本问题

错误1&#xff1a; FAILURE: Build failed with an exception. * What went wrong: Execution failed for task :audioplayers_android:compileDebugKotlin. > Inconsistent JVM-target compatibility detected for tasks compileDebugJavaWithJavac (1.8) and compileDebug…...

自动化遇到的问题记录(遇到问题就更)

总结回归下自己这边遇到的一些问题 “EOF错误”&#xff0c;获取不到csv里面的内容 跑多csv文件里的场景&#xff0c;部分场景的请求值为 1、检查csv文件里不能直接是[]开头的参数&#xff0c;把[]改到ms平台的请求参数里 2、有时可能是某个参数值缺了双引号的其中一边 met…...

解决 Flutter Device Daemon 启动失败问题的实践记录

解决 Flutter Device Daemon 启动失败问题的实践记录 最近在使用 Flutter 开发时踩了一个坑。看似是个小问题&#xff0c;但折腾了好久&#xff0c;最终通过日志分析和查阅资料才找到了解决办法。这里记录一下整个问题的排查过程&#xff0c;希望能帮助到遇到类似问题的小伙伴…...

中国通信企业协会 通信网络安全服务能力评定 证书使用说明

中国通信企业协会颁发的通信网络安全服务能力资格证书&#xff0c;是证明证书持有单位符合通信网络安全服务相应能力准则要求。证书持有单位在使用中国通信企业协会颁发的证书时&#xff0c;应遵守以下规定&#xff1a; 评定证书 证书持有单位必须遵守《中国通信企业协会通信网…...

《我在技术交流群算命》(三):QML的Button为什么有个蓝框去不掉啊(QtQuick.Controls由Qt5升级到Qt6的异常)

有群友抛出类似以下代码和运行效果截图&#xff1a; import QtQuick import QtQuick.ControlsWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")Button{anchors.centerIn: parentwidth: 100height: 40background: Rectangle {color: "red…...

多项式插值(数值计算方法)Matlab实现

多项式插值&#xff08;数值计算方法&#xff09;Matlab实现 一. 原理介绍二. 程序设计1. 构建矩阵2. 求解矩阵方程3. 作出多项式函数4. 绘制插值曲线5. 完整代码 三. 图例 一. 原理介绍 关于插值的定义及基本原理可以参照如下索引 插值原理&#xff08;数值计算方法&#xff…...

【AIGC】语言模型的发展历程:从统计方法到大规模预训练模型的演化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;语言模型的发展历程&#xff1a;从统计方法到大规模预训练模型的演化1 统计语言模型&#xff08;Statistical Language Model, SLM&#xff09;&#xff1a;统…...

[python]如何安装whl包并解决依赖关系(详细)

一、什么是whl文件&#xff1f; whl是一种预编译的二进制包文件&#xff0c;它主要用于安装python库。简单来讲whl就是一种已经编译好的python库文件。我们可以使用whl包来安装python库。 二、我们为什么需要使用whl文件来安装python库&#xff1f; 有的小伙伴可能会疑惑&…...

Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行

文章目录 Windows中使用Docker安装Anythingllm&#xff0c;基于deepseek构建自己的知识库问答大模型1. 安装 Docker Desktop2. 使用Docker拉取Anythingllm镜像2. 设置 STORAGE_LOCATION 路径3. 创建存储目录和 .env 文件.env 文件的作用关键配置项 4. 运行 Docker 命令docker r…...

用Kibana实现Elasticsearch索引的增删改查:实战指南

在大数据时代&#xff0c;Elasticsearch&#xff08;简称 ES&#xff09;和 Kibana 作为强大的数据搜索与可视化工具&#xff0c;受到了众多开发者的青睐。Kibana 提供了一个直观的界面&#xff0c;可以方便地对 Elasticsearch 中的数据进行操作。本文将详细介绍如何使用 Kiban…...

AI前端开发的国际化发展机遇:ScriptEcho助力全球化布局

在全球化的今天&#xff0c;互联网应用已不再局限于单一市场。高效便捷的前端开发方案成为企业拓展国际市场的关键。得益于人工智能技术的飞速发展&#xff0c;AI代码生成器 正在深刻改变前端开发模式&#xff0c;为国际化应用开发带来前所未有的机遇。然而&#xff0c;国际化开…...

本地基于GGUF部署的DeepSeek实现轻量级调优之一:提示工程(Prompt Engineering)(完整详细教程)

前文&#xff0c;我们在本地windows电脑基于GGUF文件&#xff0c;部署了DeepSeek-1.5B模型&#xff0c;如果想自行对模型进行训练&#xff0c;离线模式下加载本地的DeepSeek模型进行训练时&#xff0c;是不能直接使用GGUF文件进行训练。 请参照我的文章在本地部署好模型之后再继…...

基于 GEE 计算研究区年均地表温度数据

目录 1 代码解析 2 完整代码 3 运行结果 1 代码解析 &#xff08;1&#xff09;定义研究区&#xff1a; // 研究区的范围需要自己提前上传 var dataset table;// 将研究区显示在中心&#xff0c;后面的数字为缩放等级&#xff0c;范围从1 - 24 Map.centerObject(dataset,…...

编程语言的深度剖析:从语法到性能优化

引言 随着软件开发的不断进化&#xff0c;编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择&#xff1a;每一种语言都有独特的优势、特性和适用场景。然而&#xff0c;语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本…...

设计模式-结构型-外观模式

在软件开发中&#xff0c;随着功能的不断迭代&#xff0c;系统会变得越来越复杂&#xff0c;模块之间的依赖关系也会越来越深。这种复杂性会导致代码难以理解、维护和扩展。而外观模式&#xff08;Facade Pattern&#xff09;正是为了解决这一问题而生的。 一、外观模式简介 …...

uniapp中对于文件和文件夹的处理,内存的查询

目录 移动文件到指定文件夹 新增本地文件夹 设定本地文件过期时间&#xff0c;清除超时文件&#xff0c;释放内存 操作本地文件之----删除 uniapp获取设备剩余存储空间的方法 读取本地文件夹下的文件 移动文件到指定文件夹 function moveTempFile(tempFilePath, targetFo…...

计算机网络和操作系统常见面试题目(带脑图,做了延伸以防面试官深入提问)

呜哦~~(✪▽✪)曼波~~~~ 今天我们来聊聊计算机网络和操作系统的面试题目吧&#xff01;这些题目是面试中经常遇到的&#xff0c;曼波觉得掌握它们对面试非常有帮助哦&#xff01;(๑✧◡✧๑) --- 1. 计算机网络面试题目 1.1 OSI 七层模型是什么&#xff1f; 回答&#xff…...