- 博客(57)
- 收藏
- 关注
原创 STM32单片机移植FreeRTOS
FreeRTOS 包含 Demo 例程和内核源码(比较重要,我们就需要提取该目录下的大部分包含的是 FreeRTOS 内核的源代码,移植 FreeRTOS 的时候就需要这部分源代码;包含了 FreeRTOS 官方为各个单片机移植好的工程代码, FreeRTOS 为了推广自己,会给各种半导体厂商的评估板写好完整的工程程序,这些程序就放在 Demo 这个目录下,这部分 Demo 非常有参考价值;
2025-12-18 01:11:12
915
原创 第三章 FreeRTOS 任务相关 API 函数
本章开始学习 FreeRTOS 任务相关的 API函数,重点学习函数的用法,先不深究函数内部实现原理,相关的原理性知识会在后面学习。本章分为如下几部分:3.1 FreeRTOS 创建和删除任务3.2 FreeRTOS 获取和设置任务优先级3.3 FreeRTOS 挂起和恢复任务。
2025-10-24 02:09:16
983
原创 第二章 FreeRTOS ESP32应用程序的启动流程
在学习3个步骤之前,先了解下ESP32双核架构,下面表格整理了PRO_CPU和APP_CPU的核心特点与分工,可以让我们快速了解双核架构。特性维度PRO_CPU (协议CPU, 通常为 Core 0)APP_CPU (应用CPU, 通常为 Core 1)启动顺序首先启动,负责整个系统的初始化和引导稍后启动,由PRO_CPU在系统初始化阶段解除其复位状态默认主要职责处理无线网络协议栈(Wi-Fi/蓝牙)、系统关键任务运行用户应用程序的主要逻辑、上层业务代码中断处理。
2025-10-21 02:33:03
1055
原创 第一章 FreeRTOS简介
首先看一下 FreeRTOS 的名字, 可以分为两部分:“Free” 和“RTOS”,“Free” 就是免费的、自由的、 不受约束的意思, “RTOS” 全称是 Real Time Operating System, 中文名是实时操作系统, 要注意的是,RTOS并不是值某一特定的操作系统, 而是指一类操作系统, 例如,µC/OS,FreeRTOS,RTX,RT-Thread 等这些都是 RTOS 类的操作系统。因此,从FreeRTOS 的名字中就能看出, FreeROTS是一款免费的实时操作系统。
2025-10-20 22:36:27
1170
原创 第五十六章 ESP32S3 网络摄像头实验
本实验支持原子 5640 和 2640 模块,这两个模块的相关资料可在原子提供的《ATK-MC2640 模块用户手册_V1.1》和《ATK-MC5640 模块用户手册 V1.0》用户手册查看。
2025-10-14 00:23:20
1055
原创 第五十五章 ESP32S3 基于MQTT协议连接OneNet物联网开放平台
(1) MQTT 是什么?MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于 发布/订阅(Publish/Subscribe) 模式的 轻量级 消息传输协议,专为低带宽、高延迟、不稳定网络的物联网环境设计。该协议构建于 TCP/IP 协议上,由 IBM 在1999 年发布,目前最新版本为 v3.1.1。MQTT 最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。
2025-10-12 22:59:02
1329
2
原创 第五十三章 ESP32S3 TCPClient 实验
本章学习lwIP 的 Socket接口如何配置 TCP客户端,并在此基础上实现收发功能。本章分为如下几个部分:53.1 Socket 编程 TCPClient 连接流程53.2 硬件设计53.3 软件设计53.4 下载验证。
2025-10-08 12:52:39
807
原创 第五十二章 ESP32S3 UDP 实验
对于 lwIP 的 Socket 的使用方式,它与文件操作非常相似。在文件操作中,首先打开文件,然后进行读/写操作,最后关闭文件。在TCP/IP网络通信中,也存在着相同的操作流程,但所使用的接口不再是文件描述符或 FILE*,而是被称为 Socket 的描述符。通过 Socket,可以进行读、写、打开和关闭操作来进行网络数据的传输。此外,还有一些辅助函数,如查询域名/IP 地址和设置 Socket 功能等。在本章中,我们将使用 Socket 编程接口来实现 UDP 实验。
2025-10-08 11:33:35
979
原创 第五十一章 ESP32S3 WiFi 一键配网
(1)SoftAP 配网ESP32-S3 会建立一个 WiFi 热点(AP 模式),用户将手机连接到这个热点后,将要连接的WiFi 信息发送给 ESP32-S3, ESP32-S3 得到 SSID 和密码。①:优点:很可靠,成功率基本达到 100%,设备端的代码简单;②:缺点:需要手动切换手机 WiFi 连接的网络,先连接到 ESP32 的 AP 网络,配置完成后再恢复连接正常 WiFi 网络,操作上存在复杂性,可能给用户带来困扰;③:官方支持:没有提供 Demo。
2025-10-08 02:20:55
1301
原创 第五十章 ESP32S3 WiFi 热点实验
本章学习把 ESP32-S3 配置为 AP 模式,即创建连接热点,可使用手机连接该热点。本章分为如下几个小节:50.1 硬件设计50.2 软件设计50.3 下载验证。
2025-10-07 22:39:43
1067
原创 第四十九章 ESP32S3 WiFi 路由实验
本章学习把ESP32-S3配置为 STA模式,即连接附近的热点。STA模式相关知识请读者查看上一章节的内容。本章分为如下几个小节:49.1 硬件设计49.2 软件设计49.3 下载验证。
2025-10-07 20:33:13
955
原创 第四十八章 ESP32S3 扫描 WiFi 实验
WiFi 主要有两种模式: STA 和 AP 模式。AP 模式即无线接入点,是常说的手机热点,被其他设备连接;STA 模式即 Station,是连接热点的设备。另外, ESP32S3 可支持 STA 和 AP两种模式共存,就像手机那样可以开热点,也可以连接其他热点。WiFi 库支持配置及监控 ESP32S3 Wi-Fi 连网功能。支持配置:①: Station 模式(即 STA 模式或 WiFi 客户端模式),此时 ESP32 S3 连接到接入点 (AP)。
2025-10-07 19:52:09
636
原创 第四十五章 ESP32S3 Flash 模拟 U 盘实验
所谓 Flash 模拟 U 盘,就类似于我们平常使用的 U 盘, 我们只不过是将单片机与电脑通过USB 数据线进行连接,从而进行数据传输。电脑能够识别出单片机通过外部 Flash 模拟出的 U盘,在电脑上能够对该 U 盘进行文件的相互拷贝,并且重新上电后数据不丢失。通过对 USB 的了解, USB 分设备(Device)模式和主机(Host)模式,使用单片机模拟 U 盘是让 USB 工作在设备(Device)模式下。
2025-10-07 00:03:22
1198
原创 第四十四章 ESP32S3 USB 虚拟串口(Slave)实验
USB 虚拟串口,简称 VCP,是 Virtual COM Port 的简写,它是利用 USB 的 CDC 类来实现的一种通信接口。CDC(Communication Device Class)类是 USB2.0 标准下的一个设备类,定义了通信相关设备的抽象集合。利用 ESP32 自带的 USB 功能,来实现一个 USB 虚拟串口,从而通过 USB,实现电脑与 ESP32 的数据互传。上位机无需编写专门的 USB 程序,只需要一个串口调试助手即可调试。
2025-10-06 20:02:58
1221
原创 第四十二章 ESP32S3 录音机实验
本章涉及的知识点基本上在上一章都有介绍。本章要实现 WAV 录音,还是和上一章一样,要了解WAV文件格式、 ES8388 和 I²S。WAV文件格式介绍具体参考上一章。原子 DNESP32S3 开发板将板载的一个 MIC 分别接入到了 ES8388 的 2 个差分输入通道(LIP/LIN 和 RIP/RIN,见上一章 41.2.3.1 ES838 原理图)。代码上,采用立体声 WAV 录音,不过,左右声道的音源都是一样的,录音出来的 WAV 文件,听起来就是个单声道效果。
2025-10-06 11:38:53
1143
原创 第四十一章 ESP32S3 音乐播放器实验
本章涉及知识比较多,包括: WAV、 ES8388 和 SAI 等三个知识点。下面分别介绍学习。WAV是一种常见的数字音频文件格式,由微软和IBM联合开发,是Windows环境下标准的音频文件格式之一,文件扩展名为“.wav”。WAV格式的核心特点主要体现在以下几个方面:特性描述高保真音质由于通常采用无损的PCM(脉冲编码调制)编码,WAV文件能够真实记录自然声波形,基本无数据压缩,还原的波形曲线十分逼真,音质与CD相差无几。灵活的参数支持支持多种采样频率。
2025-10-06 01:11:46
1787
原创 第四十章 ESP32S3 图片显示实验
常用的图片格式有很多,一般最常用的有四种: JPEG(或JPG)、BMP、PNG和GIF。其中 JPEG(或 JPG)、 PNG 和 BMP 是静态图片,而 GIF 则是可以实现动态图片。下面对比这四种图片格式。格式全称压缩类型色彩支持核心特点主要用途JPEG/JPG有损压缩真彩色(24位)文件小,压缩率高,有损照片、复杂图像PNG无损压缩调色板/真彩色+Alpha通道支持透明背景,无损网页图形、图标、UI元素。
2025-10-05 17:38:25
997
原创 第三十九章 ESP32S3 汉字显示实验
汉字的显示和 ASCII 显示其实是一样的原理,如图 39.1.1 所示:图 39.1.1 单个汉字显示原理框图上图显示了单个汉字显示的原理框图,单片机(MCU)先根据汉字编码(①,②)从字库里面找到该汉字的点阵数据(③),然后通过描点函数,按字库取模方式,将点阵数据在 LCD上画出来(④),就可以实现一个汉字的显示。接下来,重点了解汉字:编码、字库及显示等相关知识。
2025-10-05 12:16:47
1150
原创 第三十八章 ESP32S3 SPIFFS 实验
SPIFFS 是一个专为嵌入式系统和物联网(IoT)设备设计的开源文件系统。它的名字是 的缩写,顾名思义,它主要用于在通过 SPI 接口连接的 存储器上存储文件。SPIFFS 的设计遵循了嵌入式环境的特定约束,其核心特点包括:特性描述轻量级代码量极小(通常只有几千字节),对 RAM 和 CPU 的资源占用极低,非常适合资源受限的 MCU。掉电安全在设计上考虑了意外断电的情况,通过机制确保文件系统结构不会轻易损坏。
2025-10-04 23:35:33
916
原创 第三十七章 ESP32S3 SPI_SDCARD 实验
SD 卡的规范由 SD 卡协会明确, 可以访问 https://www.sdcard.org 查阅更多标准。SD 卡主要有 SD、 Mini SD 和 microSD(原名 TF 卡, 2004 年正式更名为 Micro SD Card, 为方便本文用microSD 表示)三种类型, Mini SD 已经被 microSD 取代,使用得不多,根据最新的 SD 卡规格列出的参数如表 37.1.1.1 所示:表 37.1.1.1 SD 卡的主要规格参数。
2025-10-04 22:45:23
1616
原创 第三十五章 ESP32S3 摄像头实验
本节将分为两个部分,分别学习 OV5640 简介和 ESP32S3 LCD_CAM 接口简介。另外,所有 OV5640/OV2640 的相关资料,都在光盘: A 盘→7,硬件资料文件夹中。35.1.1 OV5640 简介OV5640 是 OmniVision公司生产的一颗 1/4 寸的 CMOS QSXGA(2592*1944)图像传感器,提供了一个完整的 500W 像素摄像头解决方案,并且集成了自动对焦(AF)功能,具有非常高的性价比。
2025-10-04 18:36:56
1338
原创 第三十三章 ESP32S3 RGB 显示屏实验
33.1.1 RGBLCD 简介LCD(Liquid Crystal Display,液晶显示器)是一种利用液晶的光电效应对光线进行调制,从而显示图像或文字的平板显示器。它已成为当今最主流的显示技术之一,广泛应用于从智能手机、电脑显示器到电视等各种设备中。核心工作原理:LCD的显示依赖于液晶这种特殊的物质。液晶既具有液体的流动性,又具有晶体的光学各向异性(其光学性质随方向而变化)。
2025-10-03 16:42:35
1343
原创 第三十二章 ESP32S3 IIC_QMA6100P 实验
QMA6100P 是一款专为可穿戴设备、物联网(IoT)和 TWS(真无线耳机)应用设计的超低功耗、高精度三轴加速度传感器。它由上海矽睿科技股份有限公司生产,集成了高精度的MEMS传感元件和信号处理ASIC,能以极低的功耗实现丰富的运动感知功能。核心特性说明小尺寸封装采用 的 LGA 封装,非常适合空间受限的便携式设备超低功耗待机电流低至 0.5μA工作功耗可低至 2μA,计步功耗仅 5μA,能显著延长电池续航时间高精度与高性能内置。
2025-09-26 00:35:16
1268
原创 第三十一章 ESP32S3 RNG 实验
系统可以从随机数发生器的寄存器 RNG_DATA_REG 中读取随机数,每个读到的 32 位随机数都是真随机数,噪声源为系统中的热噪声和异步时钟。ESP32-S3 内置的硬件随机数发生器(RNG)是一个基于物理过程生成真随机数的模块,它利用芯片内部固有的噪声源(如热噪声和时钟抖动)来产生不可预测的随机数,非常适合用于加密、安全认证和各类需要高随机性的应用场景。本实验使用 ESP32-S3 自带的硬件随机数生成器(RNG),获取随机数,并显示在 LCD 屏幕上。
2025-09-24 00:29:24
888
原创 第二十九章 ESP32S3 DS18B20 实验
进行逻辑判断,例如当主机发送了复位信号之后,按照时序, DS18B20 会拉低数据线60~240us,同时主机接收最小时间为 480us,我们就依据这两个硬性条件进行判断,首先需要设置一个时限等待 DS18B20 响应,后面也设置一个时限等待 DS18B20 释放数据线拉高,满足这两个条件即DS18B20 成功响应。 转换公式:实际温度 = (raw_temp) × 0.0625,raw_temp 是将高字节和低字节合并后的 16 位无符号整数。
2025-09-23 02:44:45
836
原创 第二十八章 ESP32S3 内部温度传感器实验
ESP32-S3内部温度传感器是一个模拟电路,用于测量芯片的内部温度。该传感器的输出是一个模拟电压,这个电压与芯片的温度成正比。内部 ADC 会将这个模拟电压转换为数字值,然后通过特定的转换公式计算出实际的温度值 (单位: °C)。ESP32-S3温度传感器相关内容,请看《esp32-s3_technical_reference_manual_cn.pdf》 技术手册 39.4 章节。特性项目说明测量原理。
2025-09-22 22:52:25
1053
原创 第二十七章 ESP32S3 INFRARED_TRANSMISSION 实验
其中,emission.h 文件负责声明 RMT 相关的函数和变量, ir_nec_encoder.h 存放用于 IR NEC 帧编码为 RMT 符号的 RMT 编码器的相关结构体成员,而 emission.c 和 ir_nec_encoder.c 文件则实现了 RMT 的驱动代码。同样的,我们也对重复的 NEC 数据帧以及未知的 NEC 数据帧进行识别与处理,重复的 NEC 数据帧会通过串口打印键值以及十六进制的数据,并添加上“repeat”的标识以作区分。本章将学习 ESP32-S3 的红外发射器。
2025-09-21 23:04:08
682
原创 第二十六章 ESP32S3 INFRARED_RECEPTION 实验
RMT 的各项配置以及介绍在 26.3.1 小节中介绍,接下来while 循环里的函数实现过程,首先,使用队列的方式对 RMT 数据进行处理,从中接收项目的队列句柄(定义为receive_queue),定义了指向缓冲区的指针 rx_data,接收到的项将被复制到这个缓冲区之中,之后通过 if 语句判断该项的值与 pdPASS 的值是否相等,如果队列成功创建则添加到就绪队列中。这些协议在载波频率、引导码、数据帧结构和逻辑0/1的表示方法上存在差异。
2025-09-21 21:04:36
1159
原创 第二十五章 ESP32S3 IIC_AP3216C 实验
本文介绍了使用ESP32-S3的I2C接口驱动AP3216C三合一环境传感器的实现方法。AP3216C集成了环境光传感(ALS)、接近检测(PS)和红外发射(IRLED)功能,通过I2C接口与MCU通信。文章详细讲解了硬件连接方案、寄存器配置方法、数据读取时序,并提供了完整的驱动程序实现。实验结果表明,该系统能准确检测环境光强度、物体接近距离和红外数据,并通过LCD实时显示。该方案适用于智能设备的环境感知应用,如自动亮度调节、手势识别等功能。
2025-09-19 00:37:47
933
原创 第二十四章 ESP32S3 ADC 实验
生活中接触到的大多数信息是醉着时间连续变化的物理量,如声音、温度、压力等。表达这些信息的电信号,称为模拟信号(Analog Signal)。为了方便存储、处理,在计算机系统中,都是数字 0 和 1 信号,将模拟信号(连续信号)转换为数字信号(离散信号)的器件就叫模数转换器(Analog-to-Digital Convert, ADC)。ADC 转换器可分为: 并行比较型 A/D 转换器(FLASH ADC)、逐次比较型 A/D 转换器(SAR。
2025-09-16 04:08:45
1860
原创 第二十三章 ESP32S3 RTC 实验
SP32 的 RTC 并非传统独立的硬件外设,而是通过芯片内部的系统时间功能,结合特定的硬件时钟源来实现实时时钟功能。(1)硬件时钟源:ESP32 主要使用两种硬件时钟源来维持系统时间,默认情况下,是使用这两种定时器。下面将逐一介绍。RTC 定时器:在深度睡眠模式及任何复位后(除上电复位外)均可保持系统时间。其精度取决于时钟源,在睡眠模式下时间分辨率可达 6.667μs;
2025-09-16 00:07:38
1538
原创 第二十一章 ESP32S3 IIC_OLED 实验
在介绍OLED之前,建议在B站上搜索看下OLED的工作原理,对下面学习有一定帮助。OLED(Organic Light-Emitting Diode,有机发光二极管)是一种半导体发光技术。它通过在电场驱动下,使非常薄的有机材料涂层发光来实现显示。与LCD(液晶显示屏)不同,OLED的每个像素都能主动发光,无需独立的背光层。OLED如何工作?OLED的核心是夹在正负电极之间的有机材料薄膜层。阴极注入电子,阳极注入“空穴”(可视为正电荷)。
2025-09-15 23:03:01
1069
原创 第二十二章 ESP32S3 SPI_LCD 实验
SPI(Serial Peripheral Interface,串行外设接口)是一种高速、全双工、同步的串行通信协议,由摩托罗拉公司(Motorola)推出,广泛应用于微控制器与各种外围设备之间的短距离通信。SPI 是一种高速的全双工、同步、串行的通信总线,已经广泛应用在众多 MCU、存储芯片、 AD转换器和 LCD 之间。SPI 通信跟 IIC 通信一样,通信总线上允许挂载一个主设备和一个或者多个从设备。
2025-09-10 00:34:59
1311
原创 第二十章 ESP32S3 IIC_EEPROM 实验
24C02 是一个 2K bit 的串行 EEPROM 存储器,内部含有 256 个字节。在 24C02 里面还有一个 8 字节的页写缓冲器。该设备的通信方式 IIC,通过其 SCL 和 SDA 与其他设备通信,芯片的引脚图如图 35.1.2.1 所示。图 20.1.1 24C02 引脚图核心特性:特性维度说明存储容量2 Kbit,相当于256字节 (Byte)。通信接口I2C总线(双线制:SCL时钟线,SDA数据线),支持。
2025-09-03 23:38:43
1150
原创 第十九章 ESP32S3 IIC_EXIO 实验
IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS公司开发的两线式串行总线,用于连接微控制器以及其外围设备。它是由数据线 SDA和时钟线 SCL构成的串行总线,可发送和接收数据,在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送。IIC 总线有如下特点:总线由数据线 SDA和时钟线 SCL构成的串行总线,数据线用来传输数据,时钟线用来同步数据收发;
2025-09-03 01:03:38
1248
原创 第十八章 ESP32S3 HW_PWM 实验
关于 PWM 的一些知识,在第十七章已经介绍过,在此便不做赘述。使用硬件的方式改变 PWM 占空比与使用软件的方式改变 PWM 占空比的不同之处在于, LED PWM 控制器硬件可逐渐改变占空比的数值, 要使用此功能,需用函数 ledc_fade_func_install() 使能渐变, 之后用下列可用渐变函数之一配置:最后需要调用 ledc_fade_start() 开启渐变。
2025-08-31 19:27:41
797
原创 第十七章 ESP32S3 SW_PWM 实验
(1) PWM 原理解析PWM(Pulse Width Modulation),简称脉宽调制,是一种将模拟信号变为脉冲信号的计数。PWM 可以控制 LED 亮度、直流电机的转速等。PWM 的主要参数如下:① PWM 频率:PWM 频率是 PWM 信号在 1s 内从高电平到低电平再回到高电平的次数,也就是说 1s 内有多少个 PWM 周期,单位为 Hz。② PWM 周期:PWM 周期是 PWM 频率的倒数,即 T=1/f, T 是 PWM 周期, f 是 PWM 频率。
2025-08-30 18:34:20
1003
原创 第十六章 ESP32S3 WATCH_DOG 实验
WDT 的初始化函数中调用了看门狗回调函数,用以模拟当定时器溢出时产生的复位现象。如果没有按时“喂狗”,说明系统或软件出现了不可预知的问题(比如软件卡在某个循环或逾期事件中),这时看门狗就向系统发送个复位信号,使整个系统重启,重新进入正常的工作状态。程序运行后,开发板板载的 LED 因不停的复位而闪烁,但如果按下 BOOT 按键进行喂狗,那么就不会产生复位, LED也就保持常亮,一旦超过看门狗的溢出时间(Tout=1000毫秒)没有按下 BOOT 按键进行喂狗,那么就会进行复位, LED 也就会熄灭一次。
2025-08-30 12:28:40
1106
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅