微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540主机搜索从机广播内容,打印出的数据有问题?

CC2540主机搜索从机广播内容,打印出的数据有问题?

时间:10-02 整理:3721RD 点击:

您好:

我想让主机根据扫描到的不同广播内容来判断连接对象,我在TI官方例程simpleBLECentral下的simpleBLECentral.c文件里的函数static void simpleBLECentralEventCB( gapCentralRoleEvent_t *pEvent )中添加了一句话

 case GAP_DEVICE_INFO_EVENT:
      {
        // if filtering device discovery results based on service UUID
        if ( DEFAULT_DEV_DISC_BY_SVC_UUID == TRUE )
        {
          if ( simpleBLEFindSvcUuid( SIMPLEPROFILE_SERV_UUID,
                                     pEvent->deviceInfo.pEvtData,
                                     pEvent->deviceInfo.dataLen ) )
          {
            simpleBLEAddDeviceInfo( pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType );
            //打印主机搜索到的广播数据
            NPI_WriteTransport ( pEvent->deviceInfo.pEvtData, osal_strlen((char *)(pEvent->deviceInfo.pEvtData)));
          }
        }
      }
      break;

令我奇怪的是,打印的内容不只有广播数据,还有别的内容02 01 06 03 02 F0 FF (34 80),这个34 80 就是广播中没看到的数据,后来重启从机再次搜索,得到是 02 01 06 03 02 F0 FF (34 A9 32 80),请问这些杂乱数据是哪来的?   我拿packet sniff确定我的广播数据就是02 01 06 03 02 F0 FF 。

另外,我编译中遇到一个警告Warning[w52]: More than one definition for the byte at address 0x6b in common segment INTVEC. It is defined in module "hal_uart" as well as in module "hal_key" ,不知道该怎么改,是否对错误有影响了?谢谢!

1: 检查发送数据的长度 osal_strlen((char *)(pEvent->deviceInfo.pEvtData))

    strlen测量的是字符串的长度,广播数据不一定是0结尾的数据

2: 错误表示有两个中断ISR,你看看是不是写错中断ID号了

我查了一下osal_strlen得到的长度是9,也就是说pEvent->deviceInfo.pEvtData里的数据确实不只是广播数据,那如果每次收广播数据前清0一次pEvtData,该怎么做了?

中断ID在哪了?我把宏定义HAL_UART=TRUE一打开,在编译就是这样

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top