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

[ESP]从零开始的Arduino IDE安装与ESP环境配置教程

一、前言

          最近也是在比赛方面比较忙,没有更多的时间和精力去更新长文章了。这几周都更倾向于环境搭建的教程,这类教程写起来确实方便,也不怎么费时间,一个下午基本可以搞定,哈哈,我保证不是在为自己想摆烂找借口。我接触ESP系列的芯片也有一阵子了。我基本都是使用Arduino IDE的环境进行开发,有一说一,生态确实好。好了,闲话就到这儿,我们开始今天的主题吧!

二、我们为什么选择Arduino IDE来开发ESP?

        虽说ESP的官方也推出了一套ESP的集成开发环境并且兼容大部分的芯片。但是,就我来说,官方推出的集成化开发环境配置起来还是有些麻烦,不利于小白上手。再加上官方的环境并没有像Arduino IDE这样强大的生态。所以,综合来说,如果你是小白的话,我推荐你选择Arudion IDE来开发ESP系列的芯片。如果你准备好了,就让我们开始吧!

三、Arduino IDE安装包的下载

        要安装Arduino IDE我们首先就需要获取Arduino IDE的安装包,我们可以直接在浏览器中搜索“Arduino IDE”:

这里可能要往下滑一段才能找到Arduino IDE的官网:

当然,如果你实在找不到官网或者怕找错了,也可以点击下方的链接前往:

Arduino IDE官网:Software | Arduino

进入官网以后,我们就能看到以下界面了:

这里我们可以看到目前Arduino IDE的最新版为2.3.4,这里我们直接下载最新版即可,我们直接点击“windows”,表示我们要下载windows版的Arduino IDE,其它操作系统的小伙伴可以自行进行选择:

点击以后就来到了如下界面,这里是在问我们要不要捐助,我们这里就直接选择“JUST DOWNLOAD”,表示“只需要下载”:

随后就来到了下面的界面,这里是要填写邮箱以便获取Arduino IDE的最新动态,我们这里同样选择“JUST DOWNLOAD”:

随后就来到了下载界面,这里浏览器会自动弹出下载:

我们将Arduino IDE的安装包下载到我们能找到的地方:

至此,我们Arduino IDE的安装包就下载完成了。

四、Arduino IDE的安装

        当我们下载好Arduino IDE的安装包以后就可以准备安装了,我们这里直接点击安装包:

在点击了安装包以后,就能看到以下的窗口了。这里另外提一下,因为Arduino IDE是国外软件,尽管目前它对中文的支持已经很好了,但是这里我仍然不建议大家将其安装包放在中文目录:

这里我们直接点击“我同意”:

在下面的窗口中,我们可以选择“只为我安装”或者“为所有用户安装”,这里除非是工作室一类的有多用户操作一台计算机需求的,建议大家都选择“只为我安装”,选择完成以后,直接点击“下一步”:

下面我们需要选择一下安装的路径,这里建议大家放在非C盘的路径下。选择好路径以后,我们直接点击“安装”:

随后就进入了安装的步骤,我们等待安装完成即可:

在安装完成以后就会出现下面的窗口,我们这里点击“完成”即可:

至此,我们Arduino IDE的安装就已经完成了,是不是觉得非常简单。

五、Arduino IDE中ESP8266的环境配置

        当我们安装好Arduino IDE以后就可以做很多事了,最主要的还是我们需要配置一下ESP的开发环境,这里就拿最为典型的ESP8266来讲。毕竟这款芯片是目前ESP最热门的wifi芯片之一。也被其大量的使用到物联网设备中。后续的演示我也会使用ESP8266来进行,如果你的芯片型号和我的不一样,可以根据情况选择对应的芯片。话不多说,我们开始吧。

        这里我们首先需要在Arduino IDE中添加ESP8266的开发板,就需要我们添加开发板的固件包地址。因为Arduino IDE是主要针对Arduino芯片的,所以,如果我们想要开发其它的芯片的话,需要先将其它芯片对应的开发板的固件包地址添加进来。这里我们首先点击左上角的“文件”:

随后再点击文件下拉菜单中的“首选项”:

点击了以后,就能看到下面的界面了:

这里我们在下方的“其它开发板管理器地址”处将下方的链接粘贴进去:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

随后点击窗口中的“确定”即可:

在点击完“确定”以后,我们需要重启一下Arduino IDE。

在重启完成以后,我们点击左边菜单栏的如图所示的图标:

在这里我们可以搜索我们的开发板,因为我这里使用的是ESP8266,所以就直接搜索8266:

这里搜索到对应的开发板以后,我们直接点击“安装”即可:

随后下方的输出框中就开始有内容了,表示安装已经开始了。当然这里也可能因为网络问题安装失败。这里如果安装失败了可以考虑更换手机流量或者是使用一些正向代理手段来安装。不过在大部分时候安装都是不会出错的:

在安装完成以后,我们开发板右下角的文字就变为了“移除”:

这样,我们的ESP8266开发板就已经安装好了。下面我们可以使用一些代码来进行测试,可是,代码哪儿来呢?自己写吗?当然不是,还记得一开始提到过的Arduino IDE的强大生态吗。是的,这些代码都有现成的,我们只需要稍作修改然后使用即可。

我们同样点击左上角的“文件”:

随后我们将“示例”菜单展开,随后再展开“Basics”,随后再点击“Blink”,这里的Blink就是让LED闪烁的示例代码:

点击以后,可以看到,我们的代码就已经打开了:

我们往下滑就看到了正式的代码,在Arduino IDE中是使用C/C++就行编程的,所以大家不用担心看不懂代码:

这里的代码用于让LED每隔一秒闪烁一次,比较简单。我们这里着重讲一下“void setup”和“void loop”两个函数。这里的“void setup”函数里的代码是芯片在上电以后要执行的代码,这里我们一般会放一些初始化之类的代码。下方的“void loop”函数用于在“void setup”执行结束以后循环执行。是的,循环执行,“void loop”中的代码会不断循环。

这里我们需要大家先将开发板插在电脑上,我这里同样使用ESP8266的NodeMCU开发板。如果你是小白建议开发板和我同型号。我们将开发板插入电脑以后电脑会识别到串口:

这里需要我们记住串口号,一会儿会用到,这里我的开发板接在了串口61上。如果你的开发板插在电脑上没有任何提示,串口也没有识别到,亦或是提示“无法识别的USB设备”。那你可以考虑是不是对应的串口驱动芯片的驱动没有安装。好的我们继续。

回到Arduino IDE中,我们来为串口选择对应的串口,我们首先点击串口选择框,注意,这里选择的串口就是一会儿Arduino IDE下载程序的端口,一定不要选择错了:

一开始大家看到了,我的开发板接在了我的串口61上,所以这里直接选择“COM61”:

选择了串口以后需要为我们的串口选择开发板:

这里直接输入NodeMCU,这里大家一定要注意,输入NodeMCU是因为我前面展示的开发板就叫NodeMCU,是一款非常常见的开发板。这里如果大家使用的别的开发板或者是自己制作的开发板也可以选择这个,但是可能需要修改部分代码。这里我直接选择的是NodeMCU0.9:

这里如果大家选错了,或者是没有选,可以点击上方的工具菜单栏,再点击“开发板”下方的“开发板管理器”重新选择:

当我们选择好开发板以后,就可以点击左上角的勾进行编译了:

这里的编译应该是没有错误的,如果你这里编译出现了错误,可以考虑看看是不是开发板选择错了。一般只有开发板选错了或者是没有选这里才会出错。Arduino IDE的引用规则是选择了对应的开发板就引用对应的头文件,如果开发板选择错了,相关的头文件没有被正确引用,代码中的一些宏定义,比如“LED_BUILTIN”就可能找不到,编译就出错了。

编译完成以后,输出框中就会像我这样:

这里如果有小伙伴用的是和我不同的开发板导致LED的引脚和我不同。可以修改“void loop”中控制引脚电平的函数。这里可以直接将函数的第一个参数改为引脚的名字。假如LED在GPIO13上,我们就可以将函数修改为以下。当然,这里只是针对开发板和我不一样的小伙伴:

void loop() {digitalWrite(13, HIGH);  // turn the LED on (HIGH is the voltage level)delay(1000);                      // wait for a seconddigitalWrite(13, LOW);   // turn the LED off by making the voltage LOWdelay(1000);                      // wait for a second
}

当我们编译代码没有错误并且确定LED引脚正确以后,我们点击箭头,这里点击以后会将代码编译并下载到开发板中,以后我们都只需要点击箭头就行了:

如果编译没有问题,在下载时出现问题,那么大概率是开发板对应的串口选错了。还请多确认几次。

当我们将代码下载到开发板以后,LED就开始闪烁了:

至此我们在Arduino IDE中搭建ESP8266的开发环境就已经完成了。

六、结语

        这次教程中,我们讲解了如何下载Arduino IDE以及如何安装和ESP8266的环境配置,当然

Arduino IDE的强大远不止于此,剩下的就留到以后我们一起来探索吧,最后,感谢大家的观看!

相关文章:

[ESP]从零开始的Arduino IDE安装与ESP环境配置教程

一、前言 最近也是在比赛方面比较忙,没有更多的时间和精力去更新长文章了。这几周都更倾向于环境搭建的教程,这类教程写起来确实方便,也不怎么费时间,一个下午基本可以搞定,哈哈,我保证不是在为自己想摆烂找…...

重拾设计模式--状态模式

文章目录 状态模式(State Pattern)概述状态模式UML图作用:状态模式的结构环境(Context)类:抽象状态(State)类:具体状态(Concrete State)类&#x…...

2024年全球办公键盘行业总体规模、主要企业国内外市场占有率及排名

根据QYResearch研究团队调研统计,2023年全球办公键盘市场销售额达到了 亿元,预计2030年将达到 亿元,年复合增长率(CAGR)为 %(2024-2030)。中国市场在过去几年变化较快,2023年市场规模…...

ThreadLocal用法详解

ThreadLocal 是 Java 中的一个类,它提供了线程局部变量的功能。线程局部变量是线程隔离的,每个使用该变量的线程都有其自己的变量副本,因此每个线程可以操作自己的线程局部变量,而不会和其他线程冲突。 以下是 ThreadLocal 的一些…...

linux中docker命令大全

基本命令 docker pull 拉取镜像 docker pull docker push 推送镜像到DockerRegistry docker push docker images 查看本地镜像 docker images docker rmi 删除本地镜像 docker rmi docker run 创建并运行容器(不能重复创建) docker run d…...

linux-----常用指令

文件和目录操作指令 ls(list)指令 功能:用于列出目录的内容,包括文件和子目录。示例: ls:列出当前目录下的所有非隐藏文件和目录。例如,在一个包含文件file1.txt、file2.txt和目录dir1的目录中&…...

1.gitlab 服务器搭建流程

前提条件: 一、服务器硬件水平 搭建gitlab服务器最低配置要求2核4G,低于这个配置的服务器运行效果很差。 gitlab官网:https://about.gitlab.com/ 下载地址:gitlab/gitlab-ce - Packages packages.gitlab.com 本机ubuntu 二、安装依赖 su…...

C 语言基础运算:输入两个整数并计算和、差、积

一、C 语言编程世界初窥 在当今数字化浪潮汹涌澎湃的时代,编程已成为一项极具影响力的技能,它犹如一把神奇的钥匙,能够开启无数创新与可能的大门。而在众多编程语言中,C 语言无疑是一颗最为璀璨耀眼的恒星,长久以来在编程的浩瀚星空中熠熠生辉,散发着独特而迷人的魅力。…...

PC寄存器(Program Counter Register) jvm

在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色,它是JVM执行引擎的核心组成部分之一。以下是PC寄存器在JVM中的具体角色和职责: 指令执行指针: PC寄存…...

CPU概述随堂测试

1. [单选题] 下列部件不属于控制器的是( )。 A. 指令寄存器 B. 程序计数器 C. 程序状态字寄存器 D. 时序电路 正确答案:C 控制器的主要组成部分包括指令寄存器(IR)、程序计数器(PC),以及用于控制…...

centos7下docker 容器实现redis主从同步

1.下载redis 镜像 docker pull bitnami/redis2. 文件夹授权 此文件夹是 你自己映射到宿主机上的挂载目录 chmod 777 /app/rd13.创建docker网络 docker network create mynet4.运行docker 镜像 安装redis的master -e 是设置环境变量值 docker run -d -p 6379:6379 \ -v /a…...

【数据安全】如何保证其安全

数据安全风险 数字经济时代,数据已成为重要的生产要素。智慧城市、智慧政务的建设,正以数据为核心,推动城市管理的智能化和公共服务的优化。然而,公共数据开放共享与隐私保护之间的矛盾日益凸显,如何在确保数据安全的…...

GTID详解

概念和组成 1,全局事务表示:global transaction identifiers 2, GTID和事务一一对应,并且全局唯一 3,一个GTID在一个服务器上只执行一次 4,mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…...

【bodgeito】攻防实战记录

也许有一天我们再相逢&#xff0c;睁开眼睛看清楚&#xff0c;我才是英雄。 进入网站整体浏览网页 点击页面评分进入关卡 一般搭建之后这里都是红色的&#xff0c;黄色是代表接近&#xff0c;绿色代表过关 首先来到搜索处本着见框就插的原则 构造payload输入 <script>…...

【基础篇】1. JasperSoft Studio编辑器与报表属性介绍

编辑器介绍 Jaspersoft Studio有一个多选项卡编辑器&#xff0c;其中包括三个标签&#xff1a;设计&#xff0c;源代码和预览。 Design&#xff1a;报表设计页面&#xff0c;可以图形化拖拉组件设计报表&#xff0c;打开报表文件的主页面Source&#xff1a;源代码页码&#xff…...

SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频

要使用阿里云视频点播&#xff08;VOD&#xff09;实现一个教育网站&#xff0c;其中用户需要成为会员后才能查看视频&#xff0c;这个过程包括上传视频、设置权限控制、构建前端播放页面以及确保只有付费会员可以访问视频内容。 1. 视频上传与管理 创建阿里云账号&#xff…...

在VBA中结合正则表达式和查找功能给文档添加交叉连接

在VBA中搜索文本有两种方式可用&#xff0c;一种是利用Range.Find对象&#xff08;更常见的形式可能是Selection.Find&#xff0c;Selection是Range的子类&#xff0c;Selection.Find其实就是特殊的Range.Find&#xff09;&#xff0c;另一种方法是利用正则表达式&#xff0c;但…...

spring\strust\springboot\isp前后端那些事儿

后端 一. 插入\更新一条数据&#xff08;老&#xff09; Map<String, Object> parameterMap MybatisUtil.initParameterSave("Send_ProjectFrozenLog", sendProjectFrozenLog); commonMapper.insert(parameterMap);parameterMap MybatisUtil.initParameter…...

Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透

文章目录 1、 缓存预热2、 缓存雪崩3、 缓存击穿4、 缓存穿透总结 1、 缓存预热 什么是预热&#xff1a; mysql加入新增100条记录&#xff0c;一般默认以mysql为准作为底单数据&#xff0c;如何同步给redis&#xff08;布隆过滤器&#xff09;这100条新数据。 为什么需要预热…...

【Java计算机毕业设计】基于Springboot小药店销售管理系统【源代码+数据库+LW文档+开题报告+答辩稿+部署教程+代码讲解】

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…...

AIGC与现代教育技术

目录 引言 一、AIGC在教育技术中的基本概念 1.1 什么是AIGC&#xff1f; 1.2 传统教育技术和AIGC的对比 二、实现过程&#xff1a;AIGC在现代教育中的实现 2.1 自动生成课件内容 2.1.1 代码示例&#xff1a;使用GPT生成教学文案 2.1.2 完善自动生成资料 2.1.3 多模态内…...

【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap

re:Invent 是全球云计算领域的顶级盛会&#xff0c;每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂&#xff0c;分享最新的技术成果和创新实践&#xff0c;深圳 UG 作为亚马逊云科技技术社区的重要组成部分&#xff0c;将借助 re:Invent 的东风&#xff0c;举办此…...

Java中的LIst

在Java中&#xff0c;List接口是集合框架&#xff08;Collections Framework&#xff09;的一部分&#xff0c;用于表示有序的集合&#xff08;也称为序列&#xff09;。List允许存储重复的元素&#xff0c;并且可以通过索引访问元素。以下是对Java中List的详细介绍&#xff1a…...

源码分析之Openlayers中MousePosition鼠标位置控件

概述 本文主要介绍 Openlayers 中的MousePosition鼠标位置控件&#xff0c;该控件会创建一个元素在页面的右上方用来实时显示鼠标光标的位置坐标。该控件在实际应用很有效&#xff0c;可以实时获取鼠标位置&#xff0c;但是一般控件元素都会自定义。 源码分析 MousePosition…...

List深拷贝后,数据还是被串改

List深拷贝后数据还是被串改 List newList new ArrayList<>(oldList)newList.pushAll(oldList)你甚至想到了java8streamAPI以上还不行 List newList new ArrayList<>(oldList) 这是采用构造参数做到的深拷贝&#xff0c;是没问题的 newList.pushAll(oldList) …...

一级路由器与二级路由器网络互通配置,实现父网络访问子网络

一级路由器与二级路由器网络互通配置&#xff0c;实现父网络访问子网络 从图看a路由器是b的父路由。默认配置情况下b路由下的PC设备可以访问a路由器下的PC设备&#xff0c;但是a路由下的设备无法访问b路由下设备。 为了实现互通&#xff0c;需要配置静态路由表。 我的a路由器是…...

linux作 samba 服务端,linux windows文件互传,免账号密码

一 ubuntu 安装 sudo apt install samba二 修改samba 配置文件 1 路径 ls -l /etc/samba/smb.conf2 修改文件 a&#xff1a;配置成 匿名用户&#xff0c;无需输入账号 b&#xff1a;注意配置可读写且文件可创建可删除 [global] workgroup SAMBA security user passdb back…...

使用C#调用SAP的WebService接口

URL 是一个 WSDL 地址&#xff0c;这意味着你可以使用 SOAP Web Service 来调用ZRFC_WEB_MES_MM_015 接口。我们将使用 C# 中的 System.Web.Services.Protocols.SoapHttpClientProtocol 或 System.ServiceModel 命名空间来实现这一点。这里我们使用 System.ServiceModel 命名空…...

线程知识总结(二)

本篇文章以线程同步的相关内容为主。线程的同步机制主要用来解决线程安全问题&#xff0c;主要方式有同步代码块、同步方法等。首先来了解何为线程安全问题。 1、线程安全问题 卖票示例&#xff0c;4 个窗口卖 100 张票&#xff1a; class Ticket implements Runnable {priv…...

HarmonyOS(72)事件拦截处理详解

事件拦截 1、参考资料2、HitTestMode3、onTouchIntercept、onTouch、onClick事件执行顺序3.1、系统默认事件传递顺序3.2、子组件拦截事件1、参考资料 HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案HitTestModea…...

Leetcode-208. 实现Trie(前缀树)

前缀树是一个由“路径”和“节点”组成多叉树结构。由根节点出发&#xff0c;按照存储字符串的每个字符&#xff0c;创建对应字符路径&#xff0c;以此实现快速查找单词或是否为前缀的功能。 此题要求简单&#xff0c;只需实现下面几种功能&#xff1a; Trie() 初始化前缀树对…...

网络安全系列 之 SQL注入学习总结

1. sql注入概述 程序里面如果使用了未经校验的外部输入来构造SQL语句&#xff0c;就很可能会引入SQL注入漏洞。 注入攻击 对于字符串输入&#xff0c;如果这个字符串将被解释为某种指令&#xff0c;那么需要特别注意防止注入攻击。sql注入、os命令注入、xml注入是典型的攻击类…...

JVM中的方法绑定机制

JVM中的方法绑定机制主要分为静态绑定&#xff08;Static Binding&#xff09;和动态绑定&#xff08;Dynamic Binding&#xff09;两种。以下是关于这两种绑定机制的详细解释&#xff1a; 一、静态绑定&#xff08;Static Binding&#xff09; 定义&#xff1a;静态绑定是指在…...

tomato靶场攻略

前提&#xff1a;kali和tomato的连接方式都为net模式 tomato的默认网络连接方式为桥接模式&#xff0c;导入前注意修改&#xff0c;将tomato.ova的镜像导入虚拟机中 出现此页面则表示导入成功&#xff0c;打开kali虚拟机终端&#xff0c;切换为root权限 arp-scan -l 浏览器访…...

移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备

移动魔百盒中的 OpenWrt作为旁路由 安装Tailscale并配置子网路由实现在外面通过家里的局域网ip访问内网设备 一、前提条件 确保路由器硬件支持&#xff1a; OpenWrt 路由器需要足够的存储空间和 CPU 性能来运行 Tailscale。确保设备架构支持 Tailscale 二进制文件&#xff0c;例…...

wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势

开发CuteMySQL/CuteSqlite开源客户端的时候&#xff0c;需要使用Scintilla编辑器&#xff0c;来高亮显示SQL语句&#xff0c;作为C/C领域最成熟稳定又小巧的开源编辑器&#xff0c;Scintilla提供了强大的功能&#xff0c;wxWidgets对Scintilla进行包装后的是控件类&#xff1a;…...

Spring Boot中Bean的 构造器注入、字段注入和方法注入

在Spring中&#xff0c;依赖注入&#xff08;DI&#xff09;是实现控制反转&#xff08;IoC&#xff09;的一种方式&#xff0c;Spring提供了多种注入方式来将依赖关系注入到Bean中&#xff0c;常见的方式有构造器注入、字段注入和方法注入。下面将详细介绍这三种注入方式。 1…...

深入浅出支持向量机(SVM)

1. 引言 支持向量机&#xff08;SVM, Support Vector Machine&#xff09;是一种常见的监督学习算法&#xff0c;广泛应用于分类、回归和异常检测等任务。自1990年代初期由Vapnik等人提出以来&#xff0c;SVM已成为机器学习领域的核心方法之一&#xff0c;尤其在模式识别、文本…...

梯度下降的数学原理:用泰勒公式剖析梯度下降

梯度下降&#xff08;Gradient Descent&#xff09;是机器学习中非常核心的优化算法&#xff0c;通过不断调整模型参数&#xff0c;让损失函数&#xff08;Loss Function&#xff09;逐渐变小&#xff0c;从而提高模型的性能。损失函数是一个用来衡量预测值与真实值差距的函数&…...

城市应急指挥系统

城市应急指挥系统的重要性 随着现代化城市的高速发展&#xff0c;我们面临着多种应急突发情景&#xff0c;如自然灾害、事故灾难、公共卫生事件以及社会安全事件等。这些事件对城市的安全稳定构成严重威胁&#xff0c;因此&#xff0c;建立一套高效、全面的城市应急指挥系统显…...

pycharm 快捷键

PyCharm 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的快捷键来提高开发效率。以下是一些常用的 PyCharm 快捷键&#xff08;基于 Windows/Linux 系统&#xff0c;Mac 系统可能略有不同&#xff09;&#xff1a; 通用快捷键 功能快捷键&a…...

游戏网站大全

http://piano.ssjjss.com/ 钢琴模拟器 https://gangqin.bmcx.com/?tdsourcetags_pcqq_aiomsg#/ 在线钢琴 https://www.gushiwen.cn/ 古诗文; https://www.bilibili.com/video/BV1UEWpeaEQK/ https://bouncyballs.org/ 掉落的球球 https://fakeupdate.net/ 假装升级界面 ht…...

线性代数期末总复习的点点滴滴(1)

一、可逆矩阵、行列式、秩的关系 1.行列式与可逆矩阵的关系 所以&#xff0c;不难看出矩阵可逆的充分必要条件是该矩阵的行列式不为0。 2.接着来看&#xff0c;满秩和矩阵行列式的关系 不难看出满秩和行列式不为0是等价的。 3.再来看&#xff0c;满秩和矩阵可逆的关系 说明了…...

感受野如何计算?

感受野&#xff08;Receptive Field, RF&#xff09;是卷积神经网络&#xff08;CNN&#xff09;中的一个重要概念&#xff0c;它指的是网络中某个特定神经元能够接收到的输入图像上的区域大小。换句话说&#xff0c;感受野定义了输出特征图中的每个单元依赖于输入图像中哪些像…...

0101多级nginx代理websocket配置-nginx-web服务器

1. 前言 项目一些信息需要通过站内信主动推动给用户&#xff0c;使用websocket。web服务器选用nginx&#xff0c;但是域名是以前通过阿里云申请的&#xff0c;解析ip也是阿里云的服务器&#xff0c;甲方不希望更换域名。新的系统需要部署在内网服务器&#xff0c;简单拓扑图如…...

解决 Ubuntu 20.04 和 ROS Noetic 中的 No Module Named ‘rospkg‘ 错误

解决 Ubuntu 20.04 和 ROS Noetic 中的 “No Module Named ‘rospkg’” 错误 在 Ubuntu 20.04 系统上运行 ROS Noetic 时&#xff0c;遇到了一个常见错误&#xff1a;“缺少 rospkg 模块”。这种问题主要是由于 Python 环境配置不当所导致。以下是对该问题的详细分析&#xf…...

day14-16系统服务管理和ntp和防火墙

一、自有服务概述 服务是一些特定的进程&#xff0c;自有服务就是系统开机后就自动运行的一些进程&#xff0c;一旦客户发出请求&#xff0c;这些进程就自动为他们提供服务&#xff0c;windows系统中&#xff0c;把这些自动运行的进程&#xff0c;称为"服务" window…...

java 根据路径下载文件转换为MultipartFile,并且上传到服务器

直接上代码 controller层 GetMapping("/downloadAndUploadAttachment")UpdateOperationLogging(msg "根据路径下载文件转换为MultipartFile,并且上传到服务器")Operation(summary "根据路径下载文件转换为MultipartFile,并且上传到服务器", de…...

递归实现指数型枚举(递归)

92. 递归实现指数型枚举 - AcWing题库 每个数有选和不选两种情况 我们把每个数看成每层&#xff0c;可以画出一个递归搜索树 叶子节点就是我们的答案 很容易写出每dfs函数 dfs传入一个u表示层数 当层数大于我们n时&#xff0c;去判断每个数字的选择情况&#xff0c;输出被选…...

WebMvcConfigurer和WebMvcConfigurationSupport(MVC配置)

一:基本介绍 WebMvcConfigurer是接口&#xff0c;用于配置全局的SpringMVC的相关属性&#xff0c;采用JAVABean的方式来代替传统的XML配置文件&#xff0c;提供了跨域设置、静态资源处理器、类型转化器、自定义拦截器、页面跳转等能力。 WebMvcConfigurationSupport是webmvc的…...