自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 SD 卡模拟 U 盘实验

特性。

2025-10-07 00:59:08 1325

原创 第四十五章 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 照相机实验

这部分的内容前一章节已经做出了详细介绍,请读者们回顾 36.1 小节的内容。

2025-10-05 00:45:14 669

原创 第三十八章 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​​(​​L​​iquid ​​C​​rystal ​​D​​isplay,液晶显示器)是一种利用液晶的光电效应对光线进行调制,从而显示图像或文字的​​平板显示器​​。它已成为当今最主流的显示技术之一,广泛应用于从智能手机、电脑显示器到电视等各种设备中。核心工作原理: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

STM32单片机移植FreeRTOS

STM32单片机手动移植FreeRTOS

2025-12-18

8086汇编语言实验环境

8086汇编语言实验环境

2025-02-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除