• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术讨论 > LightBlue 是进入什么函数来设置characteristic的值呢?

LightBlue 是进入什么函数来设置characteristic的值呢?

录入:edatop.com     点击:
使用LightBlue读写一个characteristic时,RTOS会调用什么函数来处理?在使用SimpleBLEPeripheral这个工程文件改写,在simpleGATTProfile.c这个文件的
bStatus_t SimpleProfile_SetParameter( uint8 param, uint8 len, void *value )
函数的开头部分添加以下语句(头文件已添加,能编译通过):
if(*((uint8*)value) == 0xff)
{
PINCC26XX_setOutputValue(Board_LED1, 0);
PINCC26XX_setOutputValue(Board_LED2, 0);
PINCC26XX_setOutputValue(Board_LED3, 0);
PINCC26XX_setOutputValue(Board_LED4, 0);
}
else if(*((uint8*)value) == 0xee)
{
PINCC26XX_setOutputValue(Board_LED1, 1);
PINCC26XX_setOutputValue(Board_LED2, 1);
PINCC26XX_setOutputValue(Board_LED3, 1);
PINCC26XX_setOutputValue(Board_LED4, 1);
}
判断设置的参数是否为0xff或者0xee,分别用4个LED的亮和灭来表示。但是在手机的LightBlue软件中,重新设置参数,却没有LED的闪烁,调试的时候,在这个函数加入断点,也没有进入。
问题是:如果在手机端(Client)设置参数,不是进入bStatus_t SimpleProfile_SetParameter( uint8 param, uint8 len, void *value )这个函数中进行,那么是进入到了什么函数来设置characteristic的值呢?

SetParameter接口可以理解成是给2640的APP部分调用的读写接口
static bStatus_t simpleProfile_WriteAttrCB(uint16_t connHandle,
gattAttribute_t *pAttr,
uint8_t *pValue, uint16_t len,
uint16_t offset, uint8_t method)这个函数是协议栈调用的接口
现在你是用手机读写2640的数值 所以任何数值的改变都是手机从蓝牙传输到2640 通过蓝牙协议栈传到APP层的
所以读写调用的应该是
simpleProfile_ReadAttrCB和simpleProfile_WriteAttrCB

上一篇:cc2540与手机如何保证稳定连接呢?
下一篇:cc2530使用中的几个疑惑,求指导

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图