微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > simpleBLEPeripheral工程

simpleBLEPeripheral工程

时间:12-22 整理:3721RD 点击:

各位高手:

    大家好,问两个基础问题:

1.在simpleBLEPeripheral工程中,选择CC2540DK_MINI配置,此时LED1和LED2以同样的频率闪烁,大概周期为3s左右,当有按键触发开始广播后,这两个指示灯会以更快的频率闪烁(ms级),当主从模块连接上后任然是这个频率闪烁,请问,我如果想更改LED指示状态,比如主从连接上后,将LED指示灯熄灭,应该在哪部分添加代码?

2.UUID同样是0xFFF1,BLE采用V1.1时对应的handle为0x22,换成了V1.2.1,对应的handle变成了0x25,为什么?

谢谢

Hi Peng chen1,

1. 你可以在peripheral.c 中, static void gapRole_ProcessGAPMsg( gapEventHdr_t *pMsg ) 函数里面 的GAP_LINK_ESTABLISHED_EVENT下关闭LED闪烁. 收到这个event表示link建立了. LED的开关请参考 HalLedSet() .

2. attribute handle 跟协议栈版本无关, 即使你用同一个版本, 获得的handle也有可能不一样. 所以要用UUID去获取handle.

谢谢~

但关于第一条,我试了一下在该函数中添加如下代码:

   case GAP_LINK_ESTABLISHED_EVENT:
      {
        gapEstLinkReqEvent_t *pPkt = (gapEstLinkReqEvent_t *)pMsg;

        if ( pPkt->hdr.status == SUCCESS )
        {
          VOID osal_memcpy( gapRole_ConnectedDevAddr, pPkt->devAddr, B_ADDR_LEN );
          gapRole_ConnectionHandle = pPkt->connectionHandle;
          gapRole_state = GAPROLE_CONNECTED;
          HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );                //CP

还是不能关闭LED闪烁,能否帮忙验证一下,谢谢!

另外,一上电指示灯就在闪烁,想知道启动这个闪烁的函数是在哪里被调用的,连接成功之后又是在哪个函数中改变闪烁的频率的,谢谢!

Hi Peng,

不知道你用的是哪个工程? 初始化状态是怎么样的?

你可以尝试用HalLedSet()关闭所有LED, 而并非只有LED_1

谢谢

我用的是SimpleBLEPeripheral\CC2540DB\CC2540DK-MINI Keyfob工程,上电初始化后LED指示灯就在闪烁,大概每3秒钟1次,在上述程序中关闭所有LED也都一样,还是会闪烁。主模块用的是HostTestApp,连接成功后只是闪烁频率变快了。

裸机程序,关闭osal_start_system()后,HalLedSet功能是正常的。不明白程序是在哪里调用了LED闪烁功能的。

Hi Peng chen1

我这边的这个工程里面并没有商店就会LED闪烁, 进入广播也不会, 而且代码里面也确实没有设置LED的开关. 

而且初始化代码里面也关闭了所有的LED闪烁, 但是前提是在工程里面的preprocessor中要定义 "CC2540_MINIDK", 这个默认应该就是定义的.

请确认用的是1.3版本的软件, 并确认是TI提供的原始工程.

谢谢Yan的帮助,问题找到了,原来是在sleep的状态下关闭了所有指示灯,退出睡眠又打开了指示灯,睡眠周期不一样导致闪烁频率不一样。

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

网站地图

Top