打印

蓝牙串口的蓝牙程序源码谁有吗?通过串口对CC2540修改密码和名称的操作

[复制链接]
3653|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
penghuiyanbiyun|  楼主 | 2017-4-14 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近开始编写CC2540协议栈程序,主控芯片与CC2540的串口相连进行通信,目前在CC2540协议栈通过串口回调函数接收主控芯片的AT指令,解析这部分,目前已能返回OK等简单回复。但想修改CC2540的名称和连接密码的话,感觉有点不知从哪下手,问题:
1、如何修改密码和名称?
2、每次重新上电,芯片都会重新复位,密码和名称又会初始化,这又该怎么处理呢?

下面是我解析AT指令的部分核心程序

if(dms_strcmp(pBuffer,"AT+NAME",7)==0)  //识别到修改名称指令
   {
     scanRspData[0] =0x03;
     scanRspData[1] = GAP_ADTYPE_LOCAL_NAME_COMPLETE;
     scanRspData[2] =0x70;        //0x70,0x68为两个字节的名称
     scanRspData[3] =0x68;   
     scanRspData[4] =0x05;
     scanRspData[5] =GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE;
     scanRspData[6] =LO_UINT16( 20 );
     scanRspData[7] =LO_UINT16( 20 );
     scanRspData[8] =LO_UINT16( 20 );
     scanRspData[9] =LO_UINT16( 20 );
     scanRspData[10] =LO_UINT16( 20 );
     scanRspData[11] =0x02;
     scanRspData[12] =GAP_ADTYPE_POWER_LEVEL;
     scanRspData[13] =0;
   
     RENAME=1;           
     osal_set_event(simpleBLEPeripheral_TaskID ,SYS_EVENT_MSG); //触发事件修改名称
   }


//在SimpleBLEPeripheral_ProcessEvent函数中找到下列行
if ( events & SYS_EVENT_MSG )
  {
    uint8 *pMsg;

    if(RENAME==1)   //增加修改名称的处理
    {
      RENAME==0;
      GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );
    }
   
    if ( (pMsg = osal_msg_receive( simpleBLEPeripheral_TaskID )) != NULL )
    {
      simpleBLEPeripheral_ProcessOSALMsg( (osal_event_hdr_t *)pMsg );

      // Release the OSAL message
      VOID osal_msg_deallocate( pMsg );
    }

    // return unprocessed events
    return (events ^ SYS_EVENT_MSG);
  }



修改密码:
if(dms_strcmp(pBuffer,"AT+CODE",7)==0)
  {
     GAPRole_TerminateConnection();   //首先断开与主机的连接,再修改密码
     uint32 passkey = 123456;     //将密码修改为123456
     uint8 pairMode = GAPBOND_PAIRING_MODE_INITIATE;
    uint8 mitm = TRUE;
    uint8 ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY;
    uint8 bonding = TRUE;
    GAPBondMgr_SetParameter( GAPBOND_DEFAULT_PASSCODE, sizeof ( uint32 ), &passkey );//设置密码
    GAPBondMgr_SetParameter( GAPBOND_PAIRING_MODE, sizeof ( uint8 ), &pairMode );
    GAPBondMgr_SetParameter( GAPBOND_MITM_PROTECTION, sizeof ( uint8 ), &mitm );
    GAPBondMgr_SetParameter( GAPBOND_IO_CAPABILITIES, sizeof ( uint8 ), &ioCap );
    GAPBondMgr_SetParameter( GAPBOND_BONDING_ENABLED, sizeof ( uint8 ), &bonding );
    GAPBondMgr_SetParameter( GAPBOND_ERASE_ALLBONDS,0, NULL );

  }



这只是我目前的代码,都没法实现。。。网上也找不到相关的程序,有的只是如何操控成熟的串口蓝牙模块的步骤,而没有具体的实现串口蓝牙的程序,希望有做过的朋友指点一下。谢谢~

相关帖子

沙发
dirtwillfly| | 2017-4-14 09:53 | 只看该作者
你用的那个公司的蓝牙模块?

使用特权

评论回复
板凳
penghuiyanbiyun|  楼主 | 2017-4-14 09:59 | 只看该作者
dirtwillfly 发表于 2017-4-14 09:53
你用的那个公司的蓝牙模块?

我不是用的蓝牙模块,是用的TI公司的CC2540芯片,自己搭的硬件环境,软件是利用蓝牙BLE-CC254x-1.3.2协议栈编程实现,与手机相连通信都没有问题。现在CC2540是作为从机,我想通过串口给它指令,修改它的配对密码和名称。

使用特权

评论回复
地板
dirtwillfly| | 2017-4-14 10:30 | 只看该作者
你在哪个工程的基础上改的?还是只使用了协议栈自己写的

使用特权

评论回复
5
penghuiyanbiyun|  楼主 | 2017-4-14 10:39 | 只看该作者
dirtwillfly 发表于 2017-4-14 10:30
你在哪个工程的基础上改的?还是只使用了协议栈自己写的

在串口透传,SimpleBLEPeripheral的工程里修改的,请问你是对这个协议栈比较熟 吧?拜托指点一下,我还不怎么熟悉

使用特权

评论回复
6
hudi008| | 2017-4-14 22:01 | 只看该作者
这个程序有什么问题?

使用特权

评论回复
7
hudi008| | 2017-4-14 22:08 | 只看该作者
8
penghuiyanbiyun|  楼主 | 2017-4-20 11:53 | 只看该作者
hudi008 发表于 2017-4-14 22:01
这个程序有什么问题?

问题已解决,在网上找到了别人的分享例程,很不错的分享。甜甜的大香瓜,哈哈哈哈
http://blog.csdn.net/feilusia/article/details/53609219

使用特权

评论回复
9
minzisc| | 2017-4-22 23:23 | 只看该作者
penghuiyanbiyun 发表于 2017-4-20 11:53
问题已解决,在网上找到了别人的分享例程,很不错的分享。甜甜的大香瓜,哈哈哈哈
http://blog.csdn.net/ ...

这个怎么实现的?

使用特权

评论回复
10
minzisc| | 2017-4-22 23:25 | 只看该作者
penghuiyanbiyun 发表于 2017-4-20 11:53
问题已解决,在网上找到了别人的分享例程,很不错的分享。甜甜的大香瓜,哈哈哈哈
http://blog.csdn.net/ ...

参考的SimpleBLEPeripheral工程。

使用特权

评论回复
11
lzbf| | 2017-4-23 21:58 | 只看该作者
这个密码应该是初始化就有的。

使用特权

评论回复
12
houjiakai| | 2017-4-23 21:59 | 只看该作者
这个修改CC2540的名称不会

使用特权

评论回复
13
youtome| | 2017-4-23 22:00 | 只看该作者
是不是保存到外部EEPROM吗?

使用特权

评论回复
14
cemaj| | 2017-4-23 22:00 | 只看该作者
CC2540协议栈通过串口回调函数接收主控芯片的AT指令,这个有参考吗?

使用特权

评论回复
15
lzbf| | 2017-4-23 22:01 | 只看该作者
手机蓝牙串口不就是配对吗?

使用特权

评论回复
16
houjiakai| | 2017-4-23 22:01 | 只看该作者
应该有这个名称的寄存器吧。

使用特权

评论回复
17
youtome| | 2017-4-23 22:01 | 只看该作者
上电之后读取存储的数据就行。

使用特权

评论回复
18
cemaj| | 2017-4-23 22:01 | 只看该作者
TI没有相关代码参考吗?

使用特权

评论回复
19
309030| | 2017-4-25 22:11 | 只看该作者
楼主怎么实现的,可以分享吗

使用特权

评论回复
20
tongbu2015| | 2017-4-27 22:58 | 只看该作者
蓝牙的设计开发还是蛮复杂的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

110

帖子

1

粉丝