BLE40 执行流程.docx

上传人:b****8 文档编号:9371094 上传时间:2023-05-18 格式:DOCX 页数:12 大小:327.71KB
下载 相关 举报
BLE40 执行流程.docx_第1页
第1页 / 共12页
BLE40 执行流程.docx_第2页
第2页 / 共12页
BLE40 执行流程.docx_第3页
第3页 / 共12页
BLE40 执行流程.docx_第4页
第4页 / 共12页
BLE40 执行流程.docx_第5页
第5页 / 共12页
BLE40 执行流程.docx_第6页
第6页 / 共12页
BLE40 执行流程.docx_第7页
第7页 / 共12页
BLE40 执行流程.docx_第8页
第8页 / 共12页
BLE40 执行流程.docx_第9页
第9页 / 共12页
BLE40 执行流程.docx_第10页
第10页 / 共12页
BLE40 执行流程.docx_第11页
第11页 / 共12页
BLE40 执行流程.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

BLE40 执行流程.docx

《BLE40 执行流程.docx》由会员分享,可在线阅读,更多相关《BLE40 执行流程.docx(12页珍藏版)》请在冰点文库上搜索。

BLE40 执行流程.docx

BLE40执行流程

Project:

SimpleBLEPeripheral

1.主机改写特征值后,从机的调用执行过程。

1).先是在simpleBLEPeripheral.c的SimpleBLEPeripheral_Init()调用下面的API进行初始化。

2).读写特征值回调函数的注册:

(simpleGATTprofile.c)

3).参数simpleProfileCBs的定义为:

4).函数simpleProfile_WriteAttrCB调用回调函数的API。

5).结构体simpleProfile_APPCBs的赋值为:

6).在SimpleBLEPeripheral_Init()中进行赋值初始化,注册回调函数:

7).参数simpleBLEPeripheral_SimpleProfileCBs赋值如下:

8).最后真正执行特征值被改变时,判断具体哪个特征值被改变,并对应执行应用编程。

9).

Project:

SimpleBELCentral

2.按键的执行过程。

1).main函数中进行key初始化。

HalDriverInit()调用HalKeyInit()按键GPIO驱动初始化;InitBoard()调用HalKeyConfig()进行按键key配置。

包含回调函数OnBoard_KeyCallback.

2).当按键有按下时,进入外部中断入口,发出HAL_KEY_EVENT事件.

3).OSAL循环判断,进入HAL层,执行Hal_ProcessEvent()任务.然后调用检测按键函数HalKeyPoll().

4).函数HalKeyPoll()的详细内容,HalKeyPoll函数进行按键判断,分析哪个按键按下。

然后会调用pHalKeyProcessFunction函数。

pHalKeyProcessFunction函数即是OnBoard_KeyCallback函数,在InitBoard函数进行初始化时调用HalKeyConfig函数配置时有对pHalKeyProcessFunction变量进行赋值。

5).函数OnBoard_KeyCallback调用OnBoard_SendKeys函数Send"KeyPressed"messagetoapplication。

6).变量registeredKeysTaskID在RegisterForKeys()函数中被赋值,而RegisterForKeys()在SimpleBLECentral_Init()中被调用。

7).执行函数osal_msg_send(registeredKeysTaskID,(uint8*)msgPtr)之后,OSAL任务查询时会跳转到应用层APP:

SimpleBLECentral_ProcessEvent函数。

8).函数simpleBLECentral_HandleKeys就是应用层按键处理函数。

9).

Project:

SimpleBLEPeripheral

3.从机服务端发起广播的过程。

1).直接调用GAP层的API函数GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED,sizeof(uint8),&initial_advertising_enable),对应的参数很重要。

2).GAPRole_SetParameter在GAPROLE_ADVERT_ENABLED这个变量下会进行判断当前的状态进行调用对应的API。

3).OSAL循环查询任务时,进入到gapRole_TaskID对应的任务GAPRole_ProcessEvent。

在函数GAPRole_ProcessEvent里对对应的START_ADVERTISING_EVT进行相关的广播设置。

最后调用GAP_MakeDiscoverable()函数API进行广播。

4).机构体pGapRoles_AppCGs在应用层任务中进行初始化。

5).变量simpleBLEPeripheral_PeripheralCBs的初始化.

6).

7).

Project:

SimpleBELCentral

4.开机自动扫描并发起连接的执行过程。

1).在应用层任务初始化SimpleBLECentral_Init时,发出启动设备事件。

2).在OSAL中循环查询应用层任务并执行,判断events为START_DEVICE_EVT时执行发起扫描任务。

3).函数API:

GAPCentralRole_StartDiscovery()具体设置扫描参数和调用如下:

4).连接connect:

是在simpleBLECentralEventCB函数中判断是否为扫描事件,并判断被发现设备的数目。

5).发起连接函数:

6).跟踪simpleBLECentralEventCB()函数的被调用:

<1>.定义simpleBLERoleCB变量时使用simpleBLECentralEventCB进行赋值。

<2>.simpleBLERoleCB作为参数传递给函数GAPCentralRole_StartDevice().

<3>.跟踪pGapCentralRoleCB的被调用:

<4>.跟踪gapCentralRole_ProcessGAPMsg()函数的调用:

<5>.跟踪gapCentralRole_ProcessOSALMsg()函数的调用:

7).

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2