Project:SimpleBLEPeripheral主机改写特征值后,从机的调用执行过程。.()调用下面的API进行初始化。.读写特征值回调函数的注册:().参数simpleProfileCBs的定义为:.函数simpleProfile_WriteAttrCB调用回调函数的API。.结构体simpleProfile_APPCBs的赋值为:.在SimpleBLEPeripheral_Init()中进行赋值初始化,注册回调函数:.参数simpleBLEPeripheral_SimpleProfileCBs赋值如下:.最后真正执行特征值被改变时,判断具体哪个特征值被改变,并对应执行应用编程。.Project:SimpleBELCentral按键的执行过程。.main函数中进行key初始化。HalDriverInit()调用HalKeyInit()按键GPIO驱动初始化;InitBoard()调用HalKeyConfig()进行按键key配置。包含回调函数OnBoard_KeyCallback..当按键有按下时,进入外部中断入口,发出HAL_KEY_EVENT事件..OSAL循环判断,进入HAL层,执行Hal_ProcessEvent()()..函数HalKeyPoll()的详细内容,HalKeyPoll函数进行按键判断,分析哪个按键按下。然后会调用pHalKeyProcessFunction函数。pHalKeyProcessFunction函数即是OnBoard_KeyCallback函数,在InitBoard函数进行初始化时调用HalKeyConfig函数配置时有对pHalKeyProcessFunction变量进行赋值。.函数OnBoard_KeyCallback调用OnBoard_SendKeys函数Send"KeyPressed"messagetoapplication。.变量registeredKeysTaskID在RegisterForKeys()函数中被赋值,而RegisterForKeys()在SimpleBLECentral_Init()中被调用。.执行函数osal_msg_send(registeredKeysTaskID,(uint8*)msgPtr)之后,OSAL任务查询时会跳转到应用层APP:SimpleBLECentral_ProcessEvent函数。.函数simpleBLECentral_HandleKeys就是应用层按键处理函数。.Project:SimpleBLEPeripheral从机服务端发起广播的过程。.直接调用GAP层的API函数GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED,sizeof(uint8),&initial_advertising_enable),对应的参数很重要。.GAPRole_SetParameter在GAPROLE_ADVERT_ENABLED这个变量下会进行判断目前的状态进行调用对应的API。.OSAL循环查询任务时,进入到gapRole_TaskID对应的任务GAPRole_ProcessEvent。在函数GAPRole_ProcessEvent里对对应的START_ADVERTISING_EVT进行相关的广播设置。最后调用GAP_MakeDiscoverable()函数API进行广播。.机构体pGapRoles_AppCGs在应用层任务中进行初始化。.变量simpleBLEPeripheral_PeripheralCBs的初始化...Project:SimpleBELCentral开机自动扫描并发起连接的执行过程。.在应用层任务初始化SimpleBLECentral_Init时,发出启动设备事件。.在OSAL中循环查询应用层任务并执行,判断events为START_DEVICE_EVT时执行发起扫描任务。.函数API:GAPCentralRole_StartDiscovery()具体设置扫描参数和调用如下:.连接connect:是在simpleBLECentralEventCB函数中判断是否为扫描事件,并判断被发现设备的数目。.发起连接函数:
BLE4.0-执行流程 来自淘豆网m.daumloan.com转载请标明出处.