会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Live Long and fuck it
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2026年3月28日
从零实现BLE协议栈(2-1)主动扫描(Active Scanning)
摘要: 主动扫描:ADV_IND、SCAN_REQ 与 SCAN_RSP 的三包握手 前提知识 阅读本文需要具备以下基础: 理解 BLE 广播帧结构(1-2 篇有详细讲解):1-2 篇中的广播者使用 ADV_NONCONN_IND(不可扫描),本文升级为 ADV_IND(可扫描)。你需要理解 PDU 格式—
阅读全文
posted @ 2026-03-28 10:04 ixbwer
阅读(118)
评论(0)
推荐(1)
2026年3月27日
从零实现BLE协议栈(1-2)Hello World:BLE广播
摘要: Hello World:BLE 广播 前提知识 阅读本文需要具备以下基础: 1-1 的 TASK/EVENT 模型:本文的所有硬件操作(启动晶振、触发发送、等待完成)都基于往 TASK 寄存器写 1 触发动作、读 EVENT 寄存器确认完成的模式 1-1 的 SHORTS 机制:本文的 send_o
阅读全文
posted @ 2026-03-27 13:29 ixbwer
阅读(147)
评论(0)
推荐(1)
从零实现BLE协议栈(1-1)NRF 52 射频机制
摘要: NRF 52 RADIO 相关机制 一、前言 这篇文章只有一个核心问题:一包数据是怎么从 RAM 飞到空气中的? 我们将以 00_phy_raw_tx 这个例程为主线,逐步拆解 nRF52 芯片的无线发送过程。在这个过程中你会遇到一些陌生的名词——外设寄存器、TASK、EVENT、SHORTS、PL
阅读全文
posted @ 2026-03-27 13:29 ixbwer
阅读(142)
评论(0)
推荐(1)
从零实现BLE协议栈(0-1)开篇和实验环境搭建
摘要: 开篇与硬件选型 前提知识 这个系列面向想深入了解 BLE 底层实现的嵌入式开发者,阅读本文需要具备以下基础: C 语言:能够读懂操作寄存器的代码,理解指针、结构体、位域 嵌入式基础:知道什么是中断、定时器、DMA,理解"往寄存器写值"的含义 BLE 使用经验:理解广播、连接的基本概念 Zephyr
阅读全文
posted @ 2026-03-27 11:04 ixbwer
阅读(242)
评论(0)
推荐(1)
2026年3月11日
【应用笔记】蓝牙开发的“瑞士军刀”!在Windows 环境下使用nRF52840 BLE Dongle
摘要: 前言 在 Windows 开发 BLE 时,系统自带的蓝牙栈往往会对硬件进行独占,导致开发者难以直接操控底层 HCI 数据。本文将介绍如何通过 Zephyr 固件将 nRF52840 Dongle 变成一个“透明”的 HCI Controller,并结合 Google 的 Bumble 协议栈实现完
阅读全文
posted @ 2026-03-11 14:49 ixbwer
阅读(259)
评论(0)
推荐(0)
2026年2月5日
Python异步编程asyncio(四):Future
摘要: 1 引言 在之前的文章中,我们探讨了 Coroutine (协程)——一种异步执行单元,Task (任务)——协程的调度封装。在实际的异步系统中,“产生结果的时刻” 与 “消费结果的时刻” 往往是解耦的。当一个异步操作正在后台运行,而我们需要一个“凭证”来代表那个尚未抵达的结果时,该由谁来充当这个角
阅读全文
posted @ 2026-02-05 17:58 ixbwer
阅读(15)
评论(0)
推荐(0)
Python异步编程asyncio(三):Coroutine与任务管理
摘要: 1 引言 在前面的文章中,Event Loop 通过 call_soon 和 call_later 手动注册回调函数(Callback)的方式在 Python 中进行异步编程,但是这种方式非常不直观。为了让代码看起来像同步代码一样直观,Python 引入了 Coroutine(协程)。协程本质上是让
阅读全文
posted @ 2026-02-05 11:27 ixbwer
阅读(38)
评论(0)
推荐(0)
Python异步编程asyncio(二):Selector
摘要: 1 引言 上一篇文章中我们已经知道,Event Loop 是异步程序的大脑,负责任务调度,且它绝对不能被阻塞。但你可能会好奇:当 Event Loop 在等待一个网络请求或文件读写时,它是在原地“转圈圈”盲目轮询,还是在闭目养神? 这就引出了我们今天要聊的底层功臣——Selector(选择器)。如果
阅读全文
posted @ 2026-02-05 10:47 ixbwer
阅读(39)
评论(0)
推荐(0)
2026年1月31日
Python异步编程asyncio (一):Event Loop
摘要: 1 Event loop 1.1 什么是Event Loop Event Loop 是每个 asyncio 应用程序的核心。它在循环中运行,执行任务、处理事件并管理异步操作。 1.2 如何运行 Event Loop 我们使用 asyncio.get_event_loop() 获取 Event Loo
阅读全文
posted @ 2026-01-31 17:48 ixbwer
阅读(55)
评论(0)
推荐(0)
2026年1月7日
BLE 4.2 Controller:高精度调度器与冲突仲裁
摘要: 由于芯片通常只有一个 Radio(单射频),我们不能同时进行广播、扫描和保持连接。如果我在 37 信道广播时,连接的锚点(Anchor Point)也到了,该怎么办?如果我正在扫描,突然需要回复一个连接请求,怎么保证时间差精确在 150µs? 这就是我们需要一个高精度调度器(High-Precisi
阅读全文
posted @ 2026-01-07 13:50 ixbwer
阅读(587)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告