前言

好久不见!最近都在做一些学校里的事,根本没空来学习一些别的东西。最近正在入门esp32,这是我的学习记录,同时也是给其他人看的一篇快速入门教程。
教程不会涉及过多底层细节,教程的目的是能够让读者快速使用物联网开发板制作产品原型用于比赛等,或者是diy一些小东西,深入学习还得看更加详细的书籍。

文章用一些小实验来讲解功能的使用,使用esp32开发板和esp-idf开发框架

本文默认读者学习过并熟练使用C语言

部分图片来源于网络,如有侵权可以联系我删除

目录

数字电路基础

  • 数字电路和模拟电路
  • 晶体管
  • 逻辑门
  • 常用组件:编码器,译码器,触发器,寄存器

单片机硬件

  • 硬件组成
  • GPIO
  • 定时器和中断
  • PWM
  • ADC DAC
  • SPI IIC 串口
  • WiFi
  • 蓝牙/蓝牙低功耗

软件系统

  • FreeRTOS
  • MQTT协议
  • TLS

数字电路基础

数字电路和模拟电路

模拟电路工作的信号是模拟信号,模拟信号时间和电平上都是连续变化的

数字电路工作的信号是数字信号,数字信号是离散的,不连续的,要么是高电平要么是低电平

规定低电平为0-0.25v,用0表示 高电平为3.5-5v,用1表示

晶体管

在数字电路中,晶体管的作用可以简单理解成一个开关,它通过电流或电压来控制输出端的电流;晶体管简单分为NPN型和PNP型,每一种晶体管型号都有不同的特性

图中的晶体管为PNP型,最上面的叫做集电极,左边的叫做基级,下面的叫做发射级。
可以简单的这样理解:当基级为低电平时,集电极和发射极不导通,输出高电平

当基级为高电平时,集电极和发射极导通,输出低电平

除晶体管外,还有场效应管也能达到类似的作用

逻辑门

最简单的逻辑门有三种,或门,与门,非门

(图中的逻辑符号为中国标准,在一些仿真软件中显示的门为国际标准可能外观不同)

除与门,或门,非门之外的其他门都可以使用与或非门组合得到

关于门的作用可以的看右边的真值表理解

编码器和译码器

本文主要介绍二进制编码器译码器

在数字电路中,每一条线路上只有高电平和低电平两种状态。如果需要表示不同的数据就需要多条线路输入

用n位二进制对2n个信号进行编码的电路叫做二进制编码器

使用编码器的好处是可以节约单片机的io接口

同理,译码器的作用就是输入编码后的数据,译码器还原为n个输出

触发器和寄存器

触发器的作用是保存信息,只有当时钟(脉冲信号)上升(或下降)的一瞬间,触发器会读取并锁存输入信号。输出信号仅在时钟信号上升(或下降)的一瞬间会发生变化。

边缘D触发器

可以从波形图上观察出边缘D触发器的工作特性,其中带-的都是反向输入端(低电平有效)

无论什么时候Rd非输入低电平,输出立即变为低电平,Sd非输入低电平,输出立即变为高电平

当时钟信号CP出现上升沿时将会读取D的电平并保持输出

将多个D触发器组合在一起可以组成存储多个二进制位的寄存器

单片机硬件

本教程使用ESP32单片机作为教程,目的是快速打造物联网作品原型

单片机结构

可以看到ESP32有很丰富的硬件配置,包括32位双核CPU和自带WiFi蓝牙,内置的加密算法硬件加速模块和大量IO相关功能

时钟有什么用

对于CPU来说大家都非常熟悉,CPU的工作需要时钟脉冲,时钟驱动CPU中的时序电路来完成各种复杂的功能(例如上面的触发器就需要时钟信号),同时也为单片机的其他部分提供基准频率。

时钟信号通常是由石英晶体谐振器产生的

如何控制单片机的硬件功能

简单来说,在ESP32单片机中,所有的外设都会被映射到内存中指定位置,修改这些位置的内存值就可以控制这些外设

映射的地址可以查询数据手册得到,但是在本文中我们不会直接通过修改内存的方式使用外设,这样的方式使用不便且难以维护,esp-idf为我们提供了易用的访问接口,我们可以直接使用接口来控制外设

GPIO

让我们从点亮一个LED开始,由于篇幅过长请等下一篇文章