作者:大兵萊恩|曾建評
[藍色小鋪一起來做]是個自發性的研究聚會,目前的聚會主題是 Bluetooth LE(BLE)的技術研究,會用 TI 的 CC254x 開發板來做些有趣的計畫,近期聚會的目標是要做一台能用 Beacon 控制開關的枱燈。本文將介紹怎麼在 OSAL 的架構下改程式或加功能。
本文的主題是講解無錫谷雨的《2.中級:OSAL實驗教程》裡面的 UART 通訊範例程式:
1. 範例程式編譯與執行
以下簡單描述一下範例程式的編譯與執行過程:
1.1 將 UART 通訊範例程式的 Components 與 Projects 複製起來:
然後去蓋掉 TI 的 BLE stack 裡面的 Components 與 Projects:
1.2 找到 TI 的 BLE stack 裡面的 OSAL_TEST,依你的開發板種類 (CC2540 或 CC2541),開啟裡面的專案檔:
1.3 將 CC254x 開發板連同 CC Debugger 一併連接到電腦上:
1.4 開啟 Project | Options,在 C/C++ Compiler 的 Preprocessor 裡面加上 HAL_UART=TRUE 的 flag:
1.5 編譯並下載軔體到開發板上。按了按鍵或搖桿,LCD 畫面會有不同訊息顯示:
1.6 再將 CC Debugger 移除,讓 CC254x 開發板直接和電腦相連。這時,裝置管理員會顯示多了一個 COM 裝置:
1.7 執行 sscom32.exe,設定 COM port 與 baud rate = 57600,再開啟埠口,就會在 sscom32.exe 的畫面上看到同 LCD 畫面顯示的訊息:
2. 程式流程簡介
OSAL 的 framework 已處理掉大部份的事,我們只需在幾個特定的 function() 中做好該做的事即可。
在 IAR 開啟 SimpleOsal.c:
2.1 SimpleOsal_Init(),這邊是在做初始化的工作:
2.2 SimpleOsal_ProcessEvent(),這邊在處理 message 與 event:
2.3 在 SimpleOsal_ProcessMsg() 與 simpleOsal_HandleKeys(),則是針對按鍵的動作做適當反應:
接著,在 IAR 開啟 SerialApp.c:
2.4 在 SerialApp_Init() 和 serialAppInitTransport(),則是在做 UART 的通訊處理:
接下來要進行的主題,是要將一個枱燈連接到開發板上,並要能用 app 去遙控開關,敬請期待。
(本文經《大兵萊恩 一路直前》部落格同意轉載編輯,原文連結;責任編輯:歐敏銓)
延伸閱讀
- [藍色小鋪] PTT地震文團隊分享:Maker的IOT遊樂場 - 2015/06/24
- [藍色小鋪一起來做] 講解 BLE CC2540 UART 通訊範例程式 - 2015/01/13
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!