完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
CC2541 center端发送20字节数据到从机,只能发一次? 我现在需要CC2541 center端发送多个字节(超过20个,最多为255)的数据到从机,我是分包进行发送的,数据通道规定大小为20个字节,比如我发100个字节,我要发送5次完成,但是实际上,只有第一次的头20个字节发送成功,后续的字节能够发送,调用GATT_WriteCharValue也返回success,但是收不到MSG。 我发送的程序为一个子函数,如下: void write_center_data_to_client()//向center数据通道写入数据,大小为20个字节 { if ( simpleBLEState == BLE_STATE_CONNECTED && CENTER_data_valueHdl != 0 && simpleBLEProcedureInProgress == FALSE ) {//必须为可读写状态才能读写 attWriteReq_t req; req.handle = CENTER_data_valueHdl; req.len = 20; osal_memcpy(req.value,center_data_buff,req.len); req.sig = 0; req.cmd = 0; if ( GATT_WriteCharValue( simpleBLEConnHandle, &req, simpleBLETaskId ) == SUCCESS ) { simpleBLEProcedureInProgress = TRUE; } else { simpleBLEProcedureInProgress = FALSE; } } } 其中uint8 center_data_buff[20];//固定向client写入的20字节数据缓冲 在发送的时候,首先调用这个子函数发送第一包,然后在MSG函数中得到回应后,才发送第二包,如此循环,我将后续函数放到这里: else if ( ( pMsg->method == ATT_WRITE_RSP ) || ( ( pMsg->method == ATT_ERROR_RSP ) && ( pMsg->msg.errorRsp.reqOpcode == ATT_WRITE_REQ ) ) )//写特征值回调确认状态 { if ( pMsg->method == ATT_ERROR_RSP == ATT_ERROR_RSP ) { uint8 status = pMsg->msg.errorRsp.errCode; LCD_WRITE_STRING_VALUE( "Write Error", status, 10, HAL_LCD_LINE_1 ); } else { // After a succesful write, display the value that was written and increment value LCD_WRITE_STRING_VALUE( "Write sent:", simpleBLECharVal++, 10, HAL_LCD_LINE_1 ); //写入特征值数据正确,可继续写入 if(Start_send_ble_data_flag != SEND_BLE_DATA_IDLE) { CENTER_data_divide_packet_send_to_client(Uart1_RxBuf,Uart1_RxBuf[1]);//发送串口收到的指令数据 } } simpleBLEProcedureInProgress = FALSE; } 红色部分为我自己的分包函数,发送第一部分后,得到响应,程序会自动发送第二包。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3257 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3903 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3411 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
3964 浏览 1 评论
20603 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
737浏览 2评论
923浏览 2评论
953浏览 1评论
1078浏览 1评论
359浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:14 , Processed in 0.803522 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号