全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 零基础学习 > Web前端 > > esp32如何并行(esp32如何编程)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

esp32如何并行(esp32如何编程)

发布时间:4 周 前 栏目:Web前端 浏览:

1、esp32如何并行

ESP32具有两个 32 位 Tensilica Xtensa LX6 微处理器,这使其成为功能强大的双核(core0 和 core1)微控制器。它有单核和双核两种变体。但双核版本更受欢迎,因为没有明显的价格差异。

ESP32 可以使用 Arduino IDE、Espressif IDF、Lua RTOS 等进行编程。使用 Arduino IDE 进行编程时,代码只能在 Core1 上运行,因为 Core0 已经针对射频通信进行了编程。但这是本教程,我们将展示如何使用 ESP32的两个内核同时执行两个操作。这里的第一个任务是闪烁板载 LED,第二个任务是从 DHT11 传感器获取温度数据。

让我们首先看看多核处理器相对于单核的优势。

多核处理器的优势

当有两个以上的进程同时工作时,多核处理器很有用。

由于工作分布在不同的内核之间,它的速度会提高,并且可以同时完成多个进程。

可以降低功耗,因为当任何内核处于空闲模式时,它都可以用来关闭当时未使用的外围设备。

双核处理器必须比单核处理器更少地在不同线程之间切换,因为它们可以一次处理两个而不是一次处理一个。

ESP32 和 FreeRTOS

ESP32 板上已经安装了 FreeRTOS 固件。FreeRTOS 是一个开源实时操作系统,在多任务处理中非常有用。RTOS 有助于管理资源和最大化系统性能。FreeRTOS 有许多用于不同目的的 API 函数,使用这些 API,我们可以创建任务并使它们在不同的内核上运行。

可以在此处找到 FreeRTOS API 的完整文档。我们将尝试在代码中使用一些 API 来构建将在两个内核上运行的多任务应用程序。

查找 ESP32 内核 ID

在这里,我们将使用Arduino IDE 将代码上传到 ESP32中。要知道运行代码的Core ID,有一个API函数

可以从void setup()和void loop()函数调用此函数,以了解运行这些函数的核心 ID。

您可以通过上传以下草图来测试此 API:

无效设置() {

Serial.print("setup() 函数在核心上运行:");

Serial.print("loop() 函数在核心上运行:");

上传上面的草图后,打开串口监视器,你会发现这两个功能都在 core1 上运行,如下图所示。

从以上观察可以得出结论,默认的 Arduino 草图始终在 core1 上运行。

ESP32 双核编程

Arduino IDE 支持 ESP32 的 FreeRTOS,FreeRTOS API 允许我们创建可以在两个内核上独立运行的任务。任务是在板上执行一些操作的代码,例如闪烁的 LED、发送温度等。

以下函数用于创建可以在两个内核上运行的任务。在这个函数中,我们必须给出一些参数,比如优先级、核心 ID 等。

现在,按照以下步骤创建任务和任务功能。

1.首先在void setup函数中创建任务。在这里,我们将创建两个任务,一个用于每 0.5 秒后闪烁 LED,另一个任务是每 2 秒后获取温度读数。

xTaskCreatePinnedToCore() 函数有 7 个参数:

实现任务的函数名(task1)

任务的任何名称(“task1”等)

以字为单位分配给任务的堆栈大小(1 个字=2 字节)

任务输入参数(可以为NULL)

任务的优先级(0为最低优先级)

任务句柄(可以为 NULL)

任务将运行的核心 ID(0 或 1)

现在,通过在 xTaskCreatePinnedToCore() 函数中提供所有参数来创建用于闪烁 LED 的 Task1 。

同样,为 Task2创建 Task2并在第 7个参数中设置 core id 1。

您可以根据任务的复杂性更改优先级和堆栈大小。

2. 现在,我们将实现Task1code和Task2code函数。这些函数包含所需任务的代码。在我们的例子中,第一个任务将闪烁 LED,另一个任务将获取温度。因此,在 void setup 函数之外为每个任务创建两个单独的函数。

Task1code 功能 实现了 0.5 秒后闪烁板载 LED,如下所示。

Serial.print("Task1 在核心上运行");

for(;;) {//无限循环

延迟(500);

延迟(500);

同样,实现获取温度的Task2code函数。

Serial.print("Task2 在核心上运行");

浮动 t = dht.readTemperature();

Serial.print("温度:");

序列号.print(t);

延迟(2000);

3. 这里的void 循环函数将保持为空。我们已经知道循环和设置函数在 core1 上运行,因此您也可以在void 循环函数中实现 core1 任务。

现在编码部分已经结束,所以只需在工具菜单中选择 ESP32 板,使用 Arduino IDE 上传代码。确保您已将 DHT11 传感器连接到 ESP32 的引脚 D13。

现在可以在 Serial Monitor 或 Arduino IDE 上监控结果,如下所示:

通过使用 ESP32 的双核同时运行多个任务,可以构建像实时系统这样的复杂应用。

无效设置() {

pinMode(LED,输出);

延迟(500);

延迟(500);

Serial.print("Task1 在核心上运行");

延迟(300);

数字写入(领导,低);

延迟(300);

Serial.print("Task2 在核心上运行");

浮动 h = dht.readHumidity();

浮动 t = dht.readTemperature();

浮动 f = dht.readTemperature(true);

Serial.print("温度:");

序列号.print(t);

Serial.println("读取 DHT 传感器失败!");

返回;

延迟(2000);

无效循环() {

esp32如何并行

2、微控制器实验有什么心得体会可分享?

在电子技术应用领域中,微控制器的应用愈来愈多地应用到各行各业。那微控制器实验心得体会怎么写呢?下面我就和大家分享微控制器实验心得体会,来欣赏一下吧。

微控制器实验心得体会一

高校实验室是培养高层次人才和开展科学研究的重要基地。在西方发达国家,学校对培养学生的动手能力是十分重视的,这一问题近年来也越来越受到我国教育界人士的广泛重视。为了提高学生的动手能力,让学生做相关实训并完成微控制器实验报告,在实验的形式上注重培养学生的实验技能和动手能力。从微控制器实验心得中学生就可以总结出大量的经验以适应当代社会的发展。

学习微控制器这门课程教学中选用 inter公司的mcs-51,要掌握微控制器指令系统中组合语言各种基本语句的意义及组合语言程式设计的基本知识和方法,以及微控制器与其他装置相连线的输入输出中断等介面技术。使学生从硬体软体的结合上理论联络实际,提高动手能力,从而全面掌握微控制器的应用。

实验教学的全过程包括认识、基础、综合3个阶段。以往的微控制器实验是进行软体的编制和除错,与实际应用中的硬体电路相脱节。使学生缺乏硬体设计及除错分析能力,对微控制器如何构成一个微控制器最小应用系统,缺乏认识。释出的微控制器实验板,通过计算机连线模拟器在实验板上把硬体和软体结合起来一起除错,

软体的修改也非常方便,软体和硬体除错都通过后,把程式固化在 eprom当中,插上8051微控制器构成一个完整的微控制器应用系统。

微控制器实验板的构成及基本功能

微控制器实验板,它由 8031、8155,eprom2764,max232键盘及显示器组成。其中8155 片内有256个ram单元,接6个7段码显示器和8个按键作输入。序列口连线max232序列口转换晶片,p1口留出作为一些控制量的输入输出用以扩充套件使用。在实验板上可编写键盘扫描程式、显示程式、时间的设定及计时程式、从键盘上输入两个加数或减数显示结果程式、位变数的逻辑运算程式及序列口和上位机通讯程式等,还可和其它课程相结合,进行实验。同时可参考微控制器上的比较生动的微控制器学习教程,学习和试验一起进行.例如,《电子测量》课程中各种频率的测量,可通过8031微控制器 p1口输入被测量,由微控制器来进行检测和显示,把几门课程结合在一起学习,使课程有延续性,也提高了学生学习的积极性。由于p1口通过插座引出,也可外部扩充套件a/d d/a 等其他介面晶片,以构成新的应用系统。

微控制器实验板的衍生功能

此微控制器实验报告中的实验板是一个微控制器应用系统的硬体电路。有键盘输入和显示输出,在这个基础电路上通过p1口对不同检测或控制物件还可衍生出各种应用来。例如:时间的设定及显示、温度的检测及控制等,在此实验板上,编写相应的软体即可,否则,只在计算机上模拟除错软体,则无法了解微控制器介面中各种控制讯号的使用。还可帮助学生学会分析问题和解决问题的能力。这在微控制器实验报告中都要体现出来。例如:如何检查程式储存器和外部资料储存器及i/o介面,执行访问外部程式储存器eprom2764的0000h 单元的指令,只能读取该单元的内容,不能改写,当dptr=0000h 时,执行 movca @dptr指令,这时候74ls373应锁存地址讯号低8位,可用示波器测量74ls373的Q0-Q7 ,检验是否锁存了零讯号,同样用示波器检测P2口是否输出了地址讯号的高8位,用示波器检测P0口和 ALE控制讯号。若和原理分析有偏差,很快就可判断出哪个管脚有问题,可顺藤摸瓜,找出问题所在。同理,执行单条指令访问外部介面8155的PA PB PC 口,软体执行时序讯号和管脚测量结果相比较,看是否一致,以便检查硬体线路是否正确。访问外部RAM资料储存器8155片内时,用示波器测WR及 RD控制讯号,如:读RAM时,应测到读控制讯号脉冲,而写RAM时,应测得写控制讯号脉冲。测得的讯号一定是数字讯号0或1,0.7V左右或 3.8V左右,2.5V左右的数字讯号肯定有问题。在模拟器上除错软体时,通过察看微控制器网的相关专栏得知,可采用模拟器上的晶振,通过后,改用使用者板上的晶振,看结果是否一致,若有问题,说明使用者板上的晶振有问题,再次通过后,把程式固化在EPROM2764中,拔掉模拟头,插上8031晶片,看是否通过,此时有问题,说明使用者板上的复位讯号有问题。逐步学会硬体电路的除错。外部可连线温度感测器,经A/D转换,检测温度讯号,并根据键盘输入的设定值范围,进行报警,切换继电器工作;还可通过模拟开关对多点温度进行轮检,构成一台多点温度测试系统。作为测量装置,要考虑精度,在硬体电路上要考虑模拟开关的选择,因为其导通电阻的大小对模拟输入量有影响,应选择导通电阻小,带过压保护的模拟开关,同样A/D转换晶片应根据精度要求,选择8位、 12位等 转换器,或满足精度要求的压频转换器。也可对外部多种感测器进行检测,如:温度、烟雾、水警、门警、红外等,构成监控电路,被测量中既有模拟量,又有数字量,特别要加强抗干扰性,线上路板设计时,每块晶片电源引脚的滤波电容排放时尽量靠近晶片,模拟地和数字地先分别共地,最后,再把模拟地和数字地共地,模拟地和数字地只能出现一个共地点,最好电源和地单独布层,走线合理,提高线路板的抗干扰性,为了提高抗干扰能力,软体设计时,可连续测量几次,去掉最大值和最小值,剩下的量取平均值,以滤去一些突变讯号,提高整个系统的抗干扰能力。

由于微控制器体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场资料的采集和控制,但微控制器储存量有限,资料处理能力差,不利于资料资讯的储存和处理,在这里利用微控制器的序列口和上位PC机串列埠通讯,实验板上的MAX233序列转换晶片实现TTL讯号和RS232 讯号之间的转换,和 PC机通讯,从而实现远距离的监控及资讯的储存、处理和列印清单,微控制器完成现场资料的采集及各种讯号的控制,构成一套环境监控单元。

几点微控制器实验心得体会

在电子技术应用领域中,微控制器的应用愈来愈多地应用到各行各业。如:工业控制、仪器仪表、电讯技术、办公自动化和计算机外部装置、汽车与节能、商用产品、家用电器等。目前,微控制器正朝着大容量片上储存器、多功能i/o介面、宽范围工作电源和低功耗方向发展。要开发微控制器的应用,不但要掌握微控制器硬体和软体方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅要掌握微控制器的工作原理,而且还要不断了解各公司最新晶片的结构和应用,在实际应用中找到最好的效能价格比。所以还要注意培养学生接受新知识的自学能力,掌握晶片发展动态。

微控制器实验心得体会二

通过今次微控制器实训,使我对微控制器的认识有了更深刻的理解。

系统以51微控制器为核心部件,利用汇编软体程式设计,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩充套件功能。

踉踉跄跄地忙碌了两周,我的时钟程式终于编译成功。

当看着自己的程式,自己成天相伴的系统能够健康的执行,真是莫大的幸福和欣慰。

我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

但在这次实训中同时使我对组合语言有了更深的认识。

当我第一次接触组合语言就感觉很难,特别是今次实训要用到组合语言,尽管困难重重,可我们还是克服了。

这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。

这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。

希望这次的经历能让我在以后学习中激励我继续进步。

微控制器实验心得体会三

三月七号下午我们做了第一次微控制器实验,虽然对微控制器还不是很了解,但在学长的带领下我们基本上了解了微控制器的的开发环境,进行了简单的程式设计。

李老师的一番话令我很受启发。实践出真知,这是永恒不变的真理。只有将理论付诸于实践并在实践中纠正发展理论,我们才能算是得到了真正的知识。

实验开始,学长直接从具体的编译细节讲起。没有太多的介绍和理论的空谈。就像老师说的没有必要把人民币的各个细节都了解的很清楚后才开始用钱一样。很多时候我们正是在那些细枝末节上浪费了太多不必要的时间和精力。通过一个简单的程式的讲解,我们就对CVAVR和AVRStudio有了初步的掌握。

看着一闪一闪的LED,我们小组感到了微控制器的神奇和奥秘,一种难以言表的激动涌上心头。我们就像看到了交通拥挤的路上因为有了我们设计的红绿灯而变得秩序井然一样欣慰。

接下来我们组稍微改了下程式,变为了同时控制四个灯,而且让它们依次亮起,只是延迟的时间比预定的要长一些。这也应该是十字路口的交通灯的原理吧。

总结起来,本次试验还是比较成功的。但对下一次的试验充满了期待,希望能做出更有用,更贴近生活的作品。我想也正是在这种不断的自我期望中,人类才能不断的总结经验,阔步向前。

esp32如何并行

3、什么是微控制器?

下图显示了微控制器的基本组件。由于所有组件(以及一些其他组件)都集成在单个芯片(集成电路 - IC)上,因此可以将微控制器视为微型计算机(或片上计算机)。

CPU(中央处理器)

它是微控制器的心脏,主要由算术逻辑单元(ALU)和控制单元(CU)等重要部件组成。CPU 是与内存、输入和输出等外围设备进行通信的主要设备。

顾名思义,ALU 或算术逻辑单元执行算术和逻辑运算。CU 或控制单元负责 CPU 与其外围设备之间的通信过程的计时。

程序存储器

CPU 的指令存储在程序存储器中。它通常实现为只读存储器或ROM,即使断电或系统重置,写入其中的程序也会保留。

现代程序存储器模块通常由 EEPROM(电可擦可编程只读存储器)组成,它是一种非易失性存储器。

在这种类型的存储器中,可以使用特殊的编程信号擦除和重新编程数据。

当微控制器上电或手动复位时,处理器从程序存储器中的预定义存储位置(地址)执行一组指令。

数据存储器

微控制器中的数据存储器负责存储变量值、临时数据、中间结果和其他数据,以便程序正常运行。

数据存储器通常被称为 RAM(随机存取存储器),它是一种易失性存储器。它通常组织为寄存器,包括特殊功能寄存器 (SFR) 和用户可访问的内存位置。

输入和输出端口

I/O 端口或输入/输出端口为微控制器提供了与外界的物理连接。输入端口提供了一个网关,用于在传感器的帮助下传递来自外部世界的数据。

来自输入端口的数据被处理(取决于应用程序)并将确定输出端口上的数据。

输出端口允许微控制器控制外部设备(如电机和 LED)。通常,微控制器中的所有端口都具有双重功能,即它们可以作为输入和输出端口(但不能同时)。

4、微控制器原理及应用如何编程?

微控制器是单芯片微计算机,将微计算机的主要部件集成在一个芯片上。该微控制器诞生于1970年代中期。经过20年的发展,其成本越来越低,性能越来越强大,这使其在各个领域和各个领域都得到应用。例如,电机控制,条形码阅读器/扫描仪,消费电子产品,游戏设备,电话,HVAC,楼宇安全和访问控制,工业控制和自动化以及白色家用电器(洗衣机,微波炉)。本文主要介绍微控制器的应用和工作原理,包括微控制器的类型;微控制器和微处理器之间的区别;或世界顶级微控制器制造商等。


根据Wiki,微控制器(或微控制器单元的MCU)是位于单个集成电路上的小型计算机。用现代术语来说,它类似于片上系统或SoC,但不如后者复杂。SoC可能包括微控制器作为其组件之一。微控制器包含一个或多个CPU(处理器内核)以及存储器和可编程输入/输出外设。铁电RAM,NOR闪存或OTPROM形式的程序存储器通常也包含在芯片上,以及少量RAM。与个人计算机或其他由各种分立芯片组成的通用应用中使用的微处理器相比,微控制器是为嵌入式应用而设计的。单片机用于自动控制的产品和设备,例如汽车发动机控制系统,植入式医疗设备,遥控器,办公机器,设备,电动工具,玩具和其他嵌入式系统。与使用单独的微处理器,存储器和输入/输出设备的设计相比,通过减小尺寸和成本,微控制器使数字控制更多的设备和过程变得经济。混合信号微控制器很常见,集成了控制非数字电子系统所需的模拟组件。


微控制器功能


微控制器具有以下几个主要功能:


解析微控制器的工作原理、类型及应用


(1)可靠性好。由于微控制器的各种功能部件都集成在芯片上,特别是存储器集成在芯片上,布线短,数据大部分在芯片内部传输,不易受到外界干扰,增强了抗干扰能力强,使系统运行更加可靠。因此,可靠性显然优于一般的通用CPU系统。


(2)强大的控制功能。为了满足工业控制的要求,通用微控制器的指令系统具有丰富的条件分支转移指令,I/O端口的逻辑运算和位处理功能。通常,微控制器的逻辑控制功能和运行速度高于相同级别的CPU。


(3)易于扩展。有许多三个总线和用于扩展的并行,串行输入/输出引脚,很容易形成各种尺寸的计算机应用系统。


(4)通用微控制器中没有监控程序或系统管理软件,开发需要相应的仿真系统。


单片机类型


微控制器可分为两大类:普通单片机和数字信号处理单片机(DSP)。


根据字长,目前常见的单片机是4到32。功能强弱,适合不同场合。世界上大多数最大的半导体公司都有自己的微控制器。


单片机8051


它是一个40引脚微控制器,其Vcc为5V,连接到引脚40,而Vss的引脚20保持为0V。并且有P1.0-P1.7的输入和输出端口,并且具有开漏功能。Port3具有其他功能。引脚36处于开漏状态,引脚17内部在微控制器内部上拉晶体管。当在端口1上应用逻辑1时,则在端口21上获得逻辑1,反之亦然。微控制器的编程非常复杂。基本上,我们用C语言编写一个程序,然后将其转换为微控制器可以理解的机器语言。RESET引脚连接到与电容器相连的引脚9。当开关接通时,电容器开始充电并且RST为高。向复位引脚施加高电平将使微控制器复位。如果我们对该引脚施加逻辑零,程序将从头开始执行。


8051的存储器架构


8051的存储器分为两部分:程序存储器和数据存储器。程序存储器存储正在执行的程序,而数据存储器临时存储数据和结果。8051已在多种设备中使用,主要是因为它易于集成到设备中。微控制器主要用于能源管理,触摸屏,汽车和医疗设备。


8051的数据存储器


8051微控制器的引脚说明


引脚40:Vcc是+5VDC的主要电源。


针20:Vss_表示接地(0V)连接。


引脚32-39:称为端口0(P0.0至P0.7)用作I/O端口。


Pin-31:地址锁存使能(ALE)用于解复用端口0的地址数据信号。


针30:(EA)外部访问输入用于启用或禁用外部存储器接口。如果没有外部存储器要求,则此引脚始终保持高电平。


引脚29:程序存储使能(PSEN)用于从外部程序存储器读取信号。


引脚21-28:称为端口2(P2.0至P2.7)_除了用作I/O端口外,高阶地址总线信号还与该准双向端口复用。


引脚18和19:用于连接外部晶振以提供系统时钟。


引脚10_17:此端口还具有其他功能,例如中断,定时器输入,用于外部存储器与读写接口的控制信号。这是具有内部上拉功能的准双向端口。


针脚9:这是一个RESET针脚,用于在单片机正在工作或开始应用程序启动时将8051单片机设置为其初始值。必须在两个机器周期内将RESET引脚设置为高电平。


引脚1_8:此端口不具有任何其他功能。端口1是准双向I/O端口。


微控制器嵌入设备内部,以控制产品的动作和功能。因此,它们也可以称为嵌入式控制器。它们运行一个特定的程序,专门用于一项任务。它们是具有专用输入设备和小型LED或LCD显示输出的低功率设备。微控制器可以从他们控制的设备中获取输入,并通过将设备信号发送到设备的不同部分来保持控制。电视的微控制器就是一个很好的例子。它从遥控器获取输入,并在电视屏幕上输出其输出。


像传统计算机一样,微控制器依靠不同的功能来完成其工作。这些功能包括:


内存


RAM用于存储数据以及微控制器工作时创建的其他结果。但是,一旦切断微控制器的电源,它就不会永久存储数据,并且其内存也会丢失。RAM包含一个特殊功能寄存器(SFR)。这是微控制器制造商提供的预先配置的内存。它控制串行通信和模数转换器等特定电路的行为。


只读存储器


微控制器作为程序执行的特殊任务存储在ROM(只读存储器)中,永远不变。ROM使微控制器知道某些动作应触发特定的响应。例如,ROM使电视的微控制器知道按下频道按钮会改变屏幕上的显示。ROM中存储的程序大小取决于ROM的大小。一些微控制器以外部芯片的形式接受ROM的添加,而另一些则带有内置ROM。


程序计数器


程序计数器允许小型计算机基于一系列不同的编程指令来执行程序。每当执行一行指令时,程序计数器就会增加1。这有助于在代码行中跟踪柜台的位置。


输入和输出


与通过鼠标或键盘控制的计算机不同,微控制器具有通过输入和输出与人进行交互的独特方式。微控制器上的典型输入和输出设备包括LED显示屏,开关和确定湿度,温度和光照水平的传感器。大多数嵌入式系统不具有用于直接人机交互的屏幕或键盘。取而代之的是,微控制器具有多种输入和输出引脚或GPIO,它们被配置用于不同的输入和输出设备。


例如,您可以将一个引脚配置为通过感测温度工作的微控制器上的输入,而将另一个引脚配置为输出并连接至自动调温器,该自动调温器根据预先设置触发空调或加热器的开和关。设定温度范围。输入和输出动力学完全是机器对机器的,不需要直接的人工交互即可做出决定。

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号