本次更新了sdk,同时也更新了keil~~~路途曲折有点小忧伤,不过现在开发环境更新了后感觉还可以。 keilMDK:5.20 Nordic BLE SDK :nRF51_SDK_8.1.0_b6ed55f 以上呢~网上都有,大家可以自己找,找不到再找我要吧~帖子不让发链接~~ 使用例程:..nRF51_SDK_8.1.0_b6ed55fexamplesble_peripheralble_app_proximity2pca10028s110ARM5_no_packs
假设我们要创建个profile (Server),UUID为0xFFA2,包含一个Characterstic UUID为0xFF01.当然,UUID是我随便取的。 需要注意的有两个初始化接口:ble_stack_init(); 跟services_init(); ble_stack_init()中有个softdevice_ble_evt_handler_set(ble_evt_dispatch); 其中所使用的参数见下图:
可以发现,这个函数中包含了各个profile的事件接收(处理)函数。所以我们需要在这个函数中添加我们自定义的事件接收函数。 ble_customer_on_ble_evt(p_ble_evt);至于为什么其他函数有两个参数~而我只有一个~因为ble传给我们的实际就那一个参数啊~其他的大家可以自己定。
services_init(); 顾名思义,创建services(profile)的,
我们也添加自己的customer_init()用于添加Services。如下图是我添加的内容
最主要的是sd_ble_gatts_service_add(…),看名字就知道是增加服务的~so,查下document,可以找到如下功能:
参数1:类型,文档说:seeBLE_GATTS_SRVC_TYPES~~,因此等于 BLE_UUID_TYPE_BLE 参数2:服务的UUID的指针~,所以我们创建个ble_uuid_t ble_uuid ,将该ble_uuid初始化~ 参数3:注意该参数类型是out的,所以是个指针~,uint16 的数,其实是指向服务的handle(该handle 后面会用到)。
紧接着增加sd_ble_gatts_service_add(…)后,接下来就是增加Characterstic,如customer_char_add(); :
先是创建了好多不知道啥东西的变量,然后使用sd_ble_gatts_characteristic_add(…) 来增加Characterstic~, 其实上面的参数都是根据该函数的变量来的~因此参看文档即可知道需要添加什么参数,如:
参数1:services_handle ,是不是很熟悉,就是上面create services 时输出的services_handle。填入~ 参数2:Charactersticmetadata ~不是很明白的话看看源码~goto过去看看,如下图:
后面的注释~~恩恩,就不怎么解释了。具体的赋值方式~后续再给出(此部分应该说是BLE4.0标准的东西了)。 参数3:Characterstic 的值~ 参数4:out类型,这个就是Characterstic 的handle了~(注意,该值需要保存滴~后续读写之类的会用到)。 这样基本完成~~ 接下来验证: 往ble_customer_on_ble_evt(..)中写点东西咯,当蓝牙层有事件发生,就会调用相应的函数入口,进入不同的switch!
注意!:该on_connect(),是我自己定义的~ 内容如下,可以看出,这是往串口输出 on_connect!!!!消息~。
我使用的是手机端的nRFTool来搜索ble设备的,用的是小米4(烂手机!哈哈) 直接debug,全速执行,即可搜索到device,点击连接,建立连接后可看到相应profile 串口也会打印消息。 如图:
调试过程遇到的几个问题: 1、debug的时候,全速执行,手动去点暂停~,再全速执行,再暂停,很容易进入HardFault_Handler ,(其实呢,官方的demo也会这样的,所以,一定是我们调试方法不对,最好还是用串口输出吧)。 2、烧写softdevice的时候遇到点麻烦~下载的sdk如下图,softdevice 藏在框框中~如:..DesktopnRF51_SDK_8.1.0_b6ed55fcomponentssoftdevices110hex ,找到hex了,使用nRF Studio进行烧写, 但是呢,遇到个问题如下图,这个其实是softDevice size 没有填(图中为0),那么填多少合适??? 文档中有写。文档路径:..nRF51_SDK_8.1.0_b6ed55fcomponentssoftdevices110docs110_nrf51822_8.0.0_migration_document.pdf
|