【小白51单片机专用教程】protues仿真AT89C51入门

课程特点

  • 无需开发板
  • 0基础教学
  • 软件硬件双修
  • 辅助入门

        本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及知识都将建立在实例的基础上放心食用。

食用教程

  • 详细目录,随时跳过已知部分;
  • 全小白按步骤全程跟学;
  • 有开发板的交叉理解开发板的原理图与我们设计的原理图

本次实验内容

        设计一个AT89C51控制的LED灯,实现用程序点亮或者熄灭LED灯。熟悉使用protues和keil软件的基本操作,包括工程建立,原理图设计,程序编写等。 

目录

课程特点

本次实验内容

软件准备

 protues基本操作

新建工程

绘制AT89C51最小系统的原理图

电源电路

晶振电路

晶振的基本概念

无源晶振电路的设计

晶振电路的绘制

 复位电路

复位电路的作用

按键复位电路设计

上电复位电路设计

绘制复位电路

外设电路

IO口介绍

LED灯设计思路

绘制外设电路

 keli

新建工程

工程设置

新建c语言文件

新建头文件

编程

原理图逻辑分析

程序编写

编译

protues验证


软件准备

  • protues
  • keil C51

版本说明:

        电脑版本:作者使用的是WIN10,但这并不代表WIN11不能用,具体软件版本可能会不一样,但关系不大,自己电脑能用就行,核心内容大差不差。

        protues的版本作者用的是v8.15,推荐使用近10年以内即可,功能大差不差。注意不要太老也不要太新,太老的可能系统不契合,特别是win11,太新的不稳定,bug多。

        keil的版本:keil可以直接从keil官网下载,需要注意的是一定一定选择C51这个版本。

        因为电脑的差异性和系统的差异性,这里不提供安装教程,同学们可以在CSDN上搜索适合自己的安装教程即可,这两个软件安装还是比较简单的。

安装教程推荐:

keil C51icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_41995541/article/details/107447912

protues8.15安装教程icon-default.png?t=O83Ahttps://blog.csdn.net/m0_67742803/article/details/129488383

 protues基本操作

        小白可读,其他人可跳过;

新建工程
  1. 双击打开软件:
  2. 新建工程
  3.  更改工程名,及其路径(路径选择一个自己能找到的就行,但是建议新建文件夹统一管理)
  4. 一直进行下一步即可,最后会进入到原理图界面
  5. 点击左侧第二个黄色图标(选择元件模式),然后点击P,进入库中选择元器件
  6. 搜索元器件,双击选中,选完点击确定

    常用的元器件名:
    元器件原理图库名
    AT89C51AT89C51
    电容CAP
    电阻RES
    晶振CRYSTAL
    开关SWITCH
    蓝色LEDLED-BULU
绘制AT89C51最小系统的原理图

最小系统原理图包括以下几个部分:

  • 电源电路
  • 晶振电路
  • 复位电路
电源电路

        电源电路用于电路板所有模块的供电,其设计需要依据所有元器件的具体情况设计,其涉及多个内容,在protues中拥有自带的电源供电网络系统,不需要进行设计

        如果读者需要相关设计过程,可以在评论区留言或者私信。

         每当电路板进行增减外设时都需要修改电源电路,因此在这里我就不单独设计了,如果有需要作者会单独出一期电源电路设计思路。

        电网配置

        protues自带三个电源,分别是VCC/VDD的+5V电源、GND的0V电源和VEE的-5V电源。

1.菜单栏找到设计->配置供电网

2. 在这里可以看到自带的3个电源,我们现在不需要任何操作,只要记得电网配置在这里

晶振电路
晶振的基本概念

        晶振的作用

        晶振是单片机工作的心脏,和我们的心脏一样,晶振电路会提供源源不断的周期信号,一般为正弦波。

        晶振的作用是为系统提供基本的时钟信号,通常一个系统共用一个晶振,便于各部分保持同步。简单来说就像音乐节拍一样,晶振提供这个节拍,系统的所有指令都根据节拍的律动去执行,使得系统协调统一。

        晶振工作原理

        晶振一般是石英晶体谐振器,它是利用石英晶体的压电效应制成的一种谐振器件。当在晶片两极外加电压后,晶体会产生变形;反之,如外力使晶片变形,则两极上金属片又会产生电压。这种机械振动的振幅通常比较小,但其振动频率则很稳定。当外加交变电压的频率与晶片的固有频率(由晶片的尺寸决定)相等时,机械振动的幅度将急剧增加,这种现象称为压电谐振。

        晶振的分类

        晶振可分为有源晶振无源晶振。非常好理解,区别就是加不加电压源。

        有源晶振有四个引脚,两个引脚加直流电,一个引脚输出时钟,一个引脚悬空;有源晶振内部集成震荡电路,加入电源之后可以自身震动;

        无源晶振只有两个引脚,分别为频率输入和输出引脚,没有正反之分,无源晶振不能自己起振,需要依靠时钟电路才能产生震荡信号

无源晶振电路的设计

        所有硬件设计都需要依靠相应的设计手册为基本,在此基础上进行设计。我们查看AT89C51的数据手册可以看到无源晶振的电路形式为:

因此该电路的核心为:

  1. 选择合适的晶振频率
  2. 选择合适的外部负载电容

        AT89C51的常见频率选择可以是:6MHZ 11.0582MHZ 12MHZ 24MHZ,其中晶振频率越高抗干扰性越低,但运行速度越快,在这里我们选择11.0582MHZ的晶振,这个频率特别适用于需要精确波特率的串行通信应用,因为它能够准确地划分成常见的波特率值,同时其速度和抗干扰性也居中,综合考虑其更合适

        外部负载电容一般来说22pF,需要通过外部匹配电容来调整,但在要求不高的情况下可以直接使用手册推荐值:

        我们常用石英晶体晶振,因此这里我们可以直接选用30pF的电容。

晶振电路的绘制

        我们开始在protues中进行操作,首先学会调用元器件:点击左侧元件模式->点击需要调用的元器件->在右侧原理图空白处单击

1.我们依次调出两个电容和一个晶振和一个AT89C51芯片

 2.在左侧的终端模式选择地,点击空白处调出地

3.修改元件值 ,双击元器件,进入属性修改界面

        将电容改为30pF

        将晶振改为11.0582MHZ

         连线,连连看会吧。

 【注意】如果要删除连线,需要选中该线然后点击DEL按键,切记不是backspace建,一定是DEL。要选中线,可以框选,或者在选择模式下点击线,在元件模式下直接点很容易认为你想连线

 复位电路
复位电路的作用

        复位电路目的就是为了让芯片恢复到初始状态,从初始态开始工作。简单理解是全部程序从头开始走一遍(不完全是,新手简单理解)。

        复位电路兼顾上电复位和人工按键复位两种功能。我们可以查看一下手册的描述如下:

         因此我们要在上电时按下按键时给RST引脚两个机械周期以上的高电平。不知道两个机械周期是什么意思,没关系这个时间很短,所以只需要给一点时间就行。

按键复位电路设计

        而且在其他情况下要保持RST引脚为低电平,因此RST在正常情况下应该接地,同时按下按键就为高电平

        正常新手可能就这样设计了:

        显然这是有问题的,因为按下按键电源接地了,相当于电源短路,既不能拉高RST引脚电平,而且会让这条电源电路直接废了。但是思路是没问题的,只不过这里不能让其短路,所以我们可以加个电阻去防止其短路,这里有两条分路,我们电阻加哪里呢?思考一下!

        如果我们只是在1加上电阻,则RST引脚直接接地,电压一直为0无法被拉高;

        如果只是在2加上电阻,那么相当于电源直接接到RST,引脚虽然被拉高,但电流可能会很大,而芯片的所有引脚都有输入输出电压和电流的要求.

因此我们应该选用分压限流的方法去做这个

        分压接法既能限流,又能在按下时拉高RST引脚电压

        但我们还需要解决一个问题,就是上电复位,如何实现上电复位呢?

上电复位电路设计

        上电的时候这条路有用,平时这条路相当于断路。也就是是电路出现突变是有用,这不难可以联想到储能元件,电容或者电感;但我们电感在稳定时是通路,所以不合适,电容在稳定时相当于断路。因此我们可以并一个电容上去。

        上电复位原理

        上电时电源通过,C3与R2回路给电容C3充电加给RST一个短暂的高电平信号。这个时间取决于电容C的充电时间,充电时间越长,复位时间越长。

        电容的选择

  1. 典型值:对于AT89C51单片机,常用的电容值为10uF。这个值能够确保在上电时,RST引脚能够保持足够的高电平时间,以满足单片机复位的要求。

  2. 计算依据:电容的充电时间与RC时间常数有关。根据公式t=RC×ln⁡[(V1−V0)/(V1−Vt)]t=RC×ln[(V1−V0)/(V1−Vt)],其中V0为电容上的初始电压值,V1为电容最终可充到或放到的电压值,Vt为t时刻电容上的电压值。为了确保复位信号有效,通常要求RST引脚的高电平持续时间大于两个机器周期(约24个振荡周期)。

  3. 实际应用:在实际应用中,由于电容两端电压不能突变,因此在系统上电时,电容会开始充电,导致RST引脚出现一个持续的高电平。这个高电平的持续时间由RC电路决定,因此选择合适的电容值至关重要。

        电阻的选择

  1. 典型值:对于AT89C51单片机,R1常用的电阻值为220Ω,R2常用的电阻值为1kΩ。这个值与22uF的电容配合使用,可以形成典型的RC复位电路。

  2. 计算依据:电阻R2的值需要与电容的值相匹配,以确保RC时间常数满足复位要求。根据上述公式,电阻的值会影响电容的充电速度,从而影响RST引脚高电平的持续时间。电阻R1的值需要与R2组成的分压电路,以及RST引脚输入电路限制相匹配。

  3. 实际应用:在实际应用中,电阻不仅起到限流作用,还与电容一起决定了复位电路的稳定性和可靠性。如果电阻值过小,可能会导致电容充电过快,无法满足复位时间要求;如果电阻值过大,则可能导致充电时间过长,影响系统的启动速度。

        综上所述,对于AT89C51单片机的复位电路,建议选择10uF的电容和220Ω和1kΩ的电阻作为典型值。当然,在实际应用中,可以根据具体的系统要求和工作环境进行适当的调整。

绘制复位电路

1.调用一个地 一个电源 两个电阻 一个电容,电容电阻在元件模式

2.地和电源在终端模式,地(GROUND),电源(POWER)

外设电路
IO口介绍

        外设电路一般用IO口进行控制,我们先了解一下51单片机的IO口,查看手册可以获得以下消息

        P0口

         P1口

         P2口

        P3口

        51单片机的P0~P3口分别代表8位IO口;通过手册的信息我们可以知道,P0是漏极开路型双向IO口;而P1~P3是内部上拉电阻双向IO口。双向IO口说明该IO口可以用于输入或者输出两种用途。接下来简单讲一下漏极开路和内部上拉电阻。

        如果详细将漏极开路和内部上拉的话需要耗费大量的时间,这里只针对该IO口简单讲一下在这里的实际作用。

        漏极开路:漏极开路指的是场效应管的漏极与外部电路断开,即漏极不连接任何电路元件或电源。不知道什么是场效应管和不知道什么是漏极没关系,在这里的意思就是,该IO口为1时为开路高阻态模式;IO口为0时,IO口电压拉低接地。

        内部上拉:内部上拉是指在电路内部集成了一个上拉电阻,该电阻连接到电源电压,用于将输出节点保持在高电平状态。在这里的意思就是,IO口为1时为高电平;IO口为0时为低电平。

        漏极开路一般用于更大驱动电流的场合;P3口有第二功能;因此P1和P2口可供我们选择,P2在访问外部拓展内存时有用,因此我们优先使用P1口。

LED灯设计思路

        灯我们再熟悉不过了,初高中物理就有相关内容,对于一个直流的灯,只需要两端街上合适的电源就行,这个合适往往是电压和电流合适,尽量在额定电压和额定电流的左右。

我们先将LED调出来,双击查看其属性,可以看到额定电压和额定电流

        我们可以看到我们的额定电压是2.2V,额定电流是10mA,因此我们尽可能保持其工作在额定的环境中。

        我们知道的是电网在电源有+5V,同时51单片机的引脚高电平也是+5V;另一方面LED是一个发光二极管,属于单向导通。

        P1口为内部上拉双向IO口,可作输入也可作为输出。因此我们的LED灯设计就有两个方向,外部电源供电,IO口作为开关控制;或者由IO口供电,控制LED灯的亮灭

        设计时,是否由外部电源供电主要是取决于外设所需功率,就像LED灯这种低功率电器,可以直接用单片机供电,但对于大功率电器而言IO口功率明显不足,只能依靠外部供电。

        在这里我们直接用IO口供电,既直接将LED正极接到IO口。此时IO口电压为5V,明显高于额定电压,因此需要串联一个电阻去分压,同时因为LED额定电流是10mA,所以电阻的阻值为:

R=\frac{5V-2.2 V}{0.01 A}=280

绘制外设电路

1.调出LED 地和电阻(右击元器件可以旋转哦)

2.双击电阻设置阻值为280

3.连连看,将LED正极接到P1.0

 keli

        注意,因为工作需要作者使用的软件是集合了keil C51 C251 arm三种,因此会与你们的有一点差距,但可以忽略不影响。

新建工程

1.双击打开keil

2.菜单栏点击project->new uvision project

 

3.选择工程路径(建议建立单独文件夹储存工程,并且该文件夹你要能找到,这点非常关键)输入工程名称

4.选择芯片,搜索AT89C51,选择并确定

5.如果还有弹窗,点击ok即可 

工程设置

1.点击魔法棒

2.点击output,勾选creade HEX_File,这个非常重要,hex文件是储存单片机固件16进制文本文件。

新建c语言文件

1.点击新建并点击保存

2.命名,注意后缀为.c

新建头文件

1.点击新建并点击保存

命名,注意名字与上一个C语言文件名一样,后缀为h

2.将C语言文件添加到文件夹,双击分组选择刚刚建的C语言文件

3.看一下左边添加到就行,不要一直点,左边添加到了就行

编程
原理图逻辑分析

        所有的程序都是以硬件为基础,因此我们在编写程序之前,需要通过原理图就行逻辑分析,确认编程思路。

        同学们买了板子的就知道,它们功能丰富的同时原理图也相对复杂,对初学者很不友好。初学者需要一个容易接受的过程。这也是作者做这个课程的初衷。

        我们上面已经完成了原理图的简单绘制,现在我们来分析一下:

        上述原理图中,一共三个电路,其中晶振电路复位电路是51单片机最小系统的必备电路,与编程无关。因此我们只需要分析外设LED电路这部分,这一部分也很简单,只需要P1.0输出高电平就行。

在正式编程之前,你们可以点击一下protues左下角的仿真开始按钮:

这个时候你会发现LED是亮的,因为P1.0默认是高电平

        开启仿真之后,LED已经亮了,同时有很多不同颜色的小方块,用于表示电路各个结点的逻辑电平,红色为高电平,蓝色为低电平,灰色为不确定,引脚悬空

程序编写

        现在我们通过程序控制LED灯灭,给P1.0逻辑低电平。

1.先看一下源码:

#include "reg51.h"sbit LED=P1^0;void main(){while(1){LED=0;}
}

这就是关闭LED灯的全部代码,是不是很简单。简单解析一下代码:

2.头文件的引用

#include "reg51.h"//51单片机的头文件引用

        这一行是引用51单片机的头文件,每个51单片机芯片编程都需要这个头文件(这里说的是51,其他芯片不一样);

        头文件(Header File)是C语言和C++编程语言中的一种文件类型,通常以 .h 作为文件扩展名。头文件的主要作用是声明函数、宏、结构体、类、变量等,以便这些元素可以在多个源文件中共享和使用        

        头文件这个概念简单理解就是里面集成了很多你需要用的东西,作者喜欢比喻成武功秘籍,头文件有很多,功能都不一样,就像藏经阁里面的功法一样,要使用对应的功能时就用相应就要拿到对应的功法秘籍。例如你要计算cos等初等函数,就需要引用数学的功法: 

#include "math.h"//数学计算头文件

         51头文件的部分内容:

        上面声明了我们要用的P0~P3口及其它寄存器

 3.引脚定义

sbit LED=P1^0;

各个符合解析: 

sbit //表示一个二进制数据类型,是keil C51专属的关键字 常用于IO口的定义LED  //是变量名,自己取的名字,因为P1.0是控制LED的所以作者就取了这个名字=    //赋值,将左边的值给右边P1^0 //表示P1.0,C语言是不知道你的P1.0是什么,它是在第一行的reg51.h这个头文件中定义的

        这句话的意思是定义了一个二进制的变量叫LED,同时这个LED代表的是51单片机的P1.0引脚(注意程序中写的是P1^0,P要大写,不能写成P1.0.)

4. 主函数结构

void main(){程序执行区}

 程序都是从主函数中运行的,主函数之外的程序不会运行。

5.循环语句:

while(1){}

 while语句的格式是这样的

while(条件){程序
}

         判断语句为真时,就会一直循环执行{ }里面的程序,例如我们代码中的1会使其一直循环执行{ }里面的

6.控制语句

LED=0;

        表示给LED代表的P1.0赋值0,即为低电平让LED熄灭。 

编译

1.程序写完点击编译并生成文件,主要是为了生成hex文件

2.0ERROR(0错误)表示生成成功

3.出现Target not created表示生成失败

protues验证

1.双击芯片

2.选择hex文件,上面让你在建工程的时候记住,工程路径,hex文件就在工程路径下的Objects中

3.点击仿真

        你看这灯是不是灭了,同学们可以自己多画几个LED,也可以更改LED的额定电压和电流,自己设计合适的电路,多动手哦!

新人作者,欢迎同学们在积极留言或者私信!

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

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

相关文章

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

作者:羿莉 背景 对企业数据进行敏感数据扫描和保护可以提升企业或组织的数据安全。一方面敏感数据可能包括个人身份信息、财务记录、医疗记录等,定期扫描这些数据可以防止未经授权的访问和泄露。 另一方面,许多国家和地区都有关于数据保护的…

Redis和数据库的一致性(Canal+MQ)

想要保证缓存与数据库的双写一致,一共有4种方式,即4种同步策略: 先更新缓存,再更新数据库;先更新数据库,再更新缓存;先删除缓存,再更新数据库;先更新数据库,再…

spring学习(spring-bean实例化(无参构造与有参构造方法实现)详解)

目录 一、spring容器之bean的实例化。 (1)"bean"基本概念。 (2)spring-bean实例化的几种方式。 二、spring容器使用"构造方法"的方式实例化bean。 (1)无参构造方法实例化bean。 &#…

Qt WORD/PDF(二)使用 QtPdfium库实现 PDF操作、打印等

关于QT Widget 其它文章请点击这里: QT Widget GitHub 源码: QWidgetLearningPro (暂未更新) 姊妹篇: Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览 一、简介 QtPdfium 是基于Pdfium库的一个Qt绑定。Pdfium是一个…

【Leecode】Leecode刷题之路第82天之删除排序链表中的重复元素II

题目出处 82-删除排序链表中的重复元素 II-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 82-删除排序链表中的重复元素 II-官方解法 方法1:一次遍历 思路: 代码…

IDEA 可视化使用 git rebase 合并分支步骤 使git分支树保持整洁

模拟环境 dev 分支开发完一个功能,需要合并到 master 分支,如果现在直接 merge 合并的话 git分支树会出现杂乱分叉,先把 master 分支 rebase 到 dev git分支树就会是整洁的一条直线 git rebase介绍 rebase:翻译成中文是重新设定,…

短信验证码burp姿势

首先声明,本文仅仅作为学习使用,因个人原因导致的后果,皆有个人承担,本人没有任何责任。 在之前的burp学习中,我们学习了图片验证码的突破,但是现实中还有很多短信验证码,在此我介绍几种短信验…

你知道OSI参考模型是什么吗?

你知道OSI参考模型是什么吗? 一. OSI模型图解二. OSI七层模型三. OSI模型的特点四. OSI模型与TCP/IP模型的对比五. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱…

好用便签好用在哪里?

在这个信息如潮水般涌来,生活节奏快得像开了倍速的时代,我们的大脑常常被各种事务塞得满满当当,仿佛一台即将 “死机” 的电脑。这时候,我希望有一些工具能帮我轻松梳理这团乱麻,让一切变得井井有条。 从时间管理的维度…

Codeforces Round 993 (Div. 4)

Codeforces Round 993 (Div. 4) 2024.12.15 rank289 123:1381->1504 A Cube is given an integer n n n. She wants to know how many ordered pairs of positive integers ( a , b ) (a,b) (a,b) there are such that a n − b an-b an−b. Since Cube is…

Linux中的service命令

service命令 在Linux系统中,service命令是用来启动、停止、重启以及查看系统服务状态的一个常用命令。服务,或称为守护进程,是在后台运行的进程,它们通常会监听某个端口,等待其他程序的请求。例如,MySQL、…

R环境配置 以及Debug方法 (VSCode, conda, 远程R)

生物信息学中的R环境配置 以及Debug方法 开始设置1、建议使用VSCode conda 远程R2、 VSCode配置安装插件安装好插件后,远程设置链接成功后,设置项目 3、 linux conda 和 远程R配置4、VScode 远程访问R环境下面配置远程R 5、开始Debug新建个R文件&#…

druid图形化监控 + MyBatis优化器使用

文章目录 1.集成druid图形化监控1.配置application.yml2.测试访问 http://localhost:项目端口/druid 2.MyBatis优化器(显示完整sql)1.目录2.SqlBeautyInterceptor.java:sql拦截器3.MybatisConfiguration.java:将sql拦截器注入容器4.测试5.MyBatis优化器动…

【经验分享】私有云运维的知识点

最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…

Unity 2020、2021、2022、2023、6000下载安装

Unity 2020、2021、2022、2023、6000 下载安装 以Unity 6000.0.24fc1下载安装为例: 打开 https://unity.cn/ 优三缔 官方网站; 点击【产品列表】→点击【查看更多】→选择自己需要的版本→点【开始使用】 点击【从Unity Hub下载】 以Windows为例&am…

240004】基于maven的java+ssm+mysql的房屋租赁系统的设计与实现

基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化,包括新增了注册功能,房屋模糊查询功能,管理员和用户信息管理等功能,以及对网站界面进行了优…

NEEP-EN2-2023-Section5PartB

题目 个人答案 The chart depicts the outcomes of a survey conducted in a specific university regarding the acquisition of practical activity in class. The chart illustrates that learning knowledges accounts for 91.3 percent, which is the highest percentage…

WPF 控件

<div id"content_views" class"htmledit_views"><p id"main-toc"><strong>目录</strong></p> WPF基础控件 按钮控件&#xff1a; Button:按钮 RepeatButton:长按按钮 RadioButton:单选按钮 数据显示控件 Te…

系列1:基于Centos-8.6部署Kubernetes (1.24-1.30)

每日禅语 “木末芙蓉花&#xff0c;山中发红萼&#xff0c;涧户寂无人&#xff0c;纷纷开自落。​”这是王维的一首诗&#xff0c;名叫《辛夷坞》​。这首诗写的是在辛夷坞这个幽深的山谷里&#xff0c;辛夷花自开自落&#xff0c;平淡得很&#xff0c;既没有生的喜悦&#xff…

ESP8266 Ubuntu 安装

文章参考&#xff1a;https://blog.csdn.net/AUST_129/article/details/119406722文章浏览阅读1.8k次&#xff0c;点赞4次&#xff0c;收藏19次。参考&#xff1a;https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/linux-setup.htmlhttp://aicloud…