由浅入深蓝牙40BLE协议栈开发攻略大全_第1页
由浅入深蓝牙40BLE协议栈开发攻略大全_第2页
由浅入深蓝牙40BLE协议栈开发攻略大全_第3页
由浅入深蓝牙40BLE协议栈开发攻略大全_第4页
由浅入深蓝牙40BLE协议栈开发攻略大全_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本系列教程将联合TI推出的CC254xSoC系列,解说从环境的搭建到蓝牙发来深入学习蓝牙4.0的开发过程。教程共分为六部分,本文为第五部分:4.0协议栈的开第五部分知识点:第二十一节DHT11温湿度传感器第二十二节蓝牙协议栈之从机通讯第二十三节蓝牙协议栈主从一体之主机通讯第二十四节OAD空中升级第二十五节SBL串口升级有关TI的CC254x芯片介绍,可点击下面链接查察:主流蓝牙BLE控制芯片详解(1):TICC2540同系列资料介绍:由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(2)由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(3)由浅入

2、深,蓝牙4.0/BLE协议栈开发攻略大全(4)有关本文的工具下载,大家能够到以下这个地点:朱兆祺ForARM第二十一节DHT11温湿度传感器DHT11简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,保证产品拥有极高的可靠性和优秀的长久稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相精选文库连结。因此该产品拥有品质优秀、超快响应、抗搅乱能力强、性价比极高等优点。每个DHT11传感器都在极为精准的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的办理过程中

3、要调用这些校准系数。单线制串行接口,使系统集成变得简单快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最正确选择。产品为4针单排引脚封装,连结方便。技术参数供电电压:3.35.5VDC输出:单总线数字信号测量范围:湿度20-90%RH,温度050测量精度:湿度+-5%RH,温度+-2分辨率:湿度1%RH,温度1交换性:可完全交换,长久稳定性:0)/显示扫描到的设施/Incrementindexofcurrentresult(withwraparound)simpleBLEScanIdx+;if(simpleBLEScanIdx=simpleBLEScanRes)32精选文

4、库simpleBLEScanIdx=0;LCD_WRITE_STRING_VALUE(“Device”,simpleBLEScanIdx+1,10,HAL_LCD_LINE_1);LCD_WRITE_STRING(bdAddr2Str(simpleBLEDevListsimpleBLEScanIdx.addr),HAL_LCD_LINE_2);if(keys&HAL_KEY_RIGHT)/右/Connectionupdateif(simpleBLEState=BLE_STATE_CONNECTED)/如果连结,则更新连结GAPCentralRole_UpdateLink(simpleBLECo

5、nnHandle,DEFAULT_UPDATE_MIN_CONN_INTERVAL,DEFAULT_UPDATE_MAX_CONN_INTERVAL,DEFAULT_UPDATE_SLAVE_LATENCY,DEFAULT_UPDATE_CONN_TIMEOUT);if(keys&HAL_KEY_CENTER)/中间键33精选文库uint8addrType;uint8*peerAddr;/Connectordisconnectif(simpleBLEState=BLE_STATE_IDLE)/安闲则连结/ifthereisascanresultif(simpleBLEScanRes0)/con

6、necttocurrentdeviceinscanresultpeerAddr=simpleBLEDevListsimpleBLEScanIdx.addr;addrType=simpleBLEDevListsimpleBLEScanIdx.addrType;simpleBLEState=BLE_STATE_CONNECTING;GAPCentralRole_EstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,DEFAULT_LINK_WHITE_LIST,addrType,peerAddr);LCD_WRITE_STRING(“Connecting”,HAL_

7、LCD_LINE_1);LCD_WRITE_STRING(bdAddr2Str(peerAddr),HAL_LCD_LINE_2);elseif(simpleBLEState=BLE_STATE_CONNECTING|/连结则断开连结simpleBLEState=BLE_STATE_CONNECTED)34精选文库/disconnectsimpleBLEState=BLE_STATE_DISCONNECTING;gStatus=GAPCentralRole_TerminateLink(simpleBLEConnHandle);LCD_WRITE_STRING(“Disconnecting”,H

8、AL_LCD_LINE_1);if(keys&HAL_KEY_DOWN)/下/StartorcancelRSSIpollingif(simpleBLEState=BLE_STATE_CONNECTED)/连结则读取RSSi的值if(!simpleBLERssi)simpleBLERssi=TRUE;GAPCentralRole_StartRssi(simpleBLEConnHandle,DEFAULT_RSSI_PERIOD);elsesimpleBLERssi=FALSE;GAPCentralRole_CancelRssi(simpleBLEConnHandle);LCD_WRITE_STR

9、ING(“RSSICancelled”,HAL_LCD_LINE_1);35精选文库因为从机一直处于广播状态,所以秩序将上一节中的从机程序烧录进开发板即可,然后将主机程序烧录到其他一快开发板,经过五向按键来实现和从机的连结和读写功能。1)上电提示从机上电提示:36精选文库主机上电提示:37精选文库(2)根据主机的按键功能,我们按“UP”键,开始搜寻周边设施。搜寻完成后,能够看到,扫描到了一个设施。(3)接着我们查察扫描到的设施地点,按左键。能够看到扫描到的设施地点为0 x7C669D9F638A。这个地点正是我们的从机地点。4)按中间键连结从机,能够看到主机提示连结成功,从机也提示连结成功。5

10、)接着我们开始读取从机的RSSI值,按下键。38精选文库6)再次按下键,取消RSSI值的读取。7)对从机的CHAR1进行读写,再次按上键读取到CHAR1的值为1。8)接着按上键,对CHAR1写入0,同时看到从机提示CHAR1的值被改正为0。主机写入成功:39精选文库从机提示CHAR1被改变:40精选文库上电自动连结上一节中我们经过五向按键实现了主机连结从机的功能,这一节中们来实现主机上电后自动搜寻连结从机。要实现连结,从机必须处于广播状态,剩下的工作全部由主机完成,扫描、倡始连结。主机的状态也有回调函数,主机启动后,第一个状态是初始化,所以我们在初始化完成时开始扫描,这样开机后主机就会开始扫描

11、周边设施,接下来我们在扫描完成后对扫描到的设施倡始连结。41精选文库将工程编译下载后经过串口助手察看主机和从机的输出能够发现主机上电后自动的完成了一系列的操作。第二十四节OAD空中升级经过仿真器更新程序或许经过USB更新固件那都是一般人都能够实现的操作,可是要想实现OAD空中升级,这仍是需要一定的技术能力。这一节我就带着大家完善这一能力。OADnairdownload,指空中下载模式。当我们的产品发布此后,有时需要对固件进行升级,OAD是升级方式中的一种。配置BIM(BootImageManger)翻开IAR,翻开BLE-CC254x-1.4.0下的工程C:TexasInstrumentsBL

12、E-CC254x-1.4.0ProjectsbleutilBIMcc254xBIM.eww,然后编译,下载到开发板中。配置ImageA翻开OADExample工程,配置工程,增添如下几个宏FEATURE_OAD_BIMHAL_IMAGE_AFEATURE_OADOAD_KEEP_NV_PAGES1)翻开simplePeripheral.c找到宏定义DEFAULT_ENABLE_UPDATE_REQUEST,将其改为FLASE。否则会影响BLEDeviceMonitor对其进行空中升级,到时能够再改回来。(2)IAR左侧导航中找到Profile文件夹,点击右键增添oad_target.c和oad

13、_target.h两个文件,二文件位于C:TexasInstrumentsBLE-CC254x-1.4.0ProjectsbleProfilesOAD中。3)在IAR导航中找到HALTargetMT254xboardDriver,右键增添文件hal_crc.c,该文件位于C:TexasInstrumentsBLE-CC254x-1.4.0ComponentshaltargetMT254xboard中。42精选文库(4)在才的simplePeripheral.c文件中,找到simplePeripheral_Init()函数,在里面增添OADTarget_AddService()函数。5)在sim

14、plePeripheral.c的前面,增添引用OAD的文件,OAD.h和OAD_target.h。6)点ProjectOption,或直接按Alt+F7,BuildActions,在Post-buildcommandline中增添:“。commoncc2540cc254x_ubl_pp.bat”“$PROJ_DIR$”“rodUBL”“$PROJ_DIR$CC2540-OAD-ImgAExeOADExample”注意,各双引号之只有一个空格。注意中框的部分,Image_A是和以前第1步的。7)点ProjectOption,或直接按Alt+F7,Linker,Config,LinkerConfi

15、gurationfile中勾Overridedefault,增添C:TexasInstrumentsBLE-CC254x-1.4.0Projectsblecommoncc2540cc254x_f256_imgA.xcl。(8)点ProjectOption,或直接按Alt+F7,Linker,ExtraOutput。9)ExtraOption增添Hex文件的出。(10)点OK,下,如果出如下,是因我使用的是IAR80518.30版本,如果你使用的是IAR8.20版本就没有。(11)个是因使用了虚存放器致的,我找到如下文件。43精选文库(12)对文件的115前进行如下改正,将虚构存放器说明掉。44

16、精选文库13)后,能够看到我生成的文件14)我将hex文件叠加到BIM后边ImageA就成功开板了。配置ImageB(1)方法如ImageA,其余要注意的几个地方:点ProjectOption,或直接按Alt+F7,C/C+Compiler,Preprocessor,将Definedsymbols中的HAL_IMAGE_A改成B。2)点ProjectOption,或直接按Alt+F7,Linker,Config,将LinkerConfigurationfile中的文件改B。(3)保留后,同的能够看到生成的文件。45精选文库(4)为了划分A和B镜像,我们将最终结果更名。空中升级有了bin文件就能

17、够进行空中升级了,翻开BLEDeviceMonitor(没有安装的需要安装),翻开后软件会自动扫描设施,如图,我们扫描到了开发板。46精选文库2)连结后,翻开OAD3)点击file,选择Progame(OAD),选择生成的bin文件,能够看到我们目前运行的是A固件4)点击start,当进行到100%,就完成了固件空中升级。(5)升级后再次翻开OAD选项,能够看到选择运行的固件已经是B版本的了。注意:要把BLE协议栈BLE-CC254x-1.4.0安装在C盘,在其他盘符下没有生成bin文件。第二十五节SBL串口升级47精选文库SBL升级和OAD升级的配置步骤都是同样的,主假如配置的参数不同样,下面我们来配置一个SBL升级的固件。配置SBL翻开IAR,翻开BLE-CC254x-1.4.0下的工程C:TexasInstrumentsBLE-CC254x-1.4.0ProjectsbleutilSBLiarcc254xsbl.eww,然后编译,下载到开发板中。配置Bin文件(1)增添宏MA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论