微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 我想用CC2540作为master ,请问如何配置

我想用CC2540作为master ,请问如何配置

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

我想用CC2540作为master ,请问如何配置,有没有例程?

TI BLE stack 里SimpleBLECentral工程就是Master的

SimpleBLECentral工程里面如果接收到从机发过来的包有没有产生一个中断或回调?

首先你要让主机和从机成功完成连接,然后所有从从机发过来的GATT封包可以在

simpleBLECentralProcessGATTMsg()里收到。

首先你要让主机和从机成功完成连接,然后所有从从机发过来的GATT封包可以在

simpleBLECentralProcessGATTMsg()里收到。simpleBLECentralProcessGATTMsg()里面的pMsg->method的值是什么?

信息属性类型,表示这个封包是一个什么信息,例如是读属性还是写属性或者是一个Notifacation,等等

如果从机是Notifacation,那pMsg->method是什么?

ATT_HANDLE_VALUE_NOTI

从机用Notifacation送出一个包,主机端simpleBLECentralProcessGATTMsg()没有反应。

第一,你要确保已经连接

第二,连接后Notification的属性必须打开才能正常工作,默认是设置为0的,你需要设置为1

例如例程Peripheral中,连接后Master必须设置Slave的skConfig属性为1,才能正常Notification

我的从机与苹果电脑通信用Notification送数据,苹果电脑可以接收到数据,但是我主机用SimpleBLECentral例程,从机同样用Notification送数据,主机没反应

例如例程Peripheral中,连接后Master必须设置Slave的skConfig属性为1,才能正常Notification是不是skKeyPressed=1;?

不是,是这个UUID的属性:

// Characteristic configuration
      {
        { ATT_BT_UUID_SIZE, clientCharCfgUUID },
        GATT_PERMIT_READ | GATT_PERMIT_WRITE,
        0,
        (uint8 *)skConfig
      },

原本就是这样设置的,那需要怎样改?

我印象中是调用这个函数:

GATT_WriteCharValue()

我主机用SimpleBLECentral工程,从机用BloodPressure工程,它们连接成功后我用从机Service_IMeasNotify发送数据给主机,在运行

bStatus_t Service_IMeasNotify( uint16 connHandle, attHandleValueNoti_t *pNoti, uint8 taskId )
{
uint16 value = GATTServApp_ReadCharCfg( connHandle, ServiceIMeasConfig );

// If notifications enabled
if ( value & GATT_CLIENT_CFG_NOTIFY )
{
// Set the handle
pNoti->handle = ServiceAttrTbl[SERVICE_IMEAS_VALUE_POS].handle;

// Send the Indication
return GATT_Notification( connHandle, pNoti, FALSE);

}
return bleIncorrectMode;

}这个中uint16 value = GATTServApp_ReadCharCfg( connHandle, ServiceIMeasConfig );读出value 为0;这是为什么,是还要怎样设置才可以从机端才可以用Notification发送数据给主机端?

mo mo,

正如CZ前面说的 在central端, 请通过GATT_WriteCharValue() 去写 peripheral中的 skConfig 这个值, 把这个值写成1.

你没写, 通过GATTServApp_ReadCharCfg()读回来的当然是 0.

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

网站地图

Top