- 博客(39)
- 收藏
- 关注
原创 二十二、【ESP32全栈开发指南:SNTP网络校时】
摘要:本文详细解析了SNTP协议的工作原理及其在ESP-IDF中的实现特性。主要内容包括:1)SNTP的客户端-服务器模型和时间校正计算;2)ESP-IDF提供的API接口及新增功能;3)基础应用实现流程,包括初始化配置和回调处理;4)高级功能扩展,如自动时区设置、时间戳转换和低功耗模式下的时间同步方案。文章为嵌入式系统的时间同步提供了完整的技术参考和实现指导,涵盖了从基础应用到高级功能的开发要点。
2025-06-17 10:47:01
467
原创 二十一、【ESP32全栈开发指南:MQTT客户端】
本文详细解析了MQTT协议及其在ESP32平台上的实现。第一部分介绍了MQTT的发布/订阅模型、低带宽消耗等核心特性,以及ESP-MQTT库的自动重连、SSL认证等增强功能。第二部分说明v5.1+版本的API变更,包括配置结构体优化和关键API更新。第三部分展示了增强型客户端实现,涵盖系统架构设计、初始化流程和事件处理机制,提供代码示例说明MQTT客户端的配置、启动和消息处理过程。全文通过技术细节和实现代码,帮助开发者深入理解MQTT协议并高效应用于物联网项目。
2025-06-17 10:35:39
498
原创 二十、【ESP32全栈开发指南:OTA(空中升级)接口使用(原生API)】
ESP32 OO ESP32支持通过Wi-Fi进行OTA固件升级,提供原生API(app_update)和简化API( Substation)两种实现方式。关键/filesystem包含Factory、 negative业OTA分区和otadata分区,实现双和他的滚动++ 升级。核心API包括esp_ota_begin()、esp_ota_write()、作曲可能等++ 及esp_ota_set_boot_partition()。
2025-06-16 11:39:29
690
原创 十九、【ESP32全栈开发指南——NVS(非易失性存储)接口使用】
ESP32的NVS(非易失性存储)库是专为在SPI Flash中存储键值对数据设计的核心组件。它支持整数、字符串和二进制数据,采用命名空间隔离数据,具有磨损均衡和掉电安全特性。主要API包括初始化(nvs_flash_init)、擦除(nvs_flash_erase)、打开命名空间(nvs_open)和读写操作。适用于存储配置参数、Wi-Fi凭证等中小规模数据,但不适合大文件存储。使用时需注意分区管理,修改分区表后需擦除Flash。
2025-06-16 11:26:27
583
原创 十八、【ESP32全栈开发指南: SPI接口深度使用】
摘要: ESP32的SPI开发涉及主机/从机模式配置,需注意控制器选择(HSPI/VSPI引脚固定或可配)、时钟模式匹配及DMA优化(4字节对齐,最大4096字节传输)。主机模式需初始化总线、添加设备并处理同步/异步传输;从机模式需配置接口并接收数据。关键配置包括SPI模式一致性验证、DMA缓存对齐及多设备总线冲突管理(互斥锁)。开发中建议使用ESP-IDF驱动框架的事务队列机制,并针对SPI Flash等外设进行协议适配。通过分段传输处理大数据,确保稳定通信。
2025-06-12 10:03:51
413
原创 十七、【ESP32全栈开发指南:ADC接口使用】
ESP32 ADC使用指南 摘要: ESP32内置两个12位SARADC模块,提供18个模拟输入通道(ADC1 8通道、ADC2 10通道)。使用需注意ADC2与Wi-Fi的硬件冲突,以及特定GPIO的限制条件。核心功能包括:配置采样位宽(9-12位)、设置电压衰减(0.8V-2.6V量程)、获取原始值并通过校准转换为实际电压。关键API涉及adc1_config_width()、adc1_get_raw()及esp_adc_cal_characterize()等。
2025-06-12 09:31:55
624
原创 十六、【ESP32全栈开发指南:I2C接口详解及BH1750传感器实战】
I2C(Inter - Integrated Circuit)是飞利浦公司开发的一种串行通信总线,采用双线制设计,这一设计使得它在众多通信总线中脱颖而出,以简洁的线路实现了高效的数据传输。:I2C总线需要外接4.7KΩ上拉电阻,这是因为I2C总线采用开漏输出结构,上拉电阻可以将总线拉高到电源电压,保证在没有设备拉低总线时,总线处于高电平状态,从而实现数据的正确传输。7位地址可以支持127个不同的从设备,而10位地址则可以支持更多的从设备,满足了不同规模系统的需求。
2025-06-11 09:55:17
1069
原创 十五、【ESP32全栈开发指南: LEDC PWM呼吸灯实现详解】
ESP32 LEDC模块为LED调光和PWM信号生成提供硬件支持。主要特性包括16个独立通道(8高速+8低速)、13位高分辨率控制、硬件渐变功能和多时钟源选择。通过核心API实现:1)定时器配置(ledc_timer_config)设定频率和分辨率;2)通道绑定(ledc_channel_config)关联GPIO;3)渐变控制(ledc_fade_*系列函数)实现硬件级呼吸灯效果。典型应用如3000ms渐变呼吸灯仅需三步:配置定时器、设置通道、启动非阻塞渐变,全程零CPU占用。
2025-06-11 09:37:07
1455
原创 十四、【ESP32全栈开发指南:搭建轻量级HTTP服务器】
ESP-HTTP-Server开发指南 本文介绍了基于ESP32的HTTP服务器开发要点: HTTP协议基础 解析HTTP请求/响应结构,包含请求行、请求头、请求体三部分 常见状态码含义和使用场景
2025-06-10 10:35:56
642
原创 十三、【ESP32开发全栈指南:HTTP客户端使用详解】
本文介绍了ESP32在物联网应用中通过ESP-IDF框架实现HTTP/HTTPS通信的方法。内容涵盖基础配置、API使用、HTTPS加密、POST请求及性能优化技巧,并提供了获取天气API数据的实战案例。
2025-06-10 09:33:43
1106
原创 STM32学习笔记: ADC与DAC开发实战指南
本文详细介绍了STM32中的ADC和DAC模块应用。首先解析了ADC(采样-保持-量化-编码)和DAC(电阻网络转换)的工作原理及关键参数,包括分辨率、转换时间和量化误差。其次阐述了STM32硬件架构配置要点,如ADC的通道管理、触发源设计,以及DAC的波形生成模式。核心部分通过代码实例展示了ADC多通道扫描+DMA传输的实现,以及DAC正弦波发生器的开发方法。最后提出一个闭环温控系统综合案例,并给出性能优化建议和故障排查方案。
2025-06-09 10:09:49
946
原创 十二、【ESP32全栈开发指南: IDF开发环境下cJSON使用】
本文介绍了JSON在ESP32开发中的应用,重点讲解了cJSON库的使用方法。主要内容包括:1)JSON的基本语法规则和数据类型;2)如何在ESP-IDF环境中集成cJSON库;3)通过代码示例详细展示JSON数据的生成与解析过程;4)内存管理和错误处理的最佳实践。
2025-06-09 09:42:55
1546
原创 STM32学习笔记:外部中断(EXTI)原理与应用详解
STM32外部中断(EXTI)开发指南:本文详细介绍了STM32的外部中断机制,包括其工作原理和配置方法。
2025-06-07 15:51:41
868
原创 十一、【ESP32开发全栈指南: TCP通信服务端】
通过合理设计和优化,ESP32 TCP服务器可以满足各种物联网应用的通信需求,提供稳定可靠的数据传输服务。
2025-06-07 15:25:47
813
原创 十、【ESP32开发全栈指南: TCP客户端】
通过本指南,您将掌握ESP32 TCP客户端开发的完整流程,从基础连接到高级优化,满足各类物联网应用的通信需求。:OTA固件升级(TCP)、传感器数据上报(UDP)、远程控制(TCP)
2025-06-07 15:12:05
1106
原创 九、【ESP32开发全栈指南: UDP通信服务端】
应用层Socket APIlwIP协议栈ESP-NETIFWiFi/ETH驱动lwIP轻量级TCP/IP栈核心文档头文件:AppSocketNetworksocket()bind()recvfrom()UDP数据包接收数据sendto()发送响应loop[数据交换]close()AppSocketNetwork4.2 代码实现4.3 关键配置项menuconfig 设置:AP模式初始化:五、模式对比与选择特性Station模式AP模式网络角色连接现有WiFi自
2025-06-07 15:07:22
894
原创 八、【ESP32开发全栈指南:UDP客户端】
ESP32 UDP客户端实现指南 本代码实现了一个完整的ESP32 UDP客户端,包含WiFi连接和UDP通信功能。
2025-06-07 14:46:35
441
原创 七、【ESP32开发全栈指南:ESP32 IDF SmartConfig 技术深度解析】
由 TI 首创并由乐鑫在 ESP32 实现优化。其核心价值在于解决无输入接口设备的联网难题。:生产环境务必启用加密,密钥需在设备出厂时烧录至NVS,并与配网APP同步。设置ESPTOUCH_DONE_BIT。初始化WiFi Station模式。SmartConfig 本质是。创建SmartConfig任务。设置CONNECTED_BIT。监听SC_EVENT。配置WiFi连接参数。
2025-06-07 14:12:45
1329
原创 六、【ESP32开发全栈指南:深入解析ESP32 IDF中的WiFi AP模式开发】
文中提供了完整的代码示例,涵盖从基础配置到客户端管理的全流程实现。
2025-06-06 20:30:01
1492
原创 五、【ESP32开发全栈指南:深入解析ESP32 IDF中的WiFi STA模式开发】
本文详细介绍了ESP32在ESP-IDF框架下的WiFi STA模式配置与优化方法。
2025-06-06 20:16:40
601
原创 四、【ESP32开发全栈指南:ESP32 IDF串口开发全解析】
本文代码在ESP32-S3(IDF v5.1)实测通过,满足工业级应用需求。避免使用GPIO9/10(UART1默认引脚),否则可能导致Flash通信冲突。附录:关键问题解决方案(表格增强版)串口在ESP32开发中的核心地位。五、调试专题(新增实战案例)二、ESP32串口硬件基础。四、高级应用(深度扩展)六、扩展应用(新增项目)
2025-06-05 14:56:10
825
原创 三、【ESP32开发全栈指南:ESP32高分辨率定时器接口使用】
本文介绍了ESP32中的esp_timer库,作为FreeRTOS软件计时器的高分辨率替代。esp_timer利用64位硬件计时器,提供微秒级精度和一次性及周期性计时器功能
2025-06-04 17:22:34
703
原创 一、【ESP32开发全栈指南:Windows平台ESP32开发环境搭建】
本文介绍了ESP32开发环境的搭建流程。首先需要准备ESP32开发板、Type-C数据线和电脑。环境搭建分为四步:1)删除旧配置并下载ESP-IDF工具;2)安装ESP-IDF离线开发包;3)在VSCode中配置Espressif IDF插件;4)完成插件配置。最后通过构建和烧录测试验证环境是否搭建成功。整个过程需要注意避免使用中文路径及特殊符号,最终成功完成环境配置即可进行开发。
2025-05-27 11:59:55
568
原创 学好电路设计是硬件工程师的核心能力之一,需要系统的理论学习、实践积累和持续迭代。通过以下路径,结合至少3-5个完整项目经验,高效掌握电路设计技能;
模拟电路:深入理解放大器(共射/共源/差分)、滤波器、振荡器、电源电路(LDO、Buck/Boost)的设计原理。数字电路:掌握组合逻辑(门电路、编码器)、时序逻辑(触发器、计数器)、接口协议(SPI/I2C/UART)。仿真工具:LTspice(电源仿真)、ADS(射频电路)、Cadence Sigrity(信号完整性)。PCB设计:高速布线规则(阻抗匹配、蛇形走线)、EMC优化(地平面分割、屏蔽设计)。进阶学习功率器件(IGBT、SiC/GaN)和射频器件(LNA、PA)的特性。
2025-04-24 15:08:05
263
原创 程序员职业发展方向梳理,结合行业趋势与典型路径,覆盖技术、管理、跨界等六大核心方向
路径:初级开发 → 高级开发 → 技术专家(如Java/Python领域专家) -技能:深入掌握至少一门编程语言(Java、Python等),同时熟悉前后端技术栈(如Spring全家桶、React/Vue框架)。
2025-04-18 10:10:00
434
原创 Linux系统编程基础:信号操作实战
信号是Linux系统中用于进程间通信的一种重要机制。通过signal()kill()和sigwait()等函数,我们可以方便地处理信号、向进程发送信号以及设置更详细的信号处理函数。希望本文能帮助你更好地理解Linux信号操作,并在实际编程中灵活运用。
2024-12-16 09:28:26
876
原创 Linux应用开发八股文(四) 信号
信号是Linux系统中用于进程间通信的一种机制。信号可以看作是操作系统向进程发送的消息,用于通知进程发生了某个特定的事件。本文将介绍Linux应用开发中与信号处理相关的常用函数、参数以及定时器和信号集的使用。
2024-12-13 15:14:24
633
原创 Linux系统编程基础:线程操作实战
线程是进程中的一个执行单元,拥有独立的执行栈、局部变量和程序计数器,但与其他线程共享进程的地址空间和资源。本文详细介绍了Linux线程操作的基础知识,包括线程的创建、终止、等待、同步和属性设置。通过实战示例,读者可以更好地理解这些概念,并在实际编程中灵活运用。掌握线程操作是进行Linux多线程编程的重要基础。
2024-12-10 10:12:16
566
原创 Linux系统编程基础:进程操作实战
进程是程序执行时的一个实例,包含了程序的执行状态、内存空间、打开的文件描述符等资源。每个进程都有一个唯一的进程ID(PID)和父进程ID(PPID)。本文详细介绍了Linux进程操作的基础知识,包括进程的创建、执行、终止、等待和信号处理。通过实战示例,读者可以更好地理解这些概念,并在实际编程中灵活运用。掌握进程操作是进行Linux系统编程的重要基础,希望本文对读者有所帮助。
2024-12-10 10:05:32
306
原创 Linux系统编程基础:文件操作实战
在Linux系统中,文件操作是一项基本而重要的任务。本文将通过一系列示例代码,介绍如何在Linux环境下使用C语言进行文件的创建、打开、关闭、读取、写入和定位操作。最后,我们将通过一个小项目来综合应用这些知识,实现一个简单的ini配置文件的读写功能。
2024-12-09 10:09:26
689
原创 STM32学习笔记:定时器应用开发
STM32微控制器提供了多种类型的定时器,包括基本定时器、通用定时器和高级控制定时器。这些定时器可以用于定时、计数、PWM输出等多种应用。通用定时器可以配置为PWM模式,生成脉宽可调的PWM信号,用于控制电机、LED等设备。PWM模式主要涉及以下寄存器:控制寄存器(CR1)输出比较模式寄存器(CCMR)输出比较寄存器(CCR)输出使能寄存器(CCER)STM32定时器是嵌入式系统开发中的基础内容,通过定时器,开发者可以实现精确的时间控制、PWM输出等功能。
2024-12-06 15:46:39
1294
原创 Linux应用开发八股文(三) 线程
线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如执行栈、程序计数器、寄存器组和局部变量),但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。在Linux中,线程和进程的区别并不明显,Linux将线程视为一种特殊的进程,称为“轻量级进程”(Light Weight Process, LWP)。Linux线程编程主要基于POSIX线程库(Pthreads),提供了一组C语言函数用于线程的创建、管理和同步。以下是一个简单的Linux线程编程示例,创建两个线程,每个线程打印一段信息。
2024-12-06 15:10:52
194
原创 STM32学习笔记:单片机外设之GPIO
GPIO是单片机中最重要的外设之一,用于实现与外部设备的通信和控制。STM32F103系列单片机的GPIO具有以下特点:16个可配置的GPIO引脚支持上拉、下拉、浮空输入和模拟输入支持输出推挽和开漏输出支持输出速度和驱动能力配置支持中断和事件触发。
2024-12-02 17:14:00
500
原创 Linux应用开发八股文(二) 进程
介绍一些常用的Linux系统编程函数,包括创建子进程、执行新程序、等待子进程结束、向进程发送信号、获取进程ID、设置进程优先级、主动让出CPU、终止进程和使进程睡眠
2024-12-02 16:38:21
780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人