自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hemoparrot的专栏

记录每天学习的点滴

  • 博客(238)
  • 资源 (16)
  • 收藏
  • 关注

原创 《别让 AI 帮你写废了代码》✅程序员 + AI 的高效协作指南

我们不反对用 AI 编程,相反,我们鼓励程序员用好它。但前提是你要理解:AI 不是工程师,是你的助手项目的质量,始终由程序员负责你负责架构和判断,AI 负责执行和加速这个系列,是我们作为一线开发者的真实思考和实践总结。希望它能帮助更多人避免被 AI 误导,真正成为 AI 的掌舵者。

2025-04-12 23:35:08 862 6

原创 STM32 模块化开发实战指南:系列介绍

本文是《STM32 模块化开发实战指南》系列的导读篇,旨在介绍整个系列的写作目的、适用读者、技术路径和每一篇的主题规划。适合从事 STM32、裸机或 RTOS 嵌入式开发的个人开发者、初创工程师或企业项目团队。

2025-04-11 21:25:24 1363 2

原创 单片机实现多线程的方法汇总

本文将系统性地介绍 单片机中实现“伪多线程”或多任务并发的 5 种主流方式,从最轻量的状态机轮询,到真正的 RTOS,再到软调度器和协程,每种都配有代码示例和优缺点分析。

2025-04-05 22:58:45 2167 14

原创 Zephyr几个值得深入学习的经典实践案例

本文介绍了ZephyrRTOS嵌入式开发中的经典实践案例,包括:1) DeviceTree硬件抽象实现代码与硬件分离;2) 多线程消息队列实现生产者-消费者模式;3) I2C传感器驱动开发方法;4) 低功耗电源管理策略;5) CoAP网络通信实现;6) TLS安全通信配置;7) 单元测试与调试技术。这些实践案例展现了Zephyr在硬件抽象、实时调度、驱动开发、电源管理、网络通信、安全性和测试调试方面的强大能力,为嵌入式开发者提供了硬件无关、高效可靠的解决方案,适用于从简单传感器到复杂IoT网关的各种应用场景

2025-06-19 23:32:27 472

原创 深入理解Zephyr Manifest:现代嵌入式开发的项目管理利器

在现代嵌入式系统开发中,项目的复杂性正在急剧增长。单个项目可能涉及多个代码库、不同的构建系统、各种依赖关系,以及复杂的版本管理需求。传统的项目管理方式已经难以应对这种复杂性,这就是为什么Zephyr项目引入了Manifest系统的原因。本文将深入探讨Zephyr Manifest的核心概念、实际应用场景、最佳实践,以及如何在实际项目中有效使用这一强大的工具。

2025-06-19 23:19:23 347

原创 Zephyr 高阶实践:彻底讲透 west 构建系统、模块管理与跨平台 CI/CD 配置

本文深入解析Zephyr操作系统的west构建系统,揭示其作为多仓库调度与模块集成系统的三层核心能力:工程调度器、构建封装器和元数据管理器。重点剖析west.yml的模块化依赖机制,详解构建流程(westbuild)的工作机制,并提供企业级CI/CD落地方案设计。文章强调模块版本锁定策略的重要性,给出多平台协作与私有模块接入的最佳实践,最终形成一套完整的Zephyr工程化开发方法论。通过掌握west工具链,开发者能够构建可靠、可维护、跨芯片架构的一体化嵌入式系统解决方案。

2025-06-18 23:34:00 613

原创 Zephyr 开发必备环境工具全解析:SDK、west、ninja、JLink 到 venv 的全面指南

本文系统梳理了Zephyr开发所需工具及管理方案,解决了初学者常见困惑。核心工具包括west、zephyr-sdk、cmake/ninja等基础工具,以及openocd、jlink等可选调试工具。针对工具冲突问题,建议使用venv虚拟环境隔离管理,并给出多平台开发时的最佳实践:每个项目单独维护一套SDK+venv+项目结构。最后提供了多项目兼容的搭建脚本模板,实现无痛迁移与协作开发。该方案既能确保开发环境稳定性,又能高效管理多芯片平台项目。

2025-06-18 23:24:32 655

原创 Zephyr 开发必备技能:一文搞懂 west manifest

本文深入解析Zephyr项目的westmanifest工具与Manifest文件管理,从基础概念到高级应用。文章首先介绍westmanifest作为Zephyr模块化架构的核心工具,负责管理west.yml文件中的模块信息、Git地址及版本控制。随后详细讲解Manifest文件的基本结构、字段含义,以及westmanifest子命令的使用方法,包括查看内容、冻结版本、验证文件等操作。文章还探讨了Manifest的导入继承机制和在团队协作中的版本管理策略,并给出常见问题排查技巧。最后强调Manifest文件作

2025-06-17 07:00:00 914

原创 Zephyr 开发必备技能:一文搞懂 west update

摘要: Zephyr项目管理中,west update是实现多仓库版本同步的核心命令,通过解析west.yml文件自动下载/更新指定模块到正确路径。文章详解其原理、基本用法(初始化、更新模块)和进阶技巧(冻结版本、验证配置),并针对常见问题(网络超时、模块混乱)提供解决方案。强调通过规范使用west update和west.yml管理模块依赖,确保项目一致性,适用于复杂SDK维护与CI场景。掌握该命令是构建可靠Zephyr项目的关键基础。

2025-06-17 06:00:00 962

原创 Zephyr 开发必备技能:一文搞懂 west build

本文深入解析Zephyr RTOS构建工具westbuild的核心原理与高级用法。作为Zephyr项目的核心构建命令,westbuild集成了CMake配置、Kconfig解析、设备树处理和Ninja编译等完整流程。文章详细介绍了westbuild的基本命令格式、构建全流程解析、Kconfig配置技巧、Overlay分层配置方法,以及构建错误排查和高级构建技巧。特别强调了如何通过menuconfig图形界面进行系统配置,以及使用自定义宏和CMake命令优化构建过程。掌握westbuild是高效开发Zephy

2025-06-16 22:16:56 556

原创 Zephyr 开发必备技能:一文搞懂 west debug

Zephyr开发中,westdebug是官方推荐的调试工具,它集成了GDB和底层调试服务,提供交互式调试能力。与westflash的静态烧录不同,westdebug支持断点设置、变量查看和栈回溯等核心调试功能。开发者可通过命令行或VSCode图形界面使用westdebug,配合GDB命令进行代码分析。典型调试流程包括:编译带符号的ELF文件、启动调试会话、设置断点、检查寄存器和内存。常见问题涉及连接失败、断点失效等,可通过检查runner配置和重新构建解决。掌握westdebug能显著提升嵌入式开发效率,与

2025-06-16 22:02:57 1005

原创 Zephyr 开发必备技能:一文搞懂 west flash

本文介绍了Zephyr项目中的westflash工具使用指南,主要内容包括:1. westflash是Zephyr官方提供的标准烧录工具,通过封装不同平台烧录器驱动实现通用化流程;2. 基本使用方法及常用参数技巧,如指定runner、自定义hex文件和参数传递方法;3. 常见错误排查方法及验证技巧;4. 针对不同芯片的适配建议和开发流程优化。文章还包含烧录流程图、错误解决方案和开发建议,帮助开发者快速掌握westflash的核心操作,提升Zephyr项目的固件烧录效率。

2025-06-16 21:27:29 877

原创 【Zephyr 系列 27】自定义 Shell 命令框架:打造自己的控制台命令系统

《Zephyr Shell命令框架设计与实现》 摘要: 本文介绍了基于Zephyr RTOS构建定制化Shell命令框架的方法。框架核心包含7个关键模块:1)基础命令注册机制;2)多级子命令支持;3)分模块注册架构;4)动态参数解析;5)常用调试命令设计;6)产测脚本集成;7)优化建议与问题排查。该框架实现了业务逻辑与调试命令的解耦,支持嵌套子命令和参数传递,可满足传感器数据读取、BLE操作等定制需求,显著提升嵌入式系统的调试效率和产测自动化能力。通过合理配置Shell历史、回显等功能,构建出适用于开发调试

2025-06-15 23:37:49 1614

原创 【Zephyr 系列 26】跨平台测试框架设计:CLI + 自动脚本 + OTA 校验一体化方案

在嵌入式开发中,当项目复杂度提升(多模块、多平台、多角色通信)后,测试体系不完备会成为上线和维护的最大瓶颈。本篇旨在构建一个面向 Zephyr 系统的跨平台测试框架,适用于:💻 Zephyr 开发者(多个 MCU 平台测试)🧪 产测工程师(需要批量自动测试)🛰 OTA 维护人员(远程验证功能)🔁 构建 CI/CD 流水线的固件团队目标是实现:CLI + 自动化脚本 + OTA 校验 + 报告输出 + 多平台兼容。

2025-06-15 23:27:15 668

原创 【Zephyr 系列 25】多芯片协同设计:主控 + BLE + LoRa 芯片的统一调度与消息系统

文章摘要:本文探讨多芯片协作系统设计,提出主从架构下的统一调度方案。通过dispatcher框架集成BLE、LoRa等模块,设计消息总线实现异步通信,采用uart_mux管理多路串口资源。系统支持跨芯片消息路由和低功耗协同调度,并以资产追踪器为例演示三芯片协同方案。该架构有效解决多芯片任务调度、总线竞争和功耗控制等挑战,为物联网终端等场景提供模块化解决方案。(149字)

2025-06-14 22:50:46 1044

原创 【Zephyr 系列 24】设备日志、事件与远程调试机制设计:为每一块硬件留痕,助力稳定性分析

【摘要】 针对Zephyr RTOS设备在无人值守环境下的运维需求,本文设计了一套完整的日志系统架构。系统采用分层设计,包含核心日志管理(等级过滤、环形缓冲)、Flash持久化存储、远程上传(MQTT/串口)及结构化事件记录等模块。日志支持分级输出(DEBUG至CRITICAL)、工厂测试追溯和OTA状态跟踪,并通过CRC校验与敏感字段屏蔽保障安全性。配套Python工具链可实现本地/云端日志解析,满足产线批量调试与故障复现需求。该方案显著提升设备运行可观测性,为多芯片协同等复杂场景提供诊断基础。(149字

2025-06-14 22:36:53 1185

原创 【Zephyr 系列 23】构建 Web OTA 平台与远程运维工具链:从固件上传到设备在线升级全流程

🔍 WebOTA平台:远程升级与设备管理一体化解决方案 针对企业设备数量激增的痛点,传统本地OTA已无法满足批量升级、状态追踪和安全可控的需求。本文提出基于Zephyr + Web服务的远程OTA平台架构,核心功能包括: ✅ 多模块协同:React/Vue前端管理设备与任务,后端调度升级流程,MQTT实现实时通信,SQLite/PostgreSQL存储设备数据。 ✅ 安全升级链:固件签名校验(RSA/ED25519)、HTTPS/MQTT加密通信、权限管控,保障OTA过程可靠。 ✅ 全流程闭环:从任务下发

2025-06-13 22:54:38 917

原创 【Zephyr 系列 22】从单机开发到平台化:构建你自己的 Zephyr 物联网开发平台

《Zephyr物联网平台化开发实践》摘要:针对Zephyr项目碎片化开发痛点,提出模块化平台架构方案。通过platform_core核心模块(AT系统/BLE状态机等)实现基础功能复用,plugins插件机制支持LoRa/Modbus等协议灵活组合,projects目录管理差异化产品配置。平台采用CMake+west统一构建,配套自动配置生成、OTA打包等工具链,使新产品开发时间缩短80%。该架构已支持5+产品线,实现代码复用率提升60%,所有功能可产测验证,为后续WebOTA平台建设奠定基础。(149字)

2025-06-13 22:47:26 873

原创 【Zephyr 系列 21】OTA 升级与产测系统集成:远程配置、版本验证、自动回滚机制设计

《Zephyr OTA升级全流程管理方案》摘要(142字) 面向企业工程师和系统集成人员,本文构建了一套完整的BLE模块OTA升级管理机制。系统基于MCUboot实现镜像验证和回滚,通过NVS记录版本状态和失败次数,支持串口/BLE/云端多通道触发。核心设计包括:固件分区配置、升级标记管理、失败自动回退机制,以及与产测系统的版本标记对接。方案提供AT命令接口和BLE GATT服务,并建议云端接口规范,确保从产线测试到远程维护的全流程可控。特别强调防呆设计,包括版本比对、失败锁死和CRC校验等安全措施。

2025-06-12 23:23:52 709

原创 【Zephyr 系列 20】BLE 模块产线测试系统设计:快速校验、参数写入、自动识别的完整方案

🧠 BLE量产测试系统解决方案(150字摘要) 面向企业工程师的量产测试框架,整合Zephyr固件与自动化工具链。系统包含三大核心模块:1) 支持AT指令的DUT测试固件(广播/连接/MAC校验);2) Python自动化测试脚本(串口控制/参数写入/结果判定);3) 烧录工具链(JLink/OpenOCD)。关键实现包括:FLASH标志位管理、功耗测试接口、SN/MAC绑定机制。典型测试流程约30秒/模块,自动生成含MAC/版本/RSSI的测试报告。建议配合云端追溯系统实现版本管理和批次追踪,后续可扩展

2025-06-12 23:15:06 688

原创 【Zephyr 系列 19】打造 BLE 模块完整 SDK:AT 命令系统 + 状态机 + NVS + OTA 一体化构建

本文介绍如何构建一个企业级BLE模块SDK框架,包含以下核心模块:1)AT命令系统实现设备控制;2)BLE状态机管理设备工作流程;3)NVS配置存储确保掉电不丢失;4)OTA升级接口支持远程固件更新;5)URC状态上报系统。文章详细说明了各模块的设计原理和实现方法,包括状态机架构、配置管理策略、OTA流程等,并提供了项目目录结构建议。该框架具有标准化、可量产、可维护等特点,适合需要产品化的BLE项目开发。文末还预告了下一篇将探讨的产线测试系统设计。

2025-06-11 23:52:35 707

原创 【Zephyr 系列 18】分布式传感网络系统设计:从 BLE Mesh 到边缘网关的数据闭环

本文构建了一个完整的BLEMesh+边缘网关+云端控制系统,针对工业、农业等场景中的分布式传感需求。系统包含Mesh终端设备(支持状态同步、数据上报和远程控制)和边缘网关(实现设备配网、数据聚合和云端通信),通过组播方式实现多设备协同。网关维护动态状态表,支持自动剔除离线节点和计算全网平均值,形成"云端指令-网关转发-终端响应-状态回传"的数据闭环。系统采用Zephyr框架开发,支持GenericOnOff和Sensor模型,提供状态持久化和自动恢复能力。文末给出了自动配网、多网关冗余等扩展建议,为开发者实

2025-06-11 23:47:21 792

原创 ​​​​​​​未来已来:深度解读 BLE 6.0 的革命性特性与实战应用

蓝牙低功耗(Bluetooth Low Energy, BLE)技术自问世以来,凭借其超低功耗、低成本和广泛的连接性,在物联网(IoT)领域占据了举足轻重的地位。从智能穿戴到智能家居,从医疗健康到工业传感,BLE 的身影无处不在。然而,随着物联网设备的爆炸式增长以及用户对连接性能、数据传输速率和安全性的更高要求,BLE 技术也在不断演进。本文将深度解析即将到来的 BLE 6.0 的革命性特性,包括但不限于[此处将插入 BLE 6.0 的核心新特性,例如增强型AoA/AoD、更高的吞吐量模式、更强的安全机制等

2025-06-10 23:07:20 965

原创 【Zephyr 系列 17】多协议网关实战:BLE + LoRa + UART + MQTT 综合调度系统设计与实现

多协议物联网网关系统设计摘要(150字) 本文基于Zephyr RTOS构建具备混合通信能力的物联网网关系统,整合BLE扫描、LoRa远程传输、UART控制及MQTT云连接功能。系统采用事件驱动架构,通过中央调度核心(k_msgq)实现多协议数据流转,包含状态监控、AT命令控制等企业级特性。关键技术包括:BLE广播包解析(ble_scan.c)、LoRa数据封装(lora_tx.c)、JSON状态报告(status_mon.c)及混合事件处理循环(event_core.c)。项目提供完整工程框架(含prj.

2025-06-10 22:57:01 827

原创 【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战

摘要:本文介绍了一种基于Zephyr的BLE+LoRa混合通信网关系统设计方案。系统由BLE终端设备、BLE+LoRa网关和上位机/云平台组成,通过事件驱动架构实现数据从BLE广播到LoRa上传的自动转发。文章详细阐述了系统架构、模块划分、数据结构和关键实现(包括BLE扫描、LoRa通信和事件循环),并提供了功耗优化建议、数据安全措施以及扩展功能(如数据聚合)。该系统适用于资产追踪、环境监测等需要兼顾近场采集与远程传输的IoT场景,具备低功耗特性(Tickless内核+周期性扫描),支持TTN/MQTT等多

2025-06-09 23:06:33 888

原创 第2篇:BLE 广播与扫描机制详解

《BLE广播与扫描机制解析》摘要:本文详细剖析了BLE核心通信机制,包含三大广播通道(37-39)、31字节广播包TLV格式及其常见类型(0x01标志位、0x09设备名等),系统介绍了四种广播类型(ADV_IND/SCAN_IND等)的应用场景。重点阐述了主被动扫描模式的区别、广播事件上报流程及数据解析方法,并给出广播间隔(100-1000ms)等实战参数建议。文章还指出广播冲突的典型场景及解决方案,简要提及BLE5.0扩展广播的增强特性。作为BLE通信基础,广播机制直接影响设备发现、连接建立等关键功能。

2025-06-09 23:03:24 1173

原创 【Zephyr 系列 15】构建企业级 BLE 模块通用框架:驱动 + 事件 + 状态机 + 低功耗全栈设计

本文针对BLE项目从Demo升级为企业级可复用框架的需求,提出基于Zephyr的模块化架构设计方案。核心内容包括:1)驱动层封装Zephyr BLE协议栈API;2)状态机管理实现广播/连接/扫描等状态切换;3)事件队列系统统一处理指令与异步事件;4)配置系统支持参数掉电保存;5)低功耗策略整合Tickless与深度睡眠。通过分层解耦设计,解决了传统BLE项目存在的耦合严重、状态混乱、功耗不可控等问题。文章还提供了状态流程图、测试用例及企业级实施建议,为构建高可靠、易维护的BLE产品框架提供了完整解决方案。

2025-06-08 22:50:11 681

原创 第1篇:BLE 是什么?与经典蓝牙有何区别?

本文是《BLE 协议从入门到专家》专栏第一篇,将从技术起源与需求背景出发,深入浅出地讲清楚 BLE 的定位、设计目标、核心特点,并与经典蓝牙(BR/EDR)进行全面对比,帮助你建立起 BLE 技术的第一性理解。

2025-06-08 22:47:28 735

原创 【Zephyr 系列 14】使用 MCUboot 实现 BLE OTA 升级机制:构建安全可靠的固件分发系统

📝摘要:本文详解基于Zephyr RTOS的BLE设备OTA升级方案,核心采用MCUboot双分区架构实现安全固件管理。主要内容包括:1️⃣ 构建带RSA签名校验的MCUboot Bootloader;2️⃣ 配置动态分区表(pm_static.yml),划分运行区/下载区/临时区;3️⃣ 主程序集成MCUmgr通过BLE SMP服务传输固件;4️⃣ 完整OTA流程演示,包含手机端交互、安全校验及版本回滚机制。方案支持nRFConnect等通用工具链,提供CRC校验、加密签名、断点续传等企业级功能,适用于

2025-06-08 00:07:30 699

原创 【Zephyr 系列 13】BLE Mesh 入门实战:构建基础节点通信与中继组播系统

《基于Zephyr的BLEMesh灯控系统开发指南》 摘要:本文详细介绍了使用Zephyr RTOS构建BLEMesh智能灯控系统的完整方案。系统支持分布式组网、消息中继、组播控制和状态同步等核心功能。文章首先分析传统BLE的局限性,对比展示Mesh技术的优势;随后从项目架构、核心概念(节点/元素/模型)、配置参数等方面展开讲解,并重点说明配网绑定、中继验证和Flash持久化等关键实现。通过控制模型定义与消息流程示意图,开发者可快速掌握Mesh网络通信机制。最后提供常见问题排查方法和扩展场景建议,为构建更复

2025-06-08 00:03:08 1291

原创 【Zephyr 系列 12】BLE + NVS + 低功耗融合实战:打造可配置蓝牙信标系统

摘要:本文介绍了基于Zephyr RTOS构建低功耗蓝牙信标系统的设计方案。该系统支持BLE广播与连接两种模式,通过NVS存储可配置参数(广播间隔、设备名称等),采用Tickless+PM机制实现深度休眠。文章详细解析了系统架构、状态机流程、核心模块实现(广播/NVS/电源控制),提供了prj.conf配置说明和AT命令接口,并给出测试用例及低功耗优化建议。该方案适用于资产标签、室内定位等场景,具有参数掉电保存、周期唤醒广播等特点,实现广播间隔500ms时平均电流<50μA。

2025-06-06 22:57:23 797

原创 【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载

《Zephyr NVS在BLE模块配置管理的应用》 摘要:本文针对BLE模块开发中配置参数掉电保存需求,介绍了基于Zephyr NVS(非易失存储)的解决方案。系统通过结构化参数存储设计(包括设备名、广播周期、白名单等),实现AT命令保存、自动加载和出厂设置功能。文章详细讲解了NVS的Kconfig配置、Flash分区定义、核心API使用方法(nvs_init/nvs_write/nvs_read),并提供了CRC校验、错误恢复等安全机制实现方案。该方案支持4KB分区块循环擦写、原子性操作等特性,适用于需要

2025-06-06 22:43:23 893

原创 【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

基于Zephyr的BLE终端-网关数据采集系统设计 本文介绍了一个完整的低功耗BLE传感器系统架构,包含终端设备和网关。终端通过广播周期上传温湿度等传感器数据(集成在0xFF厂商字段),网关扫描解析后以JSON格式上报。系统采用Zephyr RTOS开发,支持终端参数配置(广播周期、设备名)的NVS存储、Tickless低功耗模式,以及网关的多终端识别与数据聚合。关键实现包括:终端周期性广播的数据打包(ble_adv.c)、模拟传感器读取(sensor.c)、网关的广播过滤与JSON生成(gateway_s

2025-06-05 23:15:32 1267

原创 【Zephyr 系列 9】Zephyr 与设备树机制详解:如何为你的板子编写 Devicetree

📝Zephyr设备树(DTS)开发指南摘要 本文介绍了Zephyr RTOS中设备树(DTS)的核心机制,包括: 1️⃣ 设备树作用:硬件抽象层,统一配置外设地址、引脚复用(pinmux)、驱动绑定等 2️⃣ 关键文件: 板级.dts文件定义硬件结构 overlay文件动态覆盖配置 YAML绑定文件规范驱动接口 3️⃣ 实战开发: 自定义板卡DTS配置LED/UART节点 代码中通过DEVICE_DT_GET()获取设备 使用overlay动态修改配置 4️⃣ 进阶内容: 自定义驱动绑定规范 配置优先级顺

2025-06-05 23:00:02 854

原创 【Zephyr 系列 8】构建完整 BLE 产品架构:状态机 + AT 命令 + 双通道通信实战

本文介绍了一个基于Zephyr的BLE通信系统架构设计,旨在帮助开发者构建稳定可靠、可维护的BLE产品方案。关键设计方案包括:1)采用状态机管理BLE运行状态(广播/扫描/连接);2)通过AT命令接口实现配置控制;3)建立双向数据透传通道;4)内置异常处理机制。系统采用分层设计,包含BLE核心层、状态机层、AT命令解析层和数据透传层,通过环形缓冲区和事件调度机制确保通信可靠性。文章还提供了测试建议和稳定性优化方案,并指出可扩展支持多连接、主设备模式等功能。整体方案解决了BLE产品开发中的状态管理、调试共存和

2025-06-04 21:15:42 1023

原创 【Zephyr 系列 7】BLE 数据透传系统设计与实现:双向通信、缓冲区与状态同步全解析

摘要:基于Zephyr的BLE透传系统设计与实现 本文介绍使用Zephyr框架开发双向BLE-UART透传协议,实现手机与设备的可靠通信。系统采用GATT服务设计,包含WriteWithoutResponse(手机→设备)和Notify(设备→手机)双通道,结合环形缓冲队列解决速率差异问题。关键技术包括:动态GATT服务注册、连接状态回调管理、数据分片与重组处理。代码结构清晰,涵盖BLE初始化、数据收发及状态同步,并支持低功耗配置。手机端可通过nRF Connect等工具测试通信,适用于传感器数据回传或指令

2025-06-04 21:11:26 539

原创 【Zephyr 系列 6】使用 Zephyr + BLE 打造蓝牙广播与连接系统(STEVAL-IDB011V1 实战)

《基于Zephyr的蓝牙广播与连接系统开发实战》摘要 本文详细介绍了使用Zephyr RTOS和BLE技术在STEVAL-IDB011V1开发板上构建蓝牙外围设备的完整方案。文章首先对比了传统BLE开发依赖厂商SDK的局限性,突出Zephyr开源蓝牙协议栈的优势(支持Bluetooth 5.3规范,统一API接口)。核心内容包括:硬件平台搭建(BlueNRG-LP芯片)、Zephyr项目配置(prj.conf关键参数说明)、广播参数设置与GATT服务实现(含可读写特征)。通过main.c和ble_servi

2025-06-03 23:38:42 827

原创 【Zephyr 系列 5】定时器与低功耗控制:打造省电高效的嵌入式系统

🔋【Zephyr定时器与低功耗实践指南】 摘要: 本文针对MCU工程师,介绍使用Zephyr RTOS实现周期性任务与低功耗控制的完整方案。通过STM32平台演示了k_timer定时器、k_work_delayable异步任务与PM电源管理的协同工作模式。项目实现LED每秒闪烁、串口每5秒输出的周期任务,并在空闲时自动进入Sleep/Stop模式。关键点包括: 1️⃣ Zephyr定时器体系架构解析 2️⃣ 配置文件(prj.conf)中PM模块的启用方法 3️⃣ Tickless Idle技术实现原理

2025-06-03 23:24:37 964

原创 【Zephyr 系列 4】串口通信进阶:打造自己的 AT 命令框架

本文介绍了基于Zephyr RTOS的AT命令框架实现方法,适用于嵌入式设备控制协议开发。该框架通过UART接口接收AT+CMD风格的串口命令(如AT+LED=ON、AT+STATUS?),使用uart_poll_in()读取字符并解析命令类型(SET/READ)。项目采用模块化设计,包含命令分发处理机制,支持扩展新命令。文中详细展示了代码结构(main.c/at_cmd.c/at_cmd.h)、硬件平台(STM32/Arduino等)和测试方法,并建议了进阶方向(参数转换、双模式支持等)。该方案为设备调试

2025-06-02 20:35:24 443

原创 【Zephyr 系列 3】多线程与调度机制:让你的 MCU 同时干多件事

摘要: 本文以STM32F103C8T6(BluePill)为例,基于Zephyr RTOS实现双线程(LED闪烁+串口回显)实战。通过k_thread_create创建独立线程,结合k_msleep实现非阻塞延时,详解线程优先级(数值越小越高)、栈空间分配(K_THREAD_STACK_DEFINE)等核心机制。开发环境为Ubuntu 20.04 + Zephyr SDK,代码结构清晰,包含main.c配置线程函数、prj.conf使能GPIO/UART驱动。效果验证:LED每500ms切换状态,串口实时

2025-06-02 20:31:52 646

通过BLE示例嵌入式各定时器

通过BLE示例嵌入式各定时器,下面这篇博客的附件示例全套代码。 https://damowang.blog.youkuaiyun.com/article/details/148077265?fromshare=blogdetail&sharetype=blogdetail&sharerId=148077265&sharerefer=PC&sharesource=hemoparrot&sharefrom=from_link

2025-05-20

“多角色适配”的高质量技术文档-配套《实践总结如何编写“多角色适配”的高质量技术文档?》

《【实践总结】如何编写“多角色适配”的高质量技术文档?》 这篇文章的附件。

2025-04-07

linux内核调试技术

在我看linux设备驱动程序第4章调试技术的时候,一开始就遇到了问题,怎么在内核中开启调试选项,这本书帮我解决了。所以共享给同样遇到这样问题的朋友。也谢谢书的作者。

2008-12-25

汇编语言程序设计for linux

非常适合linux下的c/c++程序员继续学习汇编语言。该书使用环境:IA-32处理器,Linux操作系统,gnu工具,at&t语法。都是太喜欢的东西。真的很不错。为了您看完可以交流评论下,所以小收5分。

2009-06-10

三个文件io.h signal.h interrupt.h

网友要得三个文件io.h signal.h interrupt.h

2009-01-15

w32coder linux下播放rmvb格式需要的解码器

linux下播放rmvb格式需要的解码器

2008-12-10

c++写的坦克大战,源代码+可执行文件

c++写的坦克大战源代码。可自定义地图,默认已包含10关

2008-12-10

自己写的一个编译用于linux2.6.x驱动模块编译和管理的makefile脚本

自己写的一个编译用于linux2.6.x驱动模块编译和管理的makefile脚本。

2008-09-26

poppler-data-0.1解决linux下pdf文档中中文字符乱码的问题

1.解压到/opt文件夹下面. 2.打开终端进入该目录. 3.运行命令:sudo make install datadir=/usr/share进行安装 4.over!

2009-01-19

小企鹅输入法fcitx安装包

小企鹅fcitx输入法的安装包,使用方法,解压,运行里面的安装和卸载脚本就可以。

2009-01-01

郭天祥_十天学会单片机

郭天祥_十天学会单片机 幻灯片 课件 郭天祥_十天学会单片机 幻灯片 课件

2008-12-31

汇编编译器masm6.11

ms-dos下的汇编语言编译器。解压,安装,然后ms-dos下运行。不是IDE。

2009-03-11

s3c2410完全开发流程及源代码

尚观的s3c2410开发手册和源代码,尚观的s3c2410开发手册和源代码

2008-12-31

asuro_usb_rs232驱动

在windows下用于和ausro和yeti进行红外通信的usb驱动程序

2009-01-15

solaris用户手册

solaris用户手册 mht格式 应该是我从china-unix下载的

2008-12-31

c和cpp常用函数手册查询

c和c++语言的函数手册和一些学习资料,因为现在用不着了,但是当时确实对自己帮助很大,所以就先放到这里。

2009-01-01

任何操作ads的资料

自己下载的两个ads操作需要的资料,因为最近没有时间看,而且硬盘太乱,所以暂时放到这里。

2009-01-01

星际译王辞典安装脚本

linux下星际译王的辞典包,内包含自己写的安装和卸载辞典的脚本。

2008-06-03

空空如也

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

TA关注的人

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