No Code AI(肉寇)AI自動化兩日精通|實體6小時+線上6小時
|

[藍色小鋪一起來做] 講解 BLE CC2540 UART 通訊範例程式

   

作者:大兵萊恩|曾建評

[藍色小鋪一起來做]是個自發性的研究聚會,目前的聚會主題是 Bluetooth LE(BLE)的技術研究,會用 TI 的 CC254x 開發板來做些有趣的計畫,近期聚會的目標是要做一台能用 Beacon 控制開關的枱燈。本文將介紹怎麼在 OSAL 的架構下改程式或加功能。

[藍色小鋪一起來做] 在Openlab Taipei動起來!

[藍色小鋪一起來做] 在Openlab Taipei動起來!

本文的主題是講解無錫谷雨的《2.中級:OSAL實驗教程》裡面的 UART 通訊範例程式:

a1

1. 範例程式編譯與執行

以下簡單描述一下範例程式的編譯與執行過程:

1.1 將 UART 通訊範例程式的 Components 與 Projects 複製起來:

a2

然後去蓋掉 TI 的 BLE stack 裡面的 Components 與 Projects:

a3

1.2 找到 TI 的 BLE stack 裡面的 OSAL_TEST,依你的開發板種類 (CC2540 或 CC2541),開啟裡面的專案檔:
a4

1.3 將 CC254x 開發板連同 CC Debugger 一併連接到電腦上:

IMG_0322

1.4 開啟 Project | Options,在 C/C++ Compiler 的 Preprocessor 裡面加上 HAL_UART=TRUE 的 flag:

a8
a5

1.5 編譯並下載軔體到開發板上。按了按鍵或搖桿,LCD 畫面會有不同訊息顯示:

IMG_0323

1.6 再將 CC Debugger 移除,讓 CC254x 開發板直接和電腦相連。這時,裝置管理員會顯示多了一個 COM 裝置:

a6

1.7 執行 sscom32.exe,設定 COM port 與 baud rate = 57600,再開啟埠口,就會在 sscom32.exe 的畫面上看到同 LCD 畫面顯示的訊息:

IMG_0326

2. 程式流程簡介

OSAL 的 framework 已處理掉大部份的事,我們只需在幾個特定的 function() 中做好該做的事即可。

在 IAR 開啟 SimpleOsal.c:

2.1 SimpleOsal_Init(),這邊是在做初始化的工作:

a7

2.2 SimpleOsal_ProcessEvent(),這邊在處理 message 與 event:

a9

2.3 在 SimpleOsal_ProcessMsg() 與 simpleOsal_HandleKeys(),則是針對按鍵的動作做適當反應:

a10

接著,在 IAR 開啟 SerialApp.c:

2.4 在 SerialApp_Init() 和 serialAppInitTransport(),則是在做 UART 的通訊處理:

a11

接下來要進行的主題,是要將一個枱燈連接到開發板上,並要能用 app 去遙控開關,敬請期待。
(本文經《大兵萊恩 一路直前》部落格同意轉載編輯,原文連結;責任編輯:歐敏銓)

大兵萊恩|曾建評

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: 大兵萊恩|曾建評

在多年的軟體工程師生涯後,因緣際會跨進Maker圈,見識了眾多前輩高手的作品與別出心裁的應用想法,也開啟動手自造的豐富生活。 職場上是一位軟體及系統類產品的PM,個人對雲端與物聯網議題很有興趣,研究及寫作心得請見個人部落格:《大兵萊恩 一路直前

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *