- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
深深⼊⼊NNXXPP低低功功耗耗蓝蓝⽛⽛SSDDKK开开发发系系列列--⼴⼴播播,,扫扫描描与与连连接接
接上⼀篇整体构介绍后,相信⼤家对NXP低功耗协议的使⽤还是没有什么概念(我没写错你也没看错)。由于第⼀篇博⽂信息量过⼤,没有在
NXPBLESDK上做过⼀定开发的的同学看起来肯定是云⾥雾⾥。从本篇开始将BLESDK中逐个功能进⾏剖析,并且尽可能按照由浅⼊深的顺序
发布。
前前置置条条件件
由于⽹上有⼤量的⽂章介绍BLE技术,这⼉就不从零讲起基本概念了,假定各位同学对BLE⼴播与扫描功能有基本的了解,⾄少知道得以下⼏个⽅
⾯:
1.⼴播和扫描的意义(为什么双⽅要做这件事)
2.双⽅的⾓⾊扮演(简单说主机扫描,从机⼴播)
3.基本的⼴播参数:时间间隔,⼴播通道,扫描占空⽐等
4.⼴播中带有⼀些数据,如果知道他们的格式就更好了
虽然⽂章主要⽬的是要在介绍如何在NXP低功耗蓝⽛SDK中进⾏⼴播和扫描,但如果⼀上来就讲API⼜过于⼲涩。在涉及到笔者认为有必要展开的
协议内容的时候我还是会将⼀下原理的。
BLE5对⼴播和扫描这部分有⼀些⽐较⼤的变化,⽬前市⾯上相关的应⽤还⽐较少,因此本篇仍以BLE4.2规范中定义的
功能作为出发点,后续如有必要再单独介绍BLE5带来的⼴播扩展功能。
什什么么时时候候可可以以开开始始⼴⼴播播扫扫描描??
在BLE协议规范中,对主机(Host)和控制器(Controller)初始化的流程有⼀个清晰定义,⽤户要⾛完这个流程才能向协议栈提交请求,同时BLE芯
⽚也需要对射频部分寄存器进⾏初始化来保证RF电路的正常⼯作。NXPBLESDK中的系统⼊⼝main_task()任务体实现⾥,在正式进⼊事件loop
之前将会调⽤Ble_Initialize()来准备以上两项⼯作。注意!是准备,⽽⾮完成。也就是说该函数返回后,协议栈可能仍然没有准备好。记得千万不
要直接在这个函数后⾯开启⼴播和扫描!
那何时才可以呢?初始化过程在调⽤Ble_Initialize()时SDK会让安装⼀个默认的回调函数App_GenericCallback(),回调触发后再由她转⽽触发⽤户层
的BleApp_GenericCallback()。当协议栈完成所有初始化⼯作后,⽤户将在这个回调函数⾥收到gInitializationComplete_c事件,这才标志着⽤户可以
正常使⽤BLE协议栈提供的服务了。
⼴⼴播播((aaddvveerrttiissiinngg))
在NXPBLESDK中涉及到⼴播主要是4个API:
//设置⼴播数据(和扫描回复数据)
bleResult_tGap_SetAdvertisingata(gapAdvertisingata_t*pAdvertisingata,
gapScanResponseata_t*pScanResponseata);
//设置⼴播参数
bleResult_tGap_SetAdvertisingParameters(gapAdvertisingParameters_t*
pAdvertisingParameters);
//开启⼴播
bleResult_tGap_StartAdvertising(gapAdvertisingCallback_tadvertisingCallback,
gapConnectionCallback_tconnectionCallback);
//停⽌⼴播
bleResult_tGap_StopAdvertising(void);
以上的4个API都是异步的,就意味着调⽤后会⽴刻得到返回值,该返回值仅表⽰函数调⽤(如参数传递是否正确,内存是否充⾜)的结果,实际
功能的执⾏完成,⽤户应等到各个的回调事件到来作为判断。
下表列出了相关的事件:
事事件件TTaagg触触发发函函数数事事件件⽤⽤户
您可能关注的文档
- 低压台区数据核查的技术措施及应用.docx
- 会计信息系统的内部控制.docx
- 2023初中英语阅读比赛活动方案.docx
- 消防安全知识培训精品课件.pptx
- 劳动法规与政策第3阶段测试题.doc
- 2021-2022学年海南省澄迈县第一小学人教版五年级上册期末达标模拟检测数学试卷.docx
- NC6完整版本.5产品手册-动态建模平台条码配置.pdf
- 初三语文教学工作总结(精选5篇).doc
- 小学班主任年度述职报告(通用7篇).docx
- 2022年离任审计述职报告5篇.doc
- 高中生运用荧光光谱法比较澳洲和北美蜂蜜的色素分子结构差异课题报告教学研究课题报告.docx
- 初中化学教学中绿色化学理念融入的实践研究课题报告教学研究课题报告.docx
- 初中英语阅读文本中情感倾向的深度AI分析课题报告教学研究课题报告.docx
- 2025建筑工程监理合同模板.docx
- 高中生运用历史GIS技术分析茶马古道外交关系演变课题报告教学研究课题报告.docx
- 滑县公务员面试面试题及答案.doc
- 基于多智能体技术的个性化学习资源推荐系统在小学数学教学中的应用教学研究课题报告.docx
- 初中英语阅读教学中预测能力培养策略的课题报告教学研究课题报告.docx
- 桦甸公务员面试面试题及答案.doc
- 高中化学实验方案设计与评估教学中概念图的应用课题报告教学研究课题报告.docx
原创力文档


文档评论(0)