自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 ESP32学习笔记_ESP-LOG(1)——日志宏的基础使用

摘要: ESP-IDF日志系统提供六级日志过滤(None/Error/Warning/INFO/Debug/Verbose),通过CONFIG_LOG_DEFAULT_LEVEL设置默认级别,编译时通过CONFIG_LOG_MAXIMUM_LEVEL控制日志保留上限,支持运行时用esp_log_level_set()动态调整。系统包含三种日志宏:标准ESP_LOGx用于常规环境,ESP_EARLY_LOGx适用于启动初期,ESP_DRAM_LOGx专为中断禁用等特殊场景设计

2025-08-10 12:00:23 558

原创 [Sensors]BMI270 FIFO的使用

摘要:BMI270传感器的FIFO功能详解,包括两种工作模式(流式传输和FIFO模式)、2048字节缓冲区、含/无报头数据帧结构(常规帧与控制帧)、中断配置(满中断和水位线中断)及数据同步机制。重点说明如何通过寄存器配置启用加速度计、陀螺仪和辅助接口数据采集,并分析含报头模式下帧头解析方法(fh_mode/fh_parm位域)和动态数据布局特点,为多传感器数据采集和低功耗应用提供实现方案。

2025-08-04 21:55:42 725

原创 ESP32学习笔记_Components(1)——使用LED Strip组件点亮LED灯带

本文介绍了如何利用ESP32-S3的RMT外设驱动WS2812 LED灯带。RMT外设通过精确时序控制可满足数字LED灯带的严格时序要求。提供了具体代码实现,包括LED灯带配置、RMT参数设置、颜色控制等关键步骤,并给出了相关官方文档和组件安装方法。示例程序演示了如何控制两个LED分别显示红色和绿色,涉及初始化、像素设置和刷新等操作流程。

2025-07-25 21:50:20 449

原创 ESP32学习笔记_Peripherals(4)——MCPWM基础使用

摘要 ESP32的MCPWM(电机控制脉宽调制器)是一种多功能PWM生成器,主要用于电机控制、数字电源转换和LED调光等场景。该系统包含定时器、操作器、比较器和生成器等模块,支持高精度PWM信号输出,并具备故障检测、同步控制和脉宽捕获等高级功能。关键模块包括:定时器(提供时间基准)、操作器(生成PWM波形)、比较器(控制占空比)和生成器(输出波形)。通过配置结构体参数和调用相关API函数,可实现多路PWM输出。该技术特别适用于FOC(磁场定向控制)等高级电机控制算法,为工业伺服、电动汽车等应用提供高效控制方

2025-07-25 21:43:39 760

原创 基于LiteOS与SLE的多任务无线控制器项目实战

SLEController是基于Hispark ws63核心板的多任务无线控制器项目,采用LiteOS实时操作系统和C语言开发。项目实现了多通道摇杆数据采集、OLED实时显示、SLE低延迟无线通信等功能,适用于远程设备控制场景。系统采用多任务并发架构,通过队列和互斥锁实现任务间高效协同,具备异常处理、测试模式切换等特性。硬件需搭配SSD1306 OLED屏和摇杆模块使用,软件开源在Gitee平台。项目展示了LiteOS与SLE协议在嵌入式系统中的实际应用。

2025-07-08 21:59:10 832

原创 ESP32学习笔记_Peripherals(3)——ADC

本博客介绍了ESP32-S3芯片内置SAR ADC的原理、参考电压、分辨率、信号衰减等基础知识,并讲解了如何使用ESP-IDF驱动库实现ADC的连续采样(DMA)功能,演示了多通道模拟信号(如摇杆模块)的采集与处理流程

2025-05-25 15:55:58 761

原创 LiteOS与SLE透传实战案例

本文深入介绍了基于华为LiteOS与星闪通信协议的透传设备开发全流程。硬件部分使用BM-H63模块设计了USB即插即用的透传设备;软件部分聚焦LiteOS核心概念与队列通信机制,通过三个递进式案例展示应用:从基本LED控制到完整的SLE透传功能。核心实现为Server-Client架构,服务端处理输入数据格式化后透传,客户端根据接收数据特征控制LED。项目全面展示了嵌入式实时操作系统开发流程,包含任务创建、同步通信、连接管理等关键技术,为物联网设备开发提供实用参考。

2025-05-01 20:53:41 1318

原创 2024-2025 竞赛路上,我收获了什么

本文记录了一名大学生在物联网设计与创新创业竞赛中的亲身经历与感悟,专为缺乏参赛经验的大一/大二小团队而写。作者从物联网基础概念出发,详细介绍了比赛流程、选题方法与项目拆解技巧,并分享了八条实战"小聪明"。文章语言亲切诚恳,既有理论指导又有实战案例,为初次参赛的学生提供了全面的参考框架。作者强调,比赛不仅是为了奖项,更是一段宝贵的成长旅程,鼓励每位学生勇敢踏上竞赛之路,发现属于自己的精彩。

2025-04-03 15:09:33 1795

原创 ESP32 BLE 初步学习笔记

这篇笔记详细介绍了蓝牙技术的核心概念和实现,包括蓝牙网络的拓扑结构(如微微网、散射网和 Mesh 网络)、蓝牙连接流程(广播、扫描、连接建立等)、以及蓝牙协议栈的分层结构(GAP 和 GATT)。文中还深入解析了 BLE 的数据传输机制、MTU 配置、广播数据格式和特性描述符等内容,并结合 ESP32 的实际开发,提供了丰富的技术细节。

2025-03-20 20:23:25 967

原创 C语言 进阶指针学习笔记

关于指针数组、数组指针、函数指针、函数指针数组、回调函数

2025-03-09 19:32:53 1052

原创 ESP32学习笔记_Bluetooth(3)——GATT

这篇博文介绍了 GATT(通用属性配置文件)的相关内容,主要包括 GATT 和 ATT 的关系,GATT 的配置和角色,GATT 配置文件的层次结构,以及服务和特性的定义,同时描述了特性声明、特性值声明和特性描述符的结构和作用。

2025-02-24 22:05:09 1348

原创 ESP32学习笔记_Bluetooth(2)——Bluetooth Stack、GAP

这篇博文介绍了 ESP32 蓝牙协议栈的相关内容,主要包括 ESP-IDF 支持的两种蓝牙协议栈(Bluedroid 和 Apache NimBLE),它们各自的特点和适用场景;以及蓝牙系统的整体结构,分为控制器和主机两部分,以及它们的功能模块;最后描述了通用访问配置文件(GAP)的目的、配置文件角色、可发现模式和程序、连接模式和程序、安全模式和程序,以及设备连接建立过程。

2025-02-24 13:46:21 1200

原创 FreeRTOS 核心模块初步学习总结与优化

这篇博客对之前发布的FreeRTOS部分内容进行了总结和修正,涵盖了Task、Queue、SoftwareTimer、Semaphore、Event、Notification、StreamBuffer和MessageBuffer等重要模块,在总结过程中修正了自己作为初学者时曾犯的错误,并对文档进行了格式整理,删去了不必要的内容,力求让内容更加简洁、易懂,便于参考

2025-01-19 14:21:53 1221

原创 ESP32学习笔记_FreeRTOS(7)——Stream and Message

本文介绍了FreeRTOS中的流缓冲区(StreamBuffer)和消息缓冲区(MessageBuffer)的使用,重点讲解了它们在任务间数据传输中的应用。流缓冲区适用于实时数据流的传输,支持单一写入者和读取者,而消息缓冲区则用于传递定长消息,确保数据传输的精确性。通过详细的函数使用示例,本文帮助开发者理解如何创建、发送、接收以及重置这些缓冲区,从而优化任务间的通信和同步,提升实时系统的数据处理效率

2025-01-19 12:59:39 1044

原创 ESP32学习笔记_FreeRTOS(6)——Event and Notification

这篇博客详细介绍了FreeRTOS中的事件组和任务通知机制,讲解了事件组如何通过位操作实现任务间的同步与通信,以及任务如何通过通知机制进行阻塞解除和数据传递。博客提供了多个代码示例,展示了如何使用事件组和任务通知在多任务环境中实现任务同步,特别适用于任务间的依赖关系和信号传递

2025-01-18 21:32:18 1254

原创 ESP32学习笔记_FreeRTOS(5)——Mutex

这篇博客内容围绕 FreeRTOS 中的互斥量(Mutex)和递归互斥量(Recursive Mutex)的使用进行了详细的介绍。整体结构清晰,涵盖了互斥量的基本概念、使用方式以及与其他同步机制(如二进制信号量)的比较,还提供了两段示例代码,演示了互斥量和递归互斥量在任务同步中的应用

2025-01-15 22:52:30 1187

原创 I2C学习笔记

本篇笔记深入总结了I2C协议的基本概念和应用场景。I2C协议作为一种简单的通信协议,其操作流程和数据传输方式相对容易理解,适合作为学习其他更复杂协议的入门。本文结合了I2C的官方文档以及多个设备的技术手册,全面地展示了I2C协议在实际开发中的各个方面,包括其工作原理、优缺点、常见的使用场景和在不同设备中的实现方式。

2025-01-07 16:11:43 1112

原创 ESP32学习笔记_FreeRTOS(4)——Semaphore

这篇博客详细介绍了 FreeRTOS 中二值信号量和计数信号量的基本概念、API 使用方法及实际应用场景,辅以完整的示例代码,适合初学者学习

2024-12-15 16:51:06 755

原创 ESP32学习笔记_Peripherals(2)——i2C

这篇博客以ESP32的I2C通信为核心,深入讲解了I2C协议基础知识、ESP32硬件支持及其API使用方法,适合嵌入式开发者快速上手I2C编程。文章逻辑清晰,从理论到实践层层展开,涵盖了I2C通信原理、总线特性、上拉电阻的选择等基础内容,并结合ESP-IDF的API对I2C主从模式的安装、卸载、数据读写进行了详尽说明。通过表格和代码示例,详细展示了API参数和返回值的用法,代码部分以ADXL345加速度传感器为案例,提供了完整的初始化和数据读取流程,注释详尽,便于实操应用。

2024-12-12 15:14:51 1452

原创 ESP32学习笔记_Peripherals(1)——UART

这篇博客详细讲解了 ESP32 UART 通信的基础知识、配置流程和实践代码,涵盖了 UART 的工作原理、API 使用方法以及实际应用场景,结合完整的代码示例展示了如何与外部设备(如 4G 模块)进行串口通信。内容逻辑清晰,注释详尽,并附有运行调试截图验证效果,实用性强

2024-11-28 14:53:21 1110

原创 ESP32学习笔记_FreeRTOS(3)——SoftwareTimer

这篇笔记全面介绍了 FreeRTOS 软件定时器的核心概念和使用方法,包括定时器的创建、管理、常用 API 和辅助函数,并通过示例代码演示了如何启动、重置和更改定时器的周期。它强调了软件定时器的灵活性、平台无关性以及与硬件定时器的对比

2024-11-26 23:05:03 1183

原创 ESP32学习笔记_FreeRTOS(2)——Queue

在嵌入式系统开发中,任务之间的高效通信是实现多任务协作的关键。FreeRTOS 提供了强大的队列机制,支持任务之间安全、灵活地传递数据,是实现任务同步和事件通知的核心工具。本篇博客将全面解析 FreeRTOS 队列的工作原理和应用场景,从基础操作到高级功能(如队列集合和邮箱)的深入探讨

2024-11-24 21:26:45 847

原创 ESP32学习笔记_Bluetooth(1)——蓝牙技术与 BLE 通信机制简介

这篇笔记详细讲解了蓝牙技术的分类、核心架构和通信流程,重点介绍了低功耗蓝牙(BLE)的协议栈、角色划分及连接机制,结合拓扑示例清晰阐述了蓝牙网络配置和操作过程

2024-11-24 21:25:13 1626

原创 ESP32学习笔记_FreeRTOS(1)——Task的创建和使用

本文基于 FreeRTOS 和 ESP-IDF,讲解了任务管理、优先级设置、堆栈监控及任务看门狗(IWDT 和 TWDT)等核心功能,涵盖任务创建、挂起、时间片轮转和任务调度等内容。通过代码示例说明如何使用 vTaskList() 获取任务状态,利用 uxTaskGetStackHighWaterMark() 检测栈溢出,以及订阅任务看门狗以监控长时间运行任务。文章详细分析了调度器机制及错误日志,如 TWDT 超时问题,并结合 ESP-IDF 的配置说明(如 Menuconfig 设置)提供优化建议。

2024-11-10 20:57:19 1196

原创 ESP32外设的简单使用

本文详细讲解了ESP32在Arduino环境下的Wi-Fi、串口通信(UART)、I2C、定时器、蓝牙等功能的使用方法。每个功能模块都包含了关键函数、参数说明、注意事项及代码示例,帮助读者快速掌握ESP32的核心功能。文章还特别强调了编程中的常见问题,例如UART1引脚冲突、中断中避免使用阻塞函数等,避免了在实际项目中遇到的陷阱。整体结构清晰,逻辑流畅,非常适合ESP32初学者和开发者进一步了解和应用。

2024-10-31 21:42:19 1732

原创 【树莓派学习】开发环境配置

本文主要介绍树莓派的开发环境配置,包括软件源的替换、pip源的替换、WiringPi的安装

2024-04-23 23:39:39 2294

原创 【树莓派学习】系统烧录及VNC连接、文件传输

介绍树莓派系统烧录、VNC连接及无线文件传输的方法。

2024-04-20 22:13:07 2434 3

原创 C语言的数据存储详解

本文主要讲解C语言中的数据存储模式

2024-03-01 13:21:35 1473

原创 C语言对类型的转换

主要讲了C语言中整形在存储和调用时发生的整形提升、截断和算数转换

2024-03-01 12:35:06 439

原创 fgets的使用方法详解

本文主要讲述fgets()函数的使用方法及其注意事项

2024-02-15 23:34:10 4966 1

原创 常用调试方法

主要讲调试的方法和各类调试工具的使用

2024-02-15 01:57:20 1578

原创 51 AutoLeaders控制组——51单片机任务二

51 AutoLeaders控制组——51单片机任务二解析

2023-12-16 15:03:01 395

原创 51 DS1302

有关DS1302的原理、运用,以及利用DS1302实现时钟和可调时钟

2023-12-15 14:18:01 2343

原创 51 点阵屏

介绍51单片机开发板上LED点阵屏的工作原理、使用方式。

2023-12-13 11:22:51 214

原创 51 串口通信

介绍了串口通信的原理、运用方法、所需知识。

2023-12-10 04:47:26 1579

原创 51 定时器

关于51单片机定时器的原理、设置和使用

2023-12-05 20:38:54 242

原创 51 矩阵按键

矩阵键盘的运用,包括利用矩阵键盘实现输入C4密码的效果

2023-11-25 23:42:09 159

原创 51 模块化编程

C语言模块化编程

2023-11-22 21:49:34 161

原创 51 AutoLeaders控制组——51单片机任务

模式2要求最后两位显示数字按1s的频率改变,那么这里我们需要写一个类似计时器的程序来计算一秒的时间,但是不能直接用延时函数,因为在延时函数执行的过程中我们是没有办法进行操作的,因此我们需要考虑其它的实现方法,这里我通过计算数码管的扫描此时来得到大致1s的时间。模式4的要求为每按一下K4,显示的数字加一,那么这里我们需要一段代码用于判断K4是不是被第一次按下(即K4被按下前是否处于模式4),当K4是第一次按下时,将计数器归零,否则计数器加1,最后在数字达到99时,加1则归零。时间周期:通常指一个时钟周期。

2023-11-18 15:08:18 291

原创 51 数码管

51单片机开发板上数码管的运用

2023-11-17 23:24:08 174

空空如也

空空如也

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

TA关注的人

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