完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我使用GATT_WriteCharValue( uint16 connHandle, attWriteReq_t *pReq, uint8 taskId )向从机发送数据,主机这边返回的是ATT_ERROR_RSP(
If the return status from this function is SUCCESS, the calling application task will receive an OSAL GATT_MSG_EVENT message. The type of the message will be either ATT_WRITE_RSP or ATT_ERROR_RSP (if an error occurred on the server) ),从机那边没有调用simpleProfile_WriteAttrCB。用手机向从机Write能接收到数据。请问这是什么原因?谢谢! |
|
相关推荐
3 个讨论
|
|
|
谢谢您的回答! 我是这样写的: vdid CentralSendToPeripheral(uint16 ConnHandle, uint16 handle, uint8*p, uint8 len ) [ arrWriteReq_t req; req.handle = handle; req.len = len; req.sig = 0; req.cmd = 0; osal_memcpy(req.val, p, len); (void)GATT_WriteCharValue(ConnHandle,&req,serial_TaskID); ] 请问这有什么问题? |
|
|
|
|
|
|
|
chenliyun 发表于 2020-3-18 07:00 下面的例子是获取CHAR1的handle的,请问我要获取CHAR2的handle应该怎么改?我更改req.type.uuid[0] = LO_UINT16(SIMPLEPROFILE_CHAR2_UUID); req.type.uuid[1] = HI_UINT16(SIMPLEPROFILE_CHAR2_UUID);后为什么获取不了?请问还有什么地方需要更改的?谢谢! static void simpleBLEGATTDiscoveryEvent( gattMsgEvent_t *pMsg ) [ attReadByTypeReq_t req; if ( simpleBLEDiscState == BLE_DISC_STATE_SVC ) [ // Service found, store handles if ( pMsg->method == ATT_FIND_BY_TYPE_VALUE_RSP && pMsg->msg.findByTypeValueRsp.numInfo > 0 ) [ simpleBLESvcStartHdl = pMsg->msg.findByTypeValueRsp.handlesInfo[0].handle; simpleBLESvcEndHdl = pMsg->msg.findByTypeValueRsp.handlesInfo[0].grpEndHandle; ] // If procedure complete if ( ( pMsg->method == ATT_FIND_BY_TYPE_VALUE_RSP && pMsg->hdr.status == bleProcedureComplete ) || ( pMsg->method == ATT_ERROR_RSP ) ) [ if ( simpleBLESvcStartHdl != 0 ) [ // Discover characteristic simpleBLEDiscState = BLE_DISC_STATE_CHAR; req.startHandle = simpleBLESvcStartHdl; req.endHandle = simpleBLESvcEndHdl; req.type.len = ATT_BT_UUID_SIZE; req.type.uuid[0] = LO_UINT16(SIMPLEPROFILE_CHAR1_UUID); req.type.uuid[1] = HI_UINT16(SIMPLEPROFILE_CHAR1_UUID); GATT_ReadUsingCharUUID( simpleBLEConnHandle, &req, simpleBLETaskId ); ] ] ] else if ( simpleBLEDiscState == BLE_DISC_STATE_CHAR ) [ // Characteristic found, store handle if ( pMsg->method == ATT_READ_BY_TYPE_RSP && pMsg->msg.readByTypeRsp.numPairs > 0 ) [ simpleBLECharHdl = BUILD_UINT16( pMsg->msg.readByTypeRsp.dataList[0], pMsg->msg.readByTypeRsp.dataList[1] ); LCD_WRITE_STRING( "Simple Svc Found", HAL_LCD_LINE_1 ); simpleBLEProcedureInProgress = FALSE; ] simpleBLEDiscState = BLE_DISC_STATE_IDLE; ] ] |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
600 浏览 0 评论
1653 浏览 0 评论
2095 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1542 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1385 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1794浏览 29评论
2820浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1748浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1666浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1681浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 16:18 , Processed in 0.801616 second(s), Total 66, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1517