单片机小知识&esp32开发宣讲

1 了解单片机基础知识

1.1 单片机型号介绍

今天来讲讲单片机,就拿最经典的stm32芯片来说,看看它下面的样子,就能理解为什么叫做“单片机”

单片机作为嵌入式系统必不可少的一部分,目前被广泛用于用于控制家电、汽车、医疗设备、工业自动化等。例如,汽车中的引擎控制单元(ECU)、洗衣机中的控制器、医疗设备中的监控系统。

淘宝上有种叫做单片机开发板的东西,帮你解决了单片机的外围电路乃至与电脑的通信,同学们可以直接打开电脑用数据线连接开发板调试
或着 通过电脑连接特定的调试器进行调试,比如stlink,jlink等调试器


下面介绍下比较常见的单片机,淘宝照片仅供展示

51系列

51系列单片机,指基于Intel公司的8051微控制器架构的单片机,一般是8位机。现在随着时代发展,51系列得到了国内公司改进和发展,性能得到了发展。51是嵌入式学习中一款入门级的经典MCU,因其结构简单,易于教学,且可以通过串口编程而不需要额外的仿真器,
所以在教学时被大量采用,至今很多大学在嵌入式教学中用的还是
51。

说到51又不得不提stc公司(宏晶),这是是一家主要生产51单片机的公司,STC89C52等型号常常被用于设计教学开发板,上面那个一大套就是STC89C52的学习套件,如果想深入学习嵌入式,最好从51入门

stm32系列

STM32,从字面上来理解,ST是意法半导体,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。在如今的32位控制器当中,STM32可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出其右。

如今,久经岁月的洗礼,既有其辉煌又有其不足。
现在的市场产品竞争越来越激烈,对成本极其敏感,相应地对MCU的性能要求也更苛刻:更多功能,更低功耗,易用界面和多任务。
面对这些要求,51现有的资源就显得得抓襟见肘。所以无论是高校教学还是市场需求,都急需一款新的
MCU来为这个领域注入新的活力。所以stm32家族就出现了,下图是意法半导体官网给出的stm32的选型指南

一般常用的是F103,F407系列的开发板,性能越强价格越贵

系统学习的话,绕不开这样的正点原子/野火开发学习板,配套有例程和课程,非常适合刚接触单片机的同学

目前stm32不仅有官方的stm32f103,还有国内厂商出场的stm32系列的“盗版”,比如gd系列,复刻引脚到引脚、寄存器到寄存器一一对应,而且主频更高,这代表着你只需要细微修改之前stm32的项目就能无缝迁移到gd32上,而且性能更强,但是会有细微差别以及暗坑,建议进阶玩家使用

esp系列

esp系列是乐鑫公司开发的一系列单片机的型号,专精于物联网,主流的有esp32和esp8266系列,有一些变种,比如

esp32系列:esp32esp32-s esp32-c (后面的可视作变种)

esp8266系列:esp8266esp12 esp8285

esp8266系列常作为wifi模块出现,给stm32/51等单片机wifi通信用,一般烧录AT固件,不特殊编程

esp32系列用于物联网领域

市面上可以买到的esp32开发板(不加C/S后缀)是基于ESP32-WROOM-32模块二次开发的,之后的讲解不特殊说明默认指这种开发板

板载freertos操作系统

高速主频240MHZ,对比STM32F1的72MHZ和STM32F4的168MHZ,速度快很多,而且有两个核

esp32开发板有4MB片载FLASH,空间横向比较到了一种可以”挥霍“的程度,甚至可以运行微型HTTP服务器

自带蓝牙和Wifi,不用再去购置额外模块,就显得价格非常低廉(一些场景可替换stm32f103+esp12f经典组件包)

编程上可以使用arduino环境,编程难度比STM32低很多,对计科学生或者打比赛快速原型验证非常友好,开源项目很多,对于主流外设都有相应的开源驱动,开发速度很快,深受整活老外的喜爱
,而且在其他单片机缺少相应模块驱动库的情况下,对Arduino写的驱动略加改造即可移植

但是esp32引脚数量对于一些复杂控制项目来说不够用,以及ADC采样精度不够高,这部分恰好是stm32的强项,单片机选型需要跟着项目走

其他有了解的

KendryteK210基于RISC-V架构的单片机,算力1TOPS,拥有自主研发的KPU,常用于人工智能加速推理,边缘计算,可实时运行物体分类/人脸识别/声源识别等任务

Arduinouno 开发板,非常经典但实用性不高,性能一言难尽,性能约是stm32f1水平,新手入门容易踩的大坑

msp430/msp432电赛常用,由德州仪器研发,低功耗处理器的一种,每年都有幸运电赛题被抽中,仅允许使用德州仪器的单片机,习惯stm32开发的切换msp系列开发会被一些”特性“所”惊吓“,资料稀少

1.2 单片机小知识

电平

数字信号由电线线上的高低电压确定逻辑的高低

常常用这样的线表示数字信号,从左向右是时间

引脚

单片机上的引脚针脚有着一个个功能,在开发板的旁边会有字母标记,比如

GND— 地-0V

5V— 5V

3V3— 3.3V

G12/A6/C3— GPIO(通用输入输出)引脚,负责输出/读取高低电平

每个引脚干的功能都不太一样,每个厂家都会对引脚功能进行标记,比如esp32:

几乎每个都有基础的GPIO功能,但是有些引脚承担了通信/模拟输入及输出/触摸等功能

比如stm32f103:

1.3 基本通信协议介绍

数字电路中每条线有高低电平两个状态,就代表01两个数字,高低电平取值得看电路的规格

单片机开发板上有一个个的针脚引出,

UART

通用异步收发器(UniversalAsynchronous Receiver andTransmitter),最常用的协议之一,一种串口协议,平时语境下所说的”串口“,由USART协议(UniversalSynchronous Asynchronous Receiver and Transmitter)裁剪而来,

这个协议中,每个机器的地位比较平等,可以随时的互相收发消息,且不会冲突,即异步全双工通信

有个叫做波特率的概念,指的是串口通信的速率,也就是每秒钟可以传输多少个二进制位
,常用的波特率有9600、115200等,这个频率的取值跟单片机的设置和晶振频率有关

只需三根数据线(含地线)即可完成通信,如图所示,注意RX应该与TX相连,GND与GND相连

SPI

串行外围设备接口(SerialPeripheral interface)

需要五根数据线(含地线,地线没有标注出)完成通信

这个协议中,每个机器的地位不是很平等,有主机和从机的关系,可以根据时钟信号互相发送数据且不会冲突,即同步全双工通信

I2C

集成电路总线(Inter-IntegratedCircuit)

需要三根数据线(含地线,地线没有标注出)完成通信

这个协议中,每个机器的地位不是很平等,有主机和从机的关系,根据时钟信号发送数据,可以双向发送但是不能同时发送,即同步半双工通信

1.4 基本外设

分为片内外设和片外外设片内外设是集成在芯片内的,独立于内核的功能模块(比如串口模块、Flash、IIC模块、SPI通信模块、ADC、DAC模块等等),对于内核来说就是“外设”片外外设当然就是没有集成在芯片里面,但对于应用系统而言又必须要扩展使用的功能模块。所以就叫做片外外设,比如外接的传感器、LED灯珠、通信模块、显示屏等等

2 esp32基本开发

2.1 wokwi在线esp32环境仿真

请大家打开https://wokwi.com/
这个网站,这个网站提供了基于Arduino框架的仿真,因为是外网资源,访问不太稳定

打开后显示这个页面,点击esp32开发板图标

进入页面后下翻点击StarterTemplates下的esp32开发板图标

显示以下界面成功进入在线仿真,点击绿色播放即可开始仿真

现在大家可以在线试试esp32的编程

2.2 点亮led以及第一块小显示屏

为了节省时间,这里给大家做了下解析,这边输入 http://esp.xytong.top 即可访问第一个示例项目,或者输入 https://wokwi.com/projects/383538526597591041 访问原网址

正常运行图如下

运行逻辑如下

2.3 联网获取本地时间以及通过http获取信息

为了节省时间,这里给大家做了下解析,这边输入 http://esp2.xytong.top 即可访问第二个示例项目,或者输入 https://wokwi.com/projects/383542943859611649 访问原网址

正常运行图如下

逻辑图如下


单片机小知识&esp32开发宣讲
http://xytong.top/2023/12/17/单片机小知识&esp32开发宣讲/
作者
bszydxh
发布于
2023年12月17日
许可协议