随笔分类 -  BLE应用

摘要:继上篇:CH57x,CH58x,CH59x等BLE芯片的休眠回调作用及使用方法 介绍了蓝牙低功耗回调的作用和原理,其是使用SLEEP休眠方式,如果我们需要在低功耗的同时,让外设保持,则需要做一点修改,使用IDLE睡眠方式: 修改例子中CH58x_LowPower函数,如下: /*********** 阅读全文
posted @ 2026-02-11 16:04 oTvTo 阅读(36) 评论(0) 推荐(0)
摘要:转载自:https://www.cnblogs.com/gscw/p/18735613 前言:实现动态修改MAC,需要注意关闭广播后调用GAP_ConfigDeviceAddr(ADDRTYPE_PRIVATE_NONRESOLVE, ownAddr)配置完成后再开启广播。 void HidEmu_ 阅读全文
posted @ 2025-10-14 16:03 oTvTo 阅读(52) 评论(0) 推荐(0)
摘要:一、准备工作 1、分别打开HID_Keyboard例程、Peripheral例程,其中Peripheral例程中的自定义服务(位于gattprofile.c及gattprofile.h),将两份文件移植到HID_Keyboard中 2、注册服务 3、测试特征值3写入数据,从机正常接收 二、改写部分 阅读全文
posted @ 2025-10-13 15:30 oTvTo 阅读(186) 评论(0) 推荐(0)
摘要:前言: 主从机进行交互MTU,需要主从机均支持修改MTU,如果只有一端支持,则无法成功修改MTU。 MTU值影响开销数据的数量(特别是ATT报头,它是3字节)。ATT MTU的最小值为27字节。这允许最大20字节的ATT有效负载(3字节用于ATT报头,4字节用于L2CAP报头)。 BLE5.0协议可 阅读全文
posted @ 2025-09-04 17:46 oTvTo 阅读(201) 评论(0) 推荐(0)
摘要:1、广播开启/关闭: uint8_t initial_advertising_enable = FALSE; GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED,sizeof(uint8_t), &initial_advertising_enable);//关闭广 阅读全文
posted @ 2025-04-19 14:37 oTvTo 阅读(582) 评论(0) 推荐(0)
摘要:CH585_RF基础通讯例程见下图路径: 1、RF初始化参数配置 /******************************************************************************* * @fn RFRole_Init * * @brief RF应用层初始 阅读全文
posted @ 2025-03-17 15:34 oTvTo 阅读(542) 评论(0) 推荐(1)
摘要:该例程仅供参考,源程序可在文章末尾网盘链接中获取,可以复制central.c文件中所有内容粘贴到其他蓝牙芯片工程中, 主机遍历服务步骤如下: 1、初始化蓝牙外设及库 2、主机参数初始化 3、主机初始化结束,返回状态回调,进入GAP_DEVICE_INIT_DONE_EVENT开始发现设备,并通过GA 阅读全文
posted @ 2025-02-10 16:13 oTvTo 阅读(408) 评论(0) 推荐(0)
摘要:简介: 在芯片工作期间,如果程序不是所有时刻都有任务在运行,因此在系统空闲期间,这些工作电流其实是浪费掉的,加入一些处理可以控制芯片在无tmos任务运行时使其进入低功耗,等到有任务需要执行前(1ms-1.2ms)提前唤醒。 在BLE蓝牙库中,就有这么一项低功耗处理机制:由于tmos时钟源来自于低速时 阅读全文
posted @ 2025-01-10 15:12 oTvTo 阅读(678) 评论(0) 推荐(0)
摘要:测试发现,部分蓝牙主机会在连接上我们设备之后分配较大的连接间隔,即使我们后续将连接间隔协商至较小值后,也会被主机更新回较大的间隔。 可在BLE初始化阶段将以下参数配置进去,由蓝牙协议栈在配对期间告知主机我们所需要的连接参数即可, gapPeriConnectParams_t ConnectParam 阅读全文
posted @ 2024-09-18 15:26 oTvTo 阅读(370) 评论(0) 推荐(0)
摘要:如下参数可通过该接口实时获取: /*假设有3个连接,协议栈库就调用cb 函数3次,可以得到每个连接的信息*/void cb(linkDBItem_t *pLinkUItem) { PRINT("Current Int:0x%x\n",pLinkUItem->connInterval);//获取当前的 阅读全文
posted @ 2024-07-19 17:24 oTvTo 阅读(320) 评论(0) 推荐(0)
摘要:提醒:这篇博客没有配套太多形象的图文辅助理解,建议结合程序实践。 依旧以老朋友CH583为例, 我们随便打开一个HID例程,还是以HID_Keyboard例程做讲解: 1、直奔主题到我们的库函数初始化函数中去,红圈圈中的SNVAddr配置信息为我们此次配对连接后所获取到的信息存储的地址区,配对信息中 阅读全文
posted @ 2024-04-18 16:43 oTvTo 阅读(1293) 评论(0) 推荐(0)
摘要:沁恒官方EVT链接: CH572:https://www.wch.cn/downloads/CH572EVT_ZIP.html CH573:https://www.wch.cn/downloads/CH573EVT_ZIP.html CH579:https://www.wch.cn/download 阅读全文
posted @ 2024-03-18 16:59 oTvTo 阅读(1429) 评论(0) 推荐(0)
摘要:频段及中心频率对照表,频段宽度2M 频段 中心频率,单位:Mhz 0 2404 1 2406 2 2408 3 2410 4 2412 5 2414 6 2416 7 2418 8 2420 9 2422 10 2424 11 2428 12 2430 13 2432 14 2434 15 2436 阅读全文
posted @ 2024-03-18 16:58 oTvTo 阅读(752) 评论(0) 推荐(0)
摘要:1. 定向广播(Directed Advertising) 定义 定向广播是一种蓝牙低功耗(BLE)广播模式,设备在广播数据包中明确指定目标设备的地址 ,只有该设备能接收到广播并响应。 特点 目标明确 :广播数据包中携带目标设备的 MAC 地址(或蓝牙地址)。 低延迟连接 :适用于快速重连(如设备已 阅读全文
posted @ 2023-08-22 17:18 oTvTo 阅读(1606) 评论(4) 推荐(0)
摘要:以CH582为例,我们随便打开一个BLE例程,我这边以Hid_Keyboard例程为例, 找到我们广播包所在处,如下图 在其中添加一段描述符, 加上一串:0x06,0xff,0x06,0x00,0x03,0x00,0x80 这样我们在蓝牙广播时电脑就会发出弹窗。 阅读全文
posted @ 2023-06-09 17:17 oTvTo 阅读(764) 评论(0) 推荐(1)
摘要:OTA程序修改部分: 1.先准备好下方红圈这三个文件和需要给固件升级的APP程序文件 如果把这三个文件单独提到外面,可能会出现文件缺失,需要设置下公共文件夹的路径,建议放在例程文件夹中编译较为省心。 如果单拎出去,不要忘记把SRC、LIB、HAL三个文件夹一起带出去。 如果移植文件位置后编译出现文件 阅读全文
posted @ 2023-05-12 14:57 oTvTo 阅读(2408) 评论(0) 推荐(0)
摘要:CH571,CH573,CH582,CH583写法一致,本篇以CH582为例介绍蓝牙配对码使用方法; 蓝牙HID设备理论上均可实现该功能,这里就以Hid键盘为例, 本篇以串口中断的方式为例发送密码,其它方式均可以自行尝试, uint8_t TxBuff[] = "This is a tx exam\ 阅读全文
posted @ 2023-04-11 14:28 oTvTo 阅读(4135) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2023-02-04 17:23 oTvTo 阅读(799) 评论(0) 推荐(0)
摘要:常见错误码: 错误码:0x08 原因:由于握手超时导致断开,主设备或从设备在监督超时(Supervision Timeout)内未收到对方的有效数据包或链路层应答。 旧版协议中的超时断开 :在蓝牙4.0/4.1规范中,0x08 表示连接超时(Connection Timeout),与 0x28 含义 阅读全文
posted @ 2022-12-29 10:48 oTvTo 阅读(10443) 评论(0) 推荐(1)