CH58X/CH59X通过handle直接通信
通常从机程序固定之后,他的特征值的handle值就是固定的。这时候我们主从机(都是MCU)进行通信的时候可以直接通过handle值,不用再去枚举服务。
下面以notify为例。
一、获取句柄
1、最直白,最简单的方式通过WCH的BLEDEBUG连接上从机之后可以直接获取handle值。

2、通过主机获取,详细方式可见CH58X/CH59X/CH32V20X主机枚举所有服务,MTU交互(多连接版) - 小舟从此逝_1 - 博客园
3、连接上之后从机自己去获取,如下图在simpleProfile_WriteAttrCB中获取方式相同,

二:主机端程序
if(events & START_WRITE_CCCD_EVT) { PRINT("Procedure : %x\n",centralProcedureInProgress); if(centralProcedureInProgress == FALSE)//等待上一次流程结束 { // Do a write attWriteReq_t req; req.cmd = FALSE; req.sig = FALSE; req.handle = 0x43; return (events ^ START_WRITE_CCCD_EVT); break; } req.len = 2; req.pValue = GATT_bm_alloc(centralConnHandle, ATT_WRITE_REQ, req.len, NULL, 0); if(req.pValue != NULL) { req.pValue[0] = 1; req.pValue[1] = 0; if(GATT_WriteCharValue(centralConnHandle, &req, centralTaskId) == SUCCESS) { centralProcedureInProgress = TRUE;//执行完一次任务后将标志写1 } else { GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ); } } } return (events ^ START_WRITE_CCCD_EVT); }
2、打开通知后进入回调,可以通过下面的哈桑农户将数据打印出来

浙公网安备 33010602011771号