1. 程式人生 > >CC2640R2F BLE5.0 下載執行第一個程式(simple_peripheral)

CC2640R2F BLE5.0 下載執行第一個程式(simple_peripheral)

下載執行第一個程式

介紹

本章使用CC2640R2F Evaluation Board作為實驗平臺下載執行simple_peripheral工程。旨在為開發者建立一個BLE的感性認識。simple_peripheral的IAR工程可以在目錄C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\simple_peripheral\tirtos\iar下找到。
有關工程配置和編譯選項以及下載方法參考CC2640R2 BLE 開發環境搭建部分和使用IAR進行開發

simple_peripheral工程實現了具有GATT服務的藍芽低功耗外設。並且該專案作為後面協議棧講解的基礎程式。

硬體環境

成功連線開發板之後,開啟電腦的裝置管理器。可以看見XDS110的兩個埠,接下來我們列印使用的串列埠是XDS110 Class Application/User UART(COM25)

注意:XDS110驅動程式在安裝IAR時會預設安裝,如果你沒有安裝IAR,可以手動更新驅動程式軟體,XDS驅動可以在CC2640R2開發工具集介紹裡獲得。

軟體環境

  • IAR Embedded workbench 7.80.3
  • BLE-STACK V3.0.1
  • flash_programmer 2
  • PuTTY_0.67.0.0.exe
  • BLE Scanner

協議棧和IAR安裝以及我們工程編譯參考CC2640R2 BLE 開發環境搭建

 編譯參考 編譯第一個工程(simple_peripheral),還需要使用PuTTY,一款基於windows的控制檯列印工具。手機端需要安裝BLE Scanner APP。所有工具可以在CC2640R2開發工具集介紹裡獲得。

程式下載

提供兩種方式進行程式下載,如果使用者已經安裝了IAR,並且參考開發環境搭建部分搭建好了環境之後可以直接使用IAR進行下載。如果使用者目前還沒有安裝IAR,可以使用flash_programmer進行韌體下載。下面我們說明一下如何使用flash_Programer 2進行程式下載。

  1. 連線開發板,並開啟Flash_Prorammer 2軟體,在Connected devices介面可以看見我們的裝置。
  2. 點選browser按鍵,在C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5stack\hexfiles路徑下找到cc2640r2lp_simple_peripheral.hex檔案並開啟。
  3. 勾選Erase,選擇All unprotected pages。
  4. 勾選Program,選擇Entire source file。
  5. 勾選Verify 選擇Readback
  6. 點選run,即可完成韌體下載。

Service/Profile表

該工程包含一個服務(Service),5個特徵值(characteristic)。
注意下面的UUID值,使用BLE Scanner可以獲得128位的UUID,但該專案生成的是16位的UUID。

characteristic UUID 格式 屬性 資料來源
1 FFF1 1 byte 讀/寫 peripheral.c / simple_gatt_profile.c
2 FFF2 1 byte peripheral.c / simple_gatt_profile.c
3 FFF3 1 byte peripheral.c / simple_gatt_profile.c
4 FFF4 1 byte 通知 peripheral.c / simple_gatt_profile.c
5 FFF5 5 byte peripheral.c / simple_gatt_profile.c

用法

使用putty的串列埠功能作為該專案的串列埠顯示器。使用以下引數配置putty串列埠。

UART引數 預設值
波特率 115200
資料長度 8 bit
Parity None
Stop bits 1 bit
Flow Control None

當 Simple Peripheral程式啟動,可以在putty上看見專案名稱,廣播狀態,裝置地址,如下圖所示。

廣播是在程式啟動後預設啟動的,開啟手機的BLE Scanner掃描裝置,可以看見一個名為SimpleBLEPeripheral的裝置。

如果有多個名稱為SimpleBLEPeripheral的裝置,可以通過左側的RSSI數值來判斷需要連線的裝置,該值表示藍芽的訊號強度。一旦連線上裝置,終端視窗將顯示智慧手機的裝置地址。

連線成功之後,可以通過按鍵設定PHY的首選項,關於PHY更多描述,參考LE 2M PHY
在BLE Scanner中,你可以看到有關SimpleBLEPeripheral更多資訊。

點開CUSTOM SERVICE,這是使用者自定義服務,其中包含5個characteristic,並顯示了每個characteristic的資訊。

characteristic 1 (UUID:FFF1)

characteristic 1具有讀寫屬性,包含一個位元組長度的值。如下圖所示。

按下R按鈕後,可以讀取characteristic的值,顯示在HEX後面,預設是0x01。按下寫入按鈕後,出現寫入彈窗,可以寫入1位元組任意數字,再次點選讀取可以獲取剛才寫入的值。並且可以在putty中斷看見寫入的ASCII值。這裡我們寫入的是2,對應ASCII碼為50.

每個使用者特徵值下面都有一個R按鍵,可以讀取特徵名稱。如下圖所示。

characteristic 2 (UUID:FFF2)

此特徵值僅具有讀屬性。預設值為0x02.可按照characteristic 1方式進行讀。

characteristic 3 (UUID:FFF3)

此特徵值僅具有寫屬性,預設值為0x03.可按照characteristic 1方式進行寫。

characteristic 4 (UUID:FFF4)

此特徵值僅具有通知屬性,通過點選N按鍵開啟通知屬性,開啟後它會將characteristic 3的值以通知的方式傳送出來。手機端接收到之後顯示在介面。如下圖所示。

並且還可按下特徵值配置旁邊的讀取按鈕顯示是否已經啟動了通知。

characteristic 5 (UUID:FFF5)

characteristic 5僅具有讀屬性,它是5個位元組,預設值為0x0102030405.它與其他特徵值不同的是它需要認證。通過智慧手機與外設配對來完成。預設的密碼是0000,當配對成功,才能讀取到正確內容。

加入我們

文章所有程式碼、工具、文件開源。加入我們QQ群 591679055獲取更多支援,共同研究CC2640R2F&BLE5.0。