完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
10个回答
|
|
|
|
|
|
可以看看gapRole_ProcessGAPMsg()对GAP_DEVICE_INIT_DONE_EVENT的处理。这里在addr加入到advertising data。
case GAP_DEVICE_INIT_DONE_EVENT: [ gapDeviceInitDoneEvent_t *pPkt = (gapDeviceInitDoneEvent_t *)pMsg; bStatus_t stat = pPkt->hdr.status; if ( stat == SUCCESS ) [ // Save off the generated keys VOID osal_snv_write( BLE_NVID_IRK, KEYLEN, gapRole_IRK ); VOID osal_snv_write( BLE_NVID_CSRK, KEYLEN, gapRole_SRK ); // Save off the information VOID osal_memcpy( gapRole_bdAddr, pPkt->devAddr, B_ADDR_LEN ); gapRole_state = GAPROLE_STARTED; // Update the advertising data stat = GAP_UpdateAdvertisingData( gapRole_TaskID, TRUE, gapRole_AdvertDataLen, gapRole_AdvertData ); ] if ( stat != SUCCESS ) [ gapRole_state = GAPROLE_ERROR; ] notify = TRUE; ] break; |
|
|
|
shenzhenqide 发表于 2018-6-6 10:38 我用debug跟踪到这里确实是正确的蓝牙地址,可是当我调节广播间隔,使用HCI_LE_SetAdvParamCmd函数将间隔调整到1S后,蓝牙地址变成全FF了,这是怎么引起的? |
|
|
|
linlin10 发表于 2018-6-6 10:46 这样导致我多个设备都调整广播后,无法区分了 |
|
|
|
我用debug跟踪到这里确实是正确的蓝牙地址,可是当我调节广播间隔,使用HCI_LE_SetAdvParamCmd函数将间隔调整到1S后,蓝牙地址变成全FF了,这是怎么引起的? |
|
|
|
另外还有一个问题,我看代码里面有DevInfo_AddService,可是在IOS应用那边没有发现所定义的关于这一部分characteristic,比如2A23, 我IOS需要读取这些值。 |
|
|
|
linlin10 发表于 2018-6-6 11:16 关于地址, 本人试过, 把广播时间设置成1s, 丝毫没有影响, BTool正常查找到并显示出正确地址, 试过很多次了. 是不是你其他地方的代码有问题? 结果导致广播时间一变, 就产生并发症之类的导致这个问题? |
|
|
|
骑猪去天山 发表于 2018-6-6 11:46 参数设成HCI_PUBLIC_DEVICE_ADDRESS和HCI_RANDOM_DEVICE_ADDRESS的区别 |
|
|
|
Hi wang, public address就是芯片的物理地址, random的就是随机产生的一个地址. 用random的话就不能用white list,因为每次地址都会不一样. |
|
|
|
骑猪去天山 发表于 2018-6-6 11:46 我想问一下怎么设置连接时间为1s 因为我追踪到 static void gapRole_ProcessGAPMsg( gapEventHdr_t *pMsg ) [ case GAP_LINK_PARAM_UPDATE_EVENT: [ NPI_WriteTransport("14n",3); gapLinkUpdateEvent_t *pPkt = (gapLinkUpdateEvent_t *)pMsg; // Cancel connection param update timeout timer (if active) VOID osal_stop_timerEx( gapRole_TaskID, CONN_PARAM_TIMEOUT_EVT ); if ( pPkt->hdr.status == SUCCESS ) [ // Store new connection parameters gapRole_ConnInterval = pPkt->connInterval; gapRole_ConnSlaveLatency = pPkt->connLatency; gapRole_ConnTimeout = pPkt->connTimeout; printv(gapRole_ConnInterval); // Make sure there's no pending connection update procedure if ( osal_get_timeoutEx( gapRole_TaskID, START_CONN_UPDATE_EVT ) == 0 ) [ // Notify the application with the new connection parameters if ( pGapRoles_ParamUpdateCB != NULL ) [ NPI_WriteTransport("15n",3); (*pGapRoles_ParamUpdateCB)( gapRole_ConnInterval, gapRole_ConnSlaveLatency, gapRole_ConnTimeout ); ] ] ] ] break; ] 可是static gapRolesParamUpdateCB_t *pGapRoles_ParamUpdateCB=NULL ; 导致无法修改连接时间 我想问一下 怎么实现这个函数 这个函数里面做一些什么。由于回调函数学的不是很好,麻烦指点一下,谢谢了 |
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
58浏览 29评论
140浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 08:56 , Processed in 0.946651 second(s), Total 66, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号