蓝牙4.0入门(2)开始程序编写(三)BLE的编写

来源:互联网 发布:centos man 中文 编辑:程序博客网 时间:2024/06/07 17:33

2.3.BLE的编写

  蓝牙程序的编写主要是作为从机s110,和主机s120以及主从机s130。都是需要先下载。教程可参见hex下载教程。

主要参考的资料:n36 (里面详细阐述了第一个ble程序,入门必看的)

                S110以及s120的程序

                Nrf51 sdk

                去官网找问题的答案:https://devzone.nordicsemi.com/question

学习方法:如果以前接触过无线通信的单片机应用理解比较容易,没接触过可以先从整体把握,先不要拘泥于一些细节问题。看观察下方框图,从整体了解,慢慢接触。

学习的话,可以先从ble_app_template,这个例程是一个模板。

                     从机方框图


从机下载前先下s110协议栈,结合程序和方框图分析:从机经过初始化后,就会进入sd_app_evt_wait();但出现event时进入event处理,在ble stack event,即on_ble_evt(ble_evt_t * p_ble_evt)里。一般肯定有处理的中断connected,disconnected,timeout。具体还包含哪些中断可以直接看ble_gap.h。当需要获取rssi时,需要现在connected里开启sd_ble_gap_rssi_start(m_conn_handle);

然后新增event  BLE_GAP_EVT_RSSI_CHANGED:  当rssi发送变化时即进入event处理.


主机方框图


主机下载前先下s120协议栈,结合程序和方框图分析:主机经过初始化后,就会进入sd_app_evt_wait(); 至少有三个event入口。一个硬件连接,一个数据连接,一个客户端连接。

对于rssi的获取,s120目前只有在连接前扫描阶段可以获取,其他时间不行。可参见下面的描述。

https://devzone.nordicsemi.com/question/6975/sd120-central-device-rssi-problem/

 

数据接收:client_handling_ble_evt_handler(ble_evt_t* p_ble_evt)的BLE_GATTC_EVT_HVX:

0 0