基于S130及SDK12.3.0的nRF51系列二次开发心得(1)

一、BLE基本认识
1.BLE双模可以扮演四种角色:Central,Peripheral,Observer和Broadcaster,常用的是Central和Peripheral。Central通过scan功能搜索周边开启的蓝牙设备,并可以与多个同时连接,比如手机设备等。Peripheral通过advertising功能发送自己设备信息,被Central设备连上之后不能再被其他Central设备搜索到,比如蓝牙耳机、蓝牙音箱等。
2.softdevice协议里面有client和server两种角色。Central需要通过服务(profile/service的UUID)向Peripheral获取数据,而UUID以及属性值是由Peripheral设备定义好的,因此Central设备在协议里扮演的是client角色,Peripheral扮演则是Server角色。
二、开发资料
开发资料主要是nRF官方提供的SD和SDK以及相关文档。需要注意的是SD版本与SDK版本需要配套使用。本人使用的SD版本是S130,SDK版本是V12.3.0。
SoftDevice简称SD,是基于BLE协议栈的API接口,用于应用层和协议栈之间的通信,因此我们只能看到S130文件夹中就是一堆头文件以及一个协议栈对应版本的hex文件。
SDK是nRF官方提供的软件开发包。里面主要提供了开发库以及官方例程。开发库路径在./components,官方例程路径在./examples,有部分官方例程是不支持BRF51系列的,比如ant应用等。下面对开发库和官方例程内容做一个详细描述。

文件路径内容说明
./component/ant这个应用是在NRF52系列以上的,SD也应使用S2xx以上版本,在此不多描述
./component/ble与ble开发相关的应用层代码
./component/boardsNordic官方开发板的板级头文件定义
./component/deviceNordic蓝牙芯片开发寄存器等头文件定义
./component/drivers_extNordic官方开发板扩展功能芯片的驱动
./component/drivers_nrfNordic蓝牙芯片M0内核外设的驱动
./component/librariesNordic官方提供的应用层可移植库(M0的外设应用等)
./component/softdevice四个版本的SD,NRF51系列开发可用S130或S132版本
./component/toolchain开发时必须要的一些内核文、.s启动文件以及调试文件

下面重点在介绍一下./component/ble路径下与NRF51系列Ble开发的内容。

文件路径内容说明
./component/ble/ble_advertising做central角色时搜索设备的实现
./component/ble/ble_db_discovery蓝牙设备协议栈接收到数据时应用层处理的实现
./component/ble/ble_servicesble的服务实现(文件夹名带_c后缀的表明在service中做是client角色,基本认识里面已经做过说明),里面包括了串口服务nus_c/nus等(理解:noirdic uart service,蓝牙底层接收到数据之后会触发串口服务,具体实现按照自己需要可进行修改)
./component/ble/commonble应用层开发会用到的可移植文件,定义了一些设备状态接口等,一般不需做修改

下面列举examples文件夹里面有NRF51系列Ble开发相关的内容。

文件路径内容说明
./examples/ble_central做central角色的例程,包括串口蓝牙通信例程,一连多例程等
./examples/ble_peripheral做peripheral角色的例程,有beacon例程,串口通信例程等
./examples/ble_central_and_peripheral既可作centra又可做peripheral角色的例程
./examples/peripheralNRF51系列芯片外设参考例程,这个相当于裸机外设调试例程,ble开发不需要用到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值