我想用CC2540作为master ,请问如何配置
我想用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.