nRF51822 S110 使用者指南

2021-07-31 10:01:02 字數 1240 閱讀 6547

softdevice是nrf公司實現的乙個ble藍芽協議棧,只提供hex檔案,可以實現從機角色(peripheral role)或廣播者角色(broadcaster role)

softdevice 的api使用了svc機制(參考鏈結),api方法、資料結構、錯誤碼被定義在一堆和藍芽核心規範相關的標頭檔案裡,例如:乙個gap事件(比如ble_gap_evt_connected)被定義在ble_gap.h。

來自softdevice的訊息作為乙個事件通過軟體中斷的方式向應用分發。開始使用softdevice時,應用需要初始化時鐘源和設定乙個指標指向錯誤處理。為了接收事件,應用同時需要使能軟體中斷。通常開中斷是為了乙個應用的初始化(如建立服務、讀取感測器數值),開啟中斷後再開始廣播或者等待事件(例如:等待主機的鏈結)

事件作為乙個指向c結構體的指標被傳送給應用,這些個結構體定義在通訊層的標頭檔案裡(如:ble_gatts.h, ble_gap.h)

nrf51 sdk提供了乙個叫做ble_stack_handler的模組使初始化和事件處理更簡單。在sdk中的例子裡,所有事件通過此模組的ble_evt_dispatch傳送給應用。然後各個模組在實現自己的處理程式。

正在傳送的資料報和部分api會消耗softdevice中的資料緩衝區。當緩衝區中的資料報傳送出去時,softdevice會傳送ble_evt_tx_complete事件給應用。

有兩種處理管理緩衝區的方法:

softdevice產生事件,sdk中所有服務的實現都是事件驅動並且都有初始化方法和事件處理方法。每個服務都有乙個或多個方法觸發特定服務動作,由應用決定何時觸發。

所有服務初始化方法都有兩個引數:乙個例項結構體和乙個初始化引數結構體。例項結構體包含服務資訊如狀態、特性等,此引數是必須的,其作為特定服務的控制代碼(handle即代表乙個服務物件)。第二個結構體包括初始化資訊和選擇服務功能的一些引數,它盡在建立服務是有效並且當初始化完成時立馬被移除。

ble中的配置檔案(profile)是一組服務的用例說明,配置檔案本身並不是寫在**中的。(配置檔案大概是定義各種應用應使用何種服務的)。

nrf51 sdk中包含幾個助手模組如定時器、按鍵、uart串列埠等。對於softdevice而言,這些也是事件驅動並且同樣需要初始化。當這些發生時也會產生事件。

藍芽nrf51822使用s110 nrf51

問題描述 在例程中第一次燒錄不會出錯,當修改了源程式再次燒錄時會出現 programming failed error flash download failed cortex m0 的錯誤。在debug和utilities配置中都沒有錯,編譯也沒有出錯。解決方法 在target裡面修改,當再次燒錄...

nrf51822 廣播間隔

1.目的 設定廣播間隔,已達到乙個功耗最佳的狀態 2.分析 廣播間隔,指每次藍芽廣播之間的間隔,間隔越大功耗越低,間隔越小功耗越大 3.平台 協議棧版本 sdk10.0.0 編譯軟體 keil 5.14 硬體平台 nrf51822最小系統 4.步驟 在main.c static void adver...

NRF51822和NRF52832的簡單介紹

1 功耗方面 nrf52832更是在nrf51822的基礎上簡直將功耗降低了一半 2 更好的rf體現,主要是發射功率和接納敏感度更好。發射功率,他哥倆適當,都是 4dbm nrf52832的靈敏度是 96dbm,nrf51822的接納靈敏度是 93dbm。3 更強的處理才能,nrf52832的處理器...