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

ESP32-S3 入门学习笔记(四):LED实验

ESP32-S3 入门学习笔记(四):LED实验

开发板:正点原子ESP32S3
B站学习链接:link

1. GPIO&LED 简介

1.1 GPIO 简介

GPIO 是负责控制或采集外部器件信息的外设,主要负责输入输出功能。以下是ATK-MWS3S 模组的 GPIO 分布图。
在这里插入图片描述
从上面的图示中可见,黄色区域的管脚均可作为普通的 IO 端口使用。因此,在控制 LED灯时,我们可以自由选择任意一个管脚进行操作。但请注意,部分 IO 端口可能与 Flash 或PSRAM 等元件的管脚相关联,这就需要开发者在操作过程中参考相关技术手册,以避免潜在的问题。在正点原子ESP32S3 开发板中,模组的 IO1 被用来连接 LED 的负极,因此在本章的实验中,我们将主要对 IO1 进行操作。

1.2 LED 简介

LED,即发光二极管,其发光原理基于半导体的特性。在半导体中,有两类重要的载流子:电子,主要存在于 n 型半导体中;而空穴,则主要存在于 p型半导体中。当 n 型半导体与 p型半导体材料接触时,它们的交界处会形成一个特殊的层结。当对这个层结施加适当的电压时,层结中的空穴与电子会发生重组,并释放出能量。这些能量会以光子的形式被释放出来,从而产生可见光。这就是 LED 发光的基本原理。

1.2.1 LED 灯驱动原理

LED 驱动是指通过稳定的电源为 LED 提供适宜的电流和电压,确保其正常发光。 LED 驱动方式主要有恒流和恒压两种,其中,恒流驱动因其能限定电流而备受青睐。由于 LED 灯对电流变化极为敏感,一旦电流超过其额定值,可能导致损坏。因此,恒流驱动通过确保电流的稳定性,进而保障 LED 的安全运行。

1.2.2 LED 灯驱动方式

下面,我们来看一下 LED 两种驱动方式。
1) 灌入电流接法。指的是 LED 的供电电流是由外部提供电流,将电流灌入我们的 MCU;风险是当外部电源出现变化时,会导致 MCU 的引脚烧坏。其接法如下图所示。
在这里插入图片描述
(2) 输出电流接法。指的是由 MCU 提供电压电流,将电流输出给 LED;如果使用 MCU的 GPIO 直接驱动 LED,则驱动能力较弱,可能无法提供足够的电流驱动 LED。其接法如下图所示。
在这里插入图片描述
正点原子ESP32S3 开发板上的 LED 采用灌入电流接法,这种方式避免了 MCU 直接提供电压电流来驱动 LED,从而有效减轻了 MCU 的负载。这使得 MCU 能够更加专注于执行其他核心任务,进而提升了整体系统的性能和稳定性。

2. 硬件设计

2.1 例程功能

实验现象: LED 灯以 500ms 的频率交替闪烁。

2.2 硬件资源

1.LED:LED-IO1

2.3 原理图

本章用到的硬件有 LED 灯。电路在开发板上已经连接好,所以在硬件上不需要动任何东西,直接下载代码就可以测试使用。其连接原理图如下图所示:
在这里插入图片描述
从上图可知,若 IO1 输出低电平时,则 LED 亮起,反之,熄灭。

3. 程序设计

3.1 程序流程图

程序流程图能帮助我们更好的理解一个工程的功能和实现的过程,对学习和设计工程有很好的主导作用。下面看看本实验的程序流程图:
在这里插入图片描述

3.2 GPIO 函数解析

ESP-IDF 提供了丰富的 GPIO 操作函数,开发者可以在 esp-idf-v5.3.1\components\driver\gpio路径下找到相关的 gpio.c 和 gpio.h 文件。在 gpio.h 头文件中,你可以找到 ESP32-S3 的所有 GPIO 函数定义。接下来,作者将介绍一些常用的 GPIO 函数,这些函数的描述及其作用如下:

  1. GPIO 配置函数
    该函数用来配置 GPIO 的模式、上下拉等功能,其函数原型如下所示:
esp_err_t gpio_config(const gpio_config_t *pGPIOConfig)

该函数的形参描述如下表所示:
在这里插入图片描述
返回值: ESP_OK 表示配置成功, ESP_FAIL 表示配置失败。
pGPIOConfig 为 GPIO 配置结构体指针,下面来看一下 gpio_config_t 结构体中的变量。

/* GPIO 配置参数 */
typedef struct {
uint64_t pin_bit_mask; /* 配置引脚位 */
gpio_mode_t mode; /* 设置引脚模式 */
gpio_pullup_t pull_up_en; /* 设置上拉 */
gpio_pulldown_t pull_down_en; /* 设置下拉 */
gpio_int_type_t intr_type; /* 中断配置 */
} gpio_config_t;

关于各个参数有哪一些看下表说明:
在这里插入图片描述
在上表中,可填参数均可在 gpio_types.h 文件中找到。这些参数通常是通过枚举类型(enum)定义的,它们为特定的 GPIO 模式或配置提供了预定义的数值。当我们需要为结构体变量(如 gpio_mode_t)设置参数时,我们可以查阅 gpio_types.h 文件,找到对应的枚举类型,并从中选择适当的数值。这样,我们可以确保为GPIO接口设置的模式或配置是准确和有效的。
2. 设置管脚输出电平
该函数用于配置某个管脚输出电平,该函数原型如下所示:

esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t level);

该函数的形参描述如下表所示:
在这里插入图片描述
返回值: ESP_OK 表示设置成功, ESP_FAIL 表示设置失败。
3. 获取管脚电平
该函数用于获取某个管脚的电平,该函数原型如下所示:

esp_err_t gpio_get_level(gpio_num_t gpio_num);

该函数的形参描述如下表所示:
在这里插入图片描述
返回值: ESP_OK 表示获取成功, ESP_FAIL 表示获取失败。
上述函数,便是本实验所需的核心 GPIO 函数。

3.3 LED 驱动解析

在项目\components路径下新增一个 LED文件夹,用于存放 led.c 和 led.h 这两个文件。其中 led.h 文件负责声明 LED 相关的函数和变量,而 led.c文件则实现 LED 的驱动代码。下面,我们将详细解析这两个文件的实现内容。正点原子官方代码运行时存在问题,于是重写了相关代码,运行测试后没有问题

  1. led.h 文件
#ifndef __LED_H_
#define __LED_H_#include "driver/gpio.h"/* 引脚定义 */
#define LED_GPIO_PIN GPIO_NUM_1 /* LED 连接的 GPIO 端口 */
/* 引脚的输出的电平状态 */
enum GPIO_OUTPUT_STATE
{PIN_RESET,PIN_SET
};/* 函数声明*/
void led_init(void); /* 初始化 LED */
void led(int stat);
void led_toggle(void);#endif
  1. led.c 文件
#include "led.h"/**
* @brief 初始化 LED
* @param 无
* @retval 无
*/
void led_init(void)
{gpio_config_t gpio_init_struct = {0};gpio_init_struct.intr_type = GPIO_INTR_DISABLE; /* 失能引脚中断 */gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT; /* 输入输出模式 */gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE; /* 使能上拉 */gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE; /* 失能下拉 */gpio_init_struct.pin_bit_mask = 1ull << LED_GPIO_PIN; /* 设置的引脚的位掩码*/gpio_config(&gpio_init_struct); /* 配置 GPIO */led(1);
}void led(int stat){gpio_set_level(LED_GPIO_PIN, stat);
}void led_toggle(){gpio_set_level(LED_GPIO_PIN, !(gpio_get_level(LED_GPIO_PIN)));
}

在.c 文件中,首先对 gpio_init_struct 结构体变量进行了参数配置。接着,调用gpio_config 函数,利用该配置变量完成了 GPIO 的初始化工作。

3.4 CMakeLists.txt 文件

具体原理请参考博文:link
/component/LED下的CMakeLists.txt 文件

idf_component_register(SRCS "led.c" INCLUDE_DIRS "."REQUIRES "driver")

整个项目下的CMakeLists.txt 文件

cmake_minimum_required(VERSION 3.16)include($ENV{IDF_PATH}/tools/cmake/project.cmake)
set(EXTRA_COMPONENT_DIRS "./component")      //加入组件
project(project-name)

3.5 实验应用代码

打开 main/main.c 文件,该文件定义了工程入口函数,名为 app_main。该函数代码如下。

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "nvs_flash.h"
#include "led.h"/**
* @brief 程序入口
* @param 无
* @retval 无
*/
void app_main(void)
{esp_err_t ret;ret = nvs_flash_init(); /* 初始化 NVS */if (ret == ESP_ERR_NVS_NO_FREE_PAGES|| ret == ESP_ERR_NVS_NEW_VERSION_FOUND){ESP_ERROR_CHECK(nvs_flash_erase());ret = nvs_flash_init();} led_init(); /* 初始化 LED */while(1){led_toggle();vTaskDelay(500); /* 延时 500ms */}}

上述应用代码中,首先通过调用 nvs_flash_init 函数来初始化 NVS。若初始化时遇到没有足够空闲页面或检测到新版本的情况,代码会先擦除整个 NVS 分区,并随后重新进行初始化。这种处理方式旨在确保 NVS 在特定错误条件下能够被重置并重新使用。紧接着,代码调用led_init 函数来初始化 LED。在随后的 while 循环中,利用 led_toggle()来定期翻转LED 的电平状态,每次翻转间隔为 500 毫秒,从而实现了 LED 的闪烁效果。

4. 下载验证

下载完之后,可以看到 LED 以每次 500ms 闪烁。

相关文章:

ESP32-S3 入门学习笔记(四):LED实验

ESP32-S3 入门学习笔记&#xff08;四&#xff09;&#xff1a;LED实验 开发板&#xff1a;正点原子ESP32S3 B站学习链接&#xff1a;link 1. GPIO&LED 简介 1.1 GPIO 简介 GPIO 是负责控制或采集外部器件信息的外设&#xff0c;主要负责输入输出功能。以下是ATK-MWS3S…...

clickhouse#复制修改数据

需求 在ClickHouse表中存在一些数据&#xff0c;你需要复制其中几行数据&#xff0c;这个复制不是完全复制&#xff0c;额外需要修改其中某几列数据项。 语句 INSERT INTO xxx_table SELECT * REPLACE ({except_value_1} AS {column_name_1},...{except_value_n} AS {colum…...

Java安全之cc链学习集合

CC1 InvokerTransformer https://blog.csdn.net/weixin_53912233/article/details/137786954 LazyMap https://blog.csdn.net/weixin_53912233/article/details/137787763 CC1链学习记录_cc1 链子 学习-CSDN博客 Java反序列化Commons-Collections篇02-CC1链补充 | Drunk…...

分享:google高级搜索常用的4个入口

网站和文件&#xff1a;google.com/advanced_search图片&#xff1a;google.com/advanced_image_search视频&#xff1a;google.com/advanced_video_search书籍&#xff1a;google.com/advanced_book_search...

内存四区(堆)

在上一次分享中&#xff0c;我和大家分享了栈区&#xff0c;今天栈区来了。 而内存四区中&#xff0c;堆区是干嘛的呢&#xff1f; 堆区&#xff0c;也是用来存放数据的&#xff0c;只不过呢&#xff0c;堆区中的数据的生死存亡是由程序员来控制的。 当然如果你一直不管堆区…...

Ldap高效数据同步- MirrorMode双主复制模式配置详解(下)

#作者&#xff1a;朱雷 上篇&#xff1a;《Ldap高效数据同步- MirrorMode双主复制模式配置详解&#xff08;上&#xff09;》 链接: link 文章目录 三、配置Mirror复制类型3.3. 在ldap-0上增加test2用户3.4. 在ldap-1上查看3.5. 在ldap-1上增加test4用户3.7. 最终两台LDAP数据…...

亚组风险比分析与可视化

1. 结果解读 1.1 风险比概述 1.1.1 风险比基本概念 风险比(Hazard Ratio)用于衡量治疗组与对照组事件发生的风险差异。 风险比为1,表示两组风险相同;小于1,治疗组风险低;大于1,治疗组风险高。 1.1.2 性别亚组分析 A性风险比小于1,表明治疗对A性有积极效果,风险降低。…...

2个小时1.5w字| React Golang 全栈微服务实战

文章目录 前言Golang 入门教程1. 下载与环境配置安装 GoWindows 安装macOS 安装Linux 安装 理解 GOROOT 和 GOPATHGOROOTGOPATHGo Modules 与 GOPATH 的关系查看和设置 Go 环境变量 配置 GOPATH 2. 语法与包管理Go 基础语法运行 Go 程序构建 Go 程序包管理 (Go Modules)常用标准…...

Spring security详细上手教学(三)密码管理

Spring security详细上手教学&#xff08;三&#xff09;密码管理 本章节两部分内容 实现PasswordEncoder使用Spring Security Crypto模块提供的工具 1. 使用 password encoder 通常&#xff0c;系统不会使用纯文本来保存密码&#xff0c;需要进行加密/哈希等一系列处理以加…...

ADC读取异常情况汇总

MCU ADC读取内部参考电压 Vrefint 如果某个输入引脚的电压高于供电电压&#xff0c;可能存在读取内部参考电压数值不准或者读数是4095。 虽然宽电压支持&#xff0c;最好硬件设计硬件避免这种情况&#xff0c;避免异常情况。...

给函数参数设置默认值的方式

在 JavaScript 中&#xff0c;给函数参数设置默认值主要有以下几种方式&#xff1a; 1. 函数体内手动检查赋值&#xff08;ES5 及以前&#xff09; 在函数内部检查参数是否为 undefined&#xff0c;然后手动赋值默认值。 function greet(name, age) {name name ! undefined…...

【C语言】内存分配的理解

很多时候我们声明变量&#xff0c;系统就自动为我们处理好了内存。 这主要取决于内存分配发生的时间和内存区域。C语言中主要有以下几种内存分配方式&#xff1a; 栈 (Stack) 内存分配 (自动内存): 何时发生: 在函数内部声明的非static局部变量&#xff08;包括基本类型如 int…...

特征工程四:数据特征提取TfidfVectorizer的使用

TfidfVectorizer 深度解析 TfidfVectorizer 是 scikit-learn 中用于文本特征提取的核心工具&#xff0c;它将原始文本转换为 TF-IDF 特征矩阵&#xff0c;是自然语言处理(NLP)和文本挖掘的基础组件。 一、核心原理 1. TF-IDF 计算 TF (Term Frequency)&#xff1a;词频&…...

深度学习涉及的数学与计算机知识总结

深度学习涉及的数学与计算机知识可总结为以下核心模块&#xff0c;结合理论与实践需求分为数学基础和计算机技能两大方向&#xff1a; 一、数学知识 线性代数 核心&#xff1a;矩阵运算&#xff08;乘法、转置、逆矩阵&#xff09;、向量空间、特征值与特征向量、奇异值分解&am…...

引领印尼 Web3 变革:Mandala Chain 如何助力 1 亿用户迈向数字未来?

当前 Web3 的发展正处于关键转折点&#xff0c;行业亟需吸引新用户以推动 Web3 的真正大规模采用。然而&#xff0c;大规模采用面临着核心挑战&#xff1a;数据泄露风险、集中存储的安全漏洞、跨系统互操作性障碍&#xff0c;以及低效的服务访问等问题。如何才能真正突破这些瓶…...

Mysql从入门到精通day6————时间和日期函数精讲

关于Mysql的日期和时间计算函数种类非常繁多,此处我们对常用的一些函数的用法通过实例演示让读者体会他们的用法,文章末尾也给出了时间和日期计算的全部函数 函数1:curdate()和current_date()函数 作用:获取当前日期 select curdate(),current_date();运行效果:...

C#如何正确的停止一个多线程Task?CancellationTokenSource 的用法。

在 C# 中停止一个 Task 需要谨慎处理&#xff0c;因为直接强制终止&#xff08;如 Thread.Abort()&#xff09;会导致资源泄漏或状态不一致。推荐使用 ​​协作式取消&#xff08;Cooperative Cancellation&#xff09;​​ 通过 CancellationToken 实现安全停止。以下是详细方…...

【Redis】Redis Zset实现原理:跳表+哈希表的精妙设计

一、实现&#xff1a; Zset有序集合是一种由 跳表(Skip List)哈希表(Hash Table) 实现的数据结构。 二、特点功能&#xff1a; Set特性排序 三、跳表与哈希表分析&#xff1a; Zset的实现由两个数据结构&#xff1a; 1.跳表(Skip List)&#xff1a;用于存储数据的排序和快…...

【前端】jQuery 对数据进行正序排列

你可以使用 jQuery 对数据进行正序排列&#xff08;按 jbsj 升序&#xff09;。以下是完整的代码示例&#xff1a; <!DOCTYPE html> <html> <head><title>按时间排序</title><script src"https://code.jquery.com/jquery-3.6.0.min.js&…...

Matlab 报错:尝试将 SCRIPT vl_sift 作为函数执行:

问题描述&#xff1a; 运行matlab程序出现报错&#xff1a; 警告: 名称不存在或不是目录: xxx\vlfeat-0.9.21\toolbox\mex\mexw64 xxxx 尝试将 SCRIPT vl_sift 作为函数执行: xxxx\vlfeat-0.9.21\toolbox\sift\vl_sift.m原因分析&#xff1a; 缺少 \vlfeat-0.9.21\toolbox…...

前端权限管理

前端权限 本质上就是控制前端视图层的展示和前端所发送的请求 一、RBAC 用户&#xff08;User&#xff09;&#xff1a;系统的使用者 角色&#xff08;Role&#xff09;&#xff1a;权限的集合&#xff08;如管理员、普通用户&#xff09;。 权限&#xff08;Permission&am…...

【PVR】《Adaptive Palm Vein Recognition Method》

[1]程良彬.自适应的手掌静脉识别方法研究[D].桂林电子科技大学,2023.DOI:10.27049/d.cnki.ggldc.2023.000681. 文章目录 1、Background and Motivation2、Related Work3、Advantages / Contributions4、Method4.1、Datasets and Metrics4.2、基于最大化手掌内切圆的感兴趣区域提…...

MLLM之Bench:LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略

MLLM之Bench&#xff1a;LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略 目录 LEGO-Puzzles的简介 1、LEGO-Puzzles的特点 LEGO-Puzzles的安装和使用方法 1、安装 步骤 0&#xff1a;安装 VLMEvalKit 步骤 1&#xff1a;设置 API 密钥&#xff08;可选&#xf…...

一周学会Pandas2 Python数据处理与分析-Pandas2数据信息查看操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili DataFrame的基础信息和统计性信息。在我们拿到一 个数据集&#xff0c;用Pandas载入后&#xff0c;需要做一些初步的…...

【大模型微调与应用开发实战指南】从理论到工业级部署

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现&#xff08;LoRA微调&#xff09;运行结果验证 三、性能对比测试方法论量化数据对比结果分析 四、…...

动手学深度学习11.10. Adam算法-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:72 优化算法【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址:11.10. Adam算法 — 动手学深度学习 2.0.0 documentation 本节开源代码…...

Spring Boot API版本控制实践指南

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在API迭代过程中&#xff0c;版本控制是保障系统兼容性的重要机制。合理的版本控制策略可以帮助开发团队平滑过渡接口变更&#xff0c;同时支持多版本客…...

如何让自己的博客可以在百度、谷歌、360上搜索到(让自己写的CSDN博客可以有更多的人看到)

发现自己写的博客文章名复制&#xff0c;然后粘贴到百度进行搜索&#xff0c;发现搜索不到自己的&#xff0c;但是会显示其他人的CSDN博客。于是查找相关资料&#xff0c;整理出以下搜索引擎资源收录入口&#xff0c;把自己的文章链接输入进去&#xff0c;然后经过审核通过后&a…...

Transformer

一、为什么需要Transformer&#xff1f;先看传统模型的痛点​​ 1. ​​传统模型&#xff1a;RNN与CNN的短板​​ ​​RNN&#xff08;循环神经网络&#xff09;​​&#xff1a;逐个处理单词&#xff0c;像流水线作业。 ​​问题​​&#xff1a;速度慢&#xff08;无法并行&…...

LeetCode热题100--438.找到字符串中所有字母异位词--中等

1. 题目 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s “cbaebabacd”, p “abc” 输出: [0,6] 解释: 起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。 起始…...

仿微信上传头像,实现拍摄、相册选择、手动缩放、裁剪、蒙版、撤回、还原、上传微信本地文件功能

目前功能基于wx-cropper进行开发&#xff0c;wx-cropper 是一个基于微信小程序的图片裁剪工具 项目地址&#xff1a;gitcode地址 一、触发入口标签 <t-cell hover arrow class"userCell" catchtap"handleChangeHeadImg"><view slot"title&…...

Python 操作 Excel 插入图表:解锁数据可视化的高效密码

Python 操作 Excel 插入图表&#xff1a;解锁数据可视化的高效密码 在数据分析与展示的领域中&#xff0c;Python 凭借其强大的库支持&#xff0c;成为众多开发者与数据工作者的得力助手。将图表嵌入 Excel 文件&#xff0c;不仅能丰富数据呈现形式&#xff0c;还能让信息传递…...

python实战项目66:抓取考研招生专业信息

python实战项目66:抓取考研招生专业信息 一、流程分析二、完整代码一、流程分析 考研招生专业信息所在网页主页如下图: 在搜索框中输入所需查询的专业 点击“开设院校”,如下图所示: 打开浏览器开发者工具抓包,刷新页面,找到xhr数据包。 首先,在zydws.do数据包中抓…...

Awesome-Embodied-AI: 具身机器人的资源库

&#x1f4a1; 你是否在寻找具身人工智能&#xff08;Embodied AI&#xff09;领域的研究资源&#xff1f;是否希望有一个系统性的资源集合来加速你的研究&#xff1f;今天给大家推荐一个重磅项目&#xff01; &#x1f31f; 为什么需要这个项目&#xff1f; 具身人工智能是一…...

Java位运算符大全

1. Java 支持的位运算符 Java 提供了 7 种位运算符&#xff1a; 运算符名称描述示例&按位与&#xff08;AND&#xff09;两个位都为 1 时&#xff0c;结果才为 15 & 3 → 1|按位或&#xff08;OR&#xff09;两个位有一个为 1 时&#xff0c;结果就为 15 | 3 → 7^按…...

Using the NCCL Library: A Practical Guide

文章目录 Using the NCCL Library: A Practical GuidePrerequisitesBasic NCCL ConceptsPractical Demo CodeCompilation and ExecutionKey Steps ExplainedCommon Patterns1. Point-to-Point Communication2. Broadcast3. Using Streams Best Practices Using the NCCL Librar…...

UML 活动图详解之小轿车启动活动图分析

目录 一、UML 活动图概述 二、UML 活动图的构成元素详解 &#xff08;一&#xff09;活动 &#xff08;二&#xff09;动作状态 &#xff08;三&#xff09;活动状态 &#xff08;四&#xff09;迁移&#xff08;转换&#xff09; &#xff08;五&#xff09;初始节点 …...

58常用控件_QTextEdit的使用

目录 代码示例: 获取多行输入框的内容 代码示例&#xff1a;验证输入框的各种信号 QTextEdit 表示多行输入框也是一个富文本 & markdown 编辑器 并且能在内容超出编辑框范围时自动提供滚动条 QTextEdit不仅能表示纯文本&#xff0c;还可以表示html和markdown QPlainTextE…...

uniapp-商城-42-shop 后台管理 分包

在uniapp 的全局文件中&#xff0c;讲了分包 pages.json 页面路由 | uni-app官网 主要是用于小程序的打包。超高两M就不能上传的。 看看官网上是怎么说的。 1 subPackages 分包加载配置&#xff0c;此配置为小程序的分包加载机制。 因小程序有体积和资源加载限制&#xf…...

Zookeeper断开连接时分布式锁释放问题的解决方案

Zookeeper断开连接时分布式锁释放问题的解决方案 当Zookeeper客户端与服务器断开连接时&#xff0c;可能会导致分布式锁无法正常释放&#xff0c;这是分布式锁实现中需要重点解决的问题。以下是几种解决方案&#xff1a; 1. 利用Zookeeper临时节点的特性 核心原理&#xff1…...

Nginx配置文件介绍

Nginx 的配置文件是模块化的&#xff0c;不同的配置文件承担着不同的功能&#xff0c;下面为你详细介绍常见的配置文件及其作用&#xff1a; 这些文件在/etc/nginx/目录下&#xff1a; 1、主配置文件 /etc/nginx/nginx.conf 是 Nginx 的核心配置文件&#xff0c;对全局参数进…...

新闻数据接口开发指南:从多源聚合到NLP摘要生成

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;新闻行业也迎来了新的变革。AI不仅能够自动化生成新闻内容&#xff0c;还能通过智能推荐系统为用户提供个性化的新闻体验。万维易源提供的“新闻查询”API接口&#xff0c;结合了最新的AI技术&#xff0c;为开…...

【八股消消乐】发送请求有遇到服务不可用吗?如何解决?

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、机器学习、深度学习、力扣算法等相关知识点&#xff0c;期待与你…...

【博通芯片方案】调试指令详解版一(无线)

前言 无线路由器的主流芯片方案包括,博通(BCM)、联发科(MTK)和高通等等。掌握常用的调试指令,有助于产品的测试以及故障排查。本系列文章将介绍博通芯片方案调试指令,欢迎有需要的朋友关注和分享。 无线 wl指令 查无线国家码 指令:wl -i wl1 country 说明:本系列文章…...

【Google Colab】利用unsloth针对医疗数据集进行大语言模型的快速微调(含跑通原代码)

【本文概述】 为了快速跑通&#xff0c;首先忽略算力等问题&#xff0c;使用google colab云端服务器&#xff0c;选择unsloth/DeepSeek-R1-Distill-Llama-8B大语言模型进行微调&#xff0c;微调参数只进行了简单的设置。 在微调的时候&#xff0c;实际说明colab对8B的模型微调…...

基于STM32、HAL库的ADS1255IDBR模数转换器ADC驱动程序设计

一、简介: ADS1255IDBR是德州仪器(TI)生产的一款高精度、低噪声、24位ΔΣ模数转换器(ADC),主要特性包括: 24位无丢失码分辨率 高达23位有效分辨率(ENOB) 数据速率可达30kSPS 低噪声: 2.5μV RMS (20SPS时) 可编程增益放大器(PGA): 1-64V/V 单/差分输入配置 内置自校准和系…...

T检验、F检验及样本容量计算学习总结

目录 〇、碎语一、假设检验1.1 两种错误1.2 z检验和t检验1.3 t检验1.3.1 单样本t检验1.3.2 配对样本t检验1.3.3 独立样本t检验1.4 方差齐性检验1.4 卡方检验二、样本容量的计算2.1 AB测试主要的两种应用场景2.2 绝对量的计算公式2.3 率的计算公式参考资料〇、碎语 听到最多的检…...

PDFMathTranslate:让数学公式在PDF翻译中不再痛苦

在日常的论文阅读、教材翻译中&#xff0c;我们经常会遇到一个极其恼人的问题&#xff1a;PDF里的数学公式翻译错乱。即使用上了各种强大的PDF翻译工具&#xff0c;公式依然可能被拆碎、误解&#xff0c;甚至丢失。针对这个痛点&#xff0c;PDFMathTranslate 应运而生。 本文将…...

Docker(二):docker常用命令

一、帮助命令 1、docker 帮助命令 命令说明docker version / docker -v查看docker的版本信息docker info查看docker详细信息docker --help / docker -h查看docker帮助命令&#xff0c;可以查看到相关的其他命令 二、Docker镜像命令 1、docker pull 从远程仓库docker hub 上拉…...

Missashe考研日记-day28

Missashe考研日记-day28 1 专业课408 学习时间&#xff1a;2h学习内容&#xff1a; 今天先是预习了OS关于虚拟内存管理的内容&#xff0c;然后听了一部分视频课&#xff0c;明天接着学。知识点回顾&#xff1a; 1.传统存储管理方式特征&#xff1a;一次性、驻留性。2.局部性原…...