我想要实现的功能是两块CH579 一主一从实现通信(传输大概30多字节 频率不高 )
我当前使用了 CentPeri 例程作为主机,Peripheral例程作为从机.
目前知道主机发送数据给从机使用
主机的代码:
attWriteReq_t req; req.cmd = FALSE; req.sig = FALSE; req.handle = centralCharHdl; req.len = SIMPLEPROFILE_CHAR1_LEN; req.pValue = GATT_bm_alloc(centralConnHandle,ATT_WRITE_REQ,req.len,NULL,0); if ( req.pValue != NULL ) { tmos_memcpy(req.pValue,send_buf,SIMPLEPROFILE_CHAR1_LEN); if( GATT_WriteCharValue(centralConnHandle,&req,centralTaskId) != SUCCESS ) { GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ); PRINT("GATT_WriteCharValue error \r\n"); } }
而从机主动发送数据给主机要使用notify的形式发送,而且是主机去开启从机这个功能,但是这方面的我并不了解,希望能够指点一下
下面是主机上我想要开启从机notify功能的代码(但是不能实现效果)
主机的代码:
attWriteReq_t req; req.cmd = 0; req.sig = 0; req.handle = GATT_CLIENT_CHAR_CFG_UUID; 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 ) { printf("\r\nenable notify\r\n"); } else { GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ); }
希望有懂的人指点一下,十分感谢
热门产品 :
CH585: 集成高速USB和NFC的蓝牙MCU