自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

朝气蓬勃

不积跬步 无以至千里, 不积小流 无以成江海

  • 博客(544)
  • 收藏
  • 关注

原创 一篇文章足够你学习Bluez,提供史上最全的Bluez教程,让你告别Bluez从入门到放弃

Bluez是真的难,说“入门到放弃”真的毫不夸张,Bluez的学习曲线陡峭,要求对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度。

2024-10-01 17:46:45 465

原创 一篇文章足够你学习ESP32,提供史上最全的ESP32教程(驱动/蓝牙/Wi-Fi/LVGL/Arduino...)

本文章目的:1)针对单片机外设做详细的教程,丰富个人技能吃,彻底从原理+应用来写外设2)给广大蓝牙爱好者提供蓝牙应用方面的教程(结合我们的蓝牙协议栈会事半功倍)蓝牙协议栈教程点击我3)给广大Wi-Fi爱好者提供Wi-Fi方面的教程(结合我们的Wi-Fi协议栈会事半功倍)Wi-Fi协议栈教程点击我4)给广大GUI爱好者提供LVGL方面的教程LVGL教程点击我5)把各个技能池组合起来,举一反三,做炫酷的实例应用教程内容:我们的内容包括但不限于:1)IDF基础介绍

2022-04-04 14:46:19 126835 25

原创 一篇文章足够你学习蓝牙技术,提供史上最全的蓝牙技术(传统蓝牙/低功耗蓝牙)文章总结,文档下载总结(2024/10/02更新)

那由于学员反馈蓝牙精讲没有一个目录介绍,再次我整理一个目录。我们的蓝牙书以及CSDN蓝牙系列的视频有以下计划:告知:初学蓝牙者暂时不要碰controller(蓝牙芯片)里面的协议,否则会看到你怀疑人生那我们就一一来列举下(持续更新次文章,每周一更这篇文章)第一篇:蓝牙综合介绍主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍,内容如下:章节 文章标题 文章链接 视频课程 第一章 蓝牙概述 1. 蓝牙的基本概念以及发展轨迹.

2020-08-03 08:09:52 105722 63

原创 爆肝Android JNI - 延展Android蓝牙JNI学习

jni全称java native interface,我把它分为三部分,java代表java语言,native代表当前程序运行的本地环境,一般指windows/linux,而这些操作系统都是通过C/C++实现的,所以native通常也指C/C++语言,interface代表java跟native两者之间的通信接口,jni可以实现java和C/C++通信。它是java生态的特征,所以定义在jdk标准当中。

2024-12-07 15:35:58 202

原创 太通透了,Android 流程分析 蓝牙enable流程(应用层/Framework/Service层)

安卓蓝牙的初始化是最能反应架构的流程,其中会牵扯到应用程序Settings,Framework,蓝牙apk进程,蓝牙协议栈,蓝牙hidl,蓝牙vendor,通过了解使能可能就完全了解了整个android架构

2024-11-23 16:25:15 328

原创 Android Binder通信介绍

Binder 是 Android 系统中用于跨进程通信的一种机制,它允许一个进程中的组件与另一个进程中的组件进行通信,从而实现进程间通信 (IPC)。Binder 机制是基于 Linux 内核提供的进程间通信机制 (IPC) 实现的。

2024-11-23 16:17:12 36

原创 Android mk/bp构建工具介绍

Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。Android.bp 文件首先是 Android 系统的一种编译配置文件,是用来代替原来的 Android.mk文件的

2024-11-23 16:14:17 232

原创 Android蓝牙架构,源文件目录/编译方式学习

介绍Android蓝牙功能模块的结构,包括Settings,framework,bluetoott process,system bt,hidl ,vendor的源文件目录以及编译方式

2024-11-23 16:05:36 490

原创 rk3399开发环境使用Android 10初体验蓝牙功能

使用Rockchip 3399进行Android 10蓝牙初体验

2024-11-16 15:52:55 321

原创 一文了解Linux内核I2C子系统,驱动苹果MFI加密芯片

由于苹果有一套MFI IAP2的蓝牙私有协议,这个协议是基于BR/EDR的RFCOMM自定义UUID来实现IAP2协议的通信,中间会牵扯到苹果加密芯片的I2C读取,所以我们借此机会来研究下Linux I2C子系统。

2024-11-02 11:59:13 1236

原创 bluez hid host介绍,连接键盘/鼠标/手柄不是梦,安排

蓝牙HID(Human Interface Device)和HOGP(HID over GATT Profile)都是蓝牙技术中用于传输人机接口设备(如键盘、鼠标、手柄等)数据的协议,但它们有一些显著的区别。蓝牙HID(Human Interface Device)概述: 蓝牙HID是经典蓝牙协议栈中的一个标准协议,用于连接键盘、鼠标、手柄等设备。它是蓝牙规范中的一个子集,主要用于短距离无线通信。

2024-10-26 16:50:38 378

原创 bluez免提协议hands-free介绍,全到无法想象,bluez hfp ag介绍

免提协议(HFP, Hands-Free Profile)是蓝牙标准中的一种协议,专门用于在移动设备(如智能手机)与免提设备(如蓝牙耳机、车载免提系统)之间进行音频通信和控制信令。HFP 主要用于电话功能,如接听、挂断、拨打电话等,也支持语音命令和其他音频操作。

2024-10-01 15:04:57 1125

原创 bluez sdptool的使用/源码介绍

sdptool 是一个用于管理 Bluetooth 服务发现协议 (SDP) 的命令行工具,隶属于 BlueZ 框架。SDP 是一种用于在设备之间发现可用服务的协议,sdptool 允许用户查询和管理蓝牙设备上注册的服务。

2024-10-01 14:59:44 372

原创 bluez蓝牙搜索功能一文通,分别介绍hcitool/btmgmt/bluetoothctl搜索蓝牙设备的方式的使用/源码/差异

我们在前面已经介绍了非常多的工具,可以做蓝牙搜索功能,比如btmgmt/bluetoothctl/hcitool等。而其中btmgmt/hcitool是通过socket直接跟kernel中hci socket通信,bluetoothctl是通过更上层的API通过dbus来通信使用蓝牙搜索功能。

2024-10-01 14:55:32 335

原创 蓝牙Bluez hcitool工具使用/源码介绍

hcitool 是一个命令行工具,用于在 Linux 系统上与 Bluetooth 设备进行交互。它主要用于配置和管理 Bluetooth 设备,并可以执行各种 Bluetooth 操作,比如扫描设备、获取设备信息、建立连接等

2024-10-01 14:50:59 246

原创 bluez dbus工具bluetoothctl使用/源码介绍

bluetoothctl 是一个命令行工具,用于管理和配置蓝牙设备。它是 BlueZ 蓝牙协议栈的一部分,提供了一个交互式命令行界面,允许用户扫描、配对、连接和管理蓝牙设备。bluetoothctl 是 Linux 系统中常用的蓝牙管理工具,特别适合在没有图形用户界面的环境下使用。

2024-10-01 14:47:42 294

原创 哇哇哇,bluez调试神器btmon介绍,辅助学习神器一文通!!

btmon 是一个用于监控和调试蓝牙通信的工具。它是 Linux 环境下用于捕获和分析蓝牙协议数据包的强大工具,通常与 BlueZ 蓝牙协议栈一起使用。对我们调试蓝牙来说是一个调试神器!!btmon 的主要功能包括:● 实时捕获蓝牙通信数据:btmon 可以实时捕获设备之间的蓝牙通信数据,并将其以易读的格式显示出来。这个还支持ellisys的injection!

2024-10-01 14:44:29 361

原创 bluez hciconfig工具使用/源码介绍

hciconfig 是一个命令行工具,用于配置和管理蓝牙设备的设置。它通常用于 Linux 系统上,特别是使用 BlueZ 蓝牙协议栈的系统。

2024-10-01 14:40:03 305

原创 bluez btmgmt工具使用/源码介绍

btmgmt 是一个用于管理 Bluetooth 控制器的命令行工具,它是 BlueZ 项目的一部分。btmgmt 提供了一种强大且灵活的方式来控制和配置本地蓝牙适配器(控制器),与蓝牙设备进行交互,以及管理蓝牙协议栈的各个方面。

2024-10-01 14:37:45 483

原创 linux dbus介绍,彻底懂linux bluez dbus

DBUS是一种高级的进程间通信机制(IPC)。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。 DBUS中主要概念为总线,连接到总线的进程可通过总线接收或传递消息,总线收到消息时,根据不同的消息类型进行不同的处理

2024-10-01 14:33:47 942

原创 蓝牙bluez bluetoothd守护进程介绍

bluetoothd 是蓝牙协议栈 BlueZ 的主要守护进程,用于在 Linux 操作系统中管理和处理 Bluetooth(蓝牙)功能。BlueZ 是 Linux 系统上官方的蓝牙协议栈,提供对蓝牙设备的支持和管理,并且 bluetoothd 作为其核心组件之一,负责蓝牙设备的发现、配对、连接以及各种蓝牙协议的实现。

2024-10-01 14:27:52 560

原创 蓝牙Bluez hciattach ap6256蓝牙初始化方式介绍

蓝牙enable的三种方式,而其中之一就是hciattch就是在user space下载附件,然后触发kernel bt进行SIG HCI command的交互,来进行蓝牙使能的动作

2024-10-01 14:24:16 500

原创 蓝牙Bluez btattach蓝牙初始化方式介绍

蓝牙enable的三种方式,而其中之一就是btattach触发kernel进行特定芯片的驱动加载(下载fw)以及标准的kernel中bt进行SIG HCI command的交互,来进行蓝牙使能的动作

2024-10-01 14:01:29 487

原创 蓝牙bluez enable bcm私有模式(brcm_patchram_plus1)方式介绍

蓝牙enable的三种方式,还有一些芯片厂家自己的工具,不具有通用性,所以单独拎出来介绍,比如bcm的brcm_patchram_plus1工具,这个工具的作用是在user space下载蓝牙fw以及触发标准的kernel中bt进行SIG HCI command的交互,来进行蓝牙使能的动作

2024-10-01 11:28:38 640

原创 bluez rfkill (kernel space/user space)介绍

蓝牙操作enable pin,有几种方式,那么rfkill是比较通用的方式,本节通过内核层/用户层的配合来彻底让你了解rfkill的使用以及原理!

2024-10-01 10:39:16 670

原创 蓝牙Bluez enable流程整体介绍,打通蓝牙初始化的任督二脉

Bluez蓝牙enable一般可以分为4个方式:1)user space调用hciattach2)user space调用btattach3)kernel space匹配到设备树(或者ACPI)自动加载4)各家芯片的私有模式(这个不具有通用性,在其他文章中介绍)

2024-10-01 09:48:55 128

原创 真的太清晰了,全网最权威的Linux蓝牙Bluez的介绍

由于Bluez的学习曲线陡峭,所以我们计划做一系列的linux bluez的教程,本文章我们主要从整体概述开始介绍,集中在 User space/Kernel space/Controller框架部分,让你堆整体有个认知,能更好的继续学习下去!

2024-10-01 09:44:10 1102

原创 rk3399开发环境的介绍

由于Bluez的介绍文档有限,以及对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluez做一个系统性的介绍,尽可能的涵盖所有内容。

2024-09-30 22:15:00 167

原创 蓝牙对象交换协议(OBEX) - 常见的opcode介绍

OBEX全称为Object Exchange,是对象交换协议,蓝牙的OBEX是IrOBEX的子集,其中对象是一个柔性概念,可以包括文件,诊断信息,电子商务卡片(Vcard),银行的存款,短信消息等等。Objects在这里没有高级的技术含义,而是视你的应用而定

2024-08-31 08:30:32 1352

原创 蓝牙对象交换协议(OBEX) - 概念介绍

OBEX全称为Object Exchange,是对象交换协议,蓝牙的OBEX是IrOBEX的子集,其中对象是一个柔性概念,可以包括文件,诊断信息,电子商务卡片(Vcard),银行的存款,短信消息等等。Objects在这里没有高级的技术含义,而是视你的应用而定

2024-08-24 08:06:24 816

原创 蓝牙音视频远程控制协议(AVRCP) command跟response介绍

蓝牙视频教程(跟韦东山老师合作) 蓝牙音视频控制协议 AVRCP 命令介绍

2024-08-17 08:15:31 1441 1

原创 炫技来了!使用SDR设备成功抓到蓝牙air packet, 并且wireshark实时解析, 没错就是蓝牙空口抓包器

本文章主要介绍是用ZYNQ7020+AD9361+Gnu radio是搭建一个蓝牙抓包器的文章。用SDR(Software Defined Radio)设备研究了下BLE的抓包,通过BLE的抓包了解下蓝牙的controller的一点点内容,日拱一卒,拱了2个周终于可以抓到蓝牙37通道的广播数据,并且可以把数据传送到Wireshark中。整份工程是C语言+gnu radio来完成,没有借用python等。

2024-06-08 13:55:04 2953 2

原创 蓝牙音视频远程控制协议(AVRCP) AV/C command格式介绍

蓝牙AVRCP协议的AV/C命令/响应 格式介绍

2024-01-13 14:44:02 2047

原创 蓝牙音视频远程控制协议(AVRCP)介绍

AVRCP(Audio/Video Remote Control Profile)定义了蓝牙设备和audio/video控制功能通信的特点和过程,另用于远程控制音视频设备,底层传输基于AVCTP传输协议

2023-10-21 10:08:44 3938

原创 蓝牙音视频控制协议(AVCTP)介绍

AVCTP(Audio/Video Control Transport Protocol)协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制command和response的总体的格式。

2023-07-15 20:28:26 3418

原创 蓝牙BQB认证 - HFP profile配置说明

该文档主要解释Bluetooth HFP HF的BQB ICS以及TS文档,以便更快的熟悉蓝牙本地认证工具PTS。快速验证蓝牙协议栈是否符合蓝牙规范。

2023-04-04 19:43:07 2485 1

原创 蓝牙 Bluetooth APCF实现休眠唤醒功能

ACPF(Advertising Packet Content Filter)是广播内容过滤功能,主要使能后运行controller中,所以广泛应用于广播唤醒功能,但是有个局限,不过滤周期广播。这个命令属于HCI Vendor Specific Command/Event,所以需要固件额外支持才行!另外,如果要做广播唤醒,需要从特定的引脚输出特定的波形,所以这个需要额外的vendor specific command才行

2023-04-01 16:15:44 2490 1

原创 Android蓝牙使能流程图(Android Bluetooth enable) -- java & jni层

目前蓝牙协议栈本身的架构就很复杂,而且大部分都是用C/C++编写,对于蓝牙协议栈工程师硬啃可能啃的动,但是Android上层又用java编写,又加了很多binder,jn机制,并且伴有Android本身apk的一些特性在里面,让蓝牙工程师苦不堪言,所以本文秉着大道至简的目的,给你们来介绍下android上层,包括framework,service的enable流程,让你们有一些概念,抛砖引玉下!

2023-03-26 11:44:32 4074

原创 Android binder通信实现进程间通信

Binder 是 Android 系统中用于跨进程通信的一种机制,它允许一个进程中的组件与另一个进程中的组件进行通信,从而实现进程间通信 (IPC)。Binder 机制是基于 Linux 内核提供的进程间通信机制 (IPC) 实现的。

2023-03-14 21:21:46 3098

原创 Android button点击事件的3种处理方式

可以看到我们定义的onClick的事件为myButtonClickHandler。可以看到button的id为my_button2,这个在后面有很大的作用。在布局xml中增加一个button。首先在布局xml中增加button。在布局xml中增加一个button。把这个修改为lambda。

2023-03-11 11:37:20 2768

core5.2.rar

附件为蓝牙V5.2 core文档,目前为SIG最新的协议栈文档,供蓝牙开发板工程是下载查阅.

2020-07-21

SSD1306资料.rar

0.91寸 OLED SSD1306资料(包含英文/中文数据手册/iic逻辑时序图/代码/上位机),供学习下载

2019-12-26

stm32f1_mrvl88w8801应用笔记_20191220.pdf

本文章是STM32F103驱动Marvell8801/Marvell88w8801的应用手册,包含以下篇幅 1)整体介绍篇,主要对开发板做整体介绍 2)硬件篇,主要对板子外设驱动做说明 --》主要对SSD1306 OLED介绍,SPI FLASH介绍,FATFS介绍,USB device介绍,OV7670介绍 3)Linux Wi-Fi篇,主要通过Linux来驱动Wi-Fi模组来了解Linux kernel的无线架构 4)自己实现Marvell8801驱动,主要是根据编程手册来自己实现一个SDIO Wi-Fi的驱动 5)LWIP篇,通过移植LWIP来实现驱动的应用

2019-12-20

AMS1117稳压芯片中文文档

AMS1117稳压芯片的介绍,由于不能免费,所以弄了最低分下载,如果没分可以直接找我要

2018-04-22

ARM CP15寄存器组介绍

ARM CP15组的介绍,ARM开启I/D catch,MMU只能通过这个寄存器

2017-12-07

stm32f4xx 库函数手册

stm32f4xx库函数手册

2017-05-27

stm32f407 参考手册

stm32f407 参考手册,里面包含每个寄存器的定义

2017-05-27

stm32f407 datasheet 数据手册

stm32f407 datasheet 数据手册

2017-05-27

stm32f407 管脚定义

stm32f407 pin define

2017-05-27

apue头文件

编译UNIX高级环境编程,缺少apue.h文件的解决方法

2016-02-03

STM32 UART

STM32 UART,没有使用DMA,功能是:通过串口接受到数据,进去中断,然后再发送出去

2016-02-02

STM32实现button polling & interrupt方式点亮LED

STM32实现polling & interrupt点亮LED

2016-01-29

STM32 流水灯

STM32 GPIO点亮流水灯试验(库函数版)

2016-01-26

CSR pskey英文文档+翻译文档

CSR pskey英文文档 + 翻译文档大全 适合蓝牙开发人员使用.zip

2015-12-30

unix环境高级编程(APUE)+源码

unix环境高级编程(第3版),附带源码

2015-12-24

I2C总线原理

I2C总线原理,浅显易懂(附带软件模拟I2C)

2015-12-10

网上荡的,uart资料,讲的蛮清楚,适合入门

UART讲解,适合入门·免费散了,网上淘的一片文章

2015-12-06

空空如也

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

TA关注的人

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