您好,登錄后才能下訂單哦!
本文將介紹怎么樣在VScode環境下,將AliOS Tings提供的blink例程在Developerkit開發板上運行起來。
cdn.com/413f8cd9e7ea5426c663ce40bb9ab8b3efc03556.png">
DeveloperKit開發板
在例程中分別用到兩個led和一個按鈕,上圖中用紅色的框標識出來。例程正確運行后,會有一個LED按1s的周期閃爍,另外一個LED當按鍵被按下時,切換輸出電平。本文中,各個硬件的分配如下表:
外設名稱 |
對應gpio |
實驗中的功能 |
LED1 |
PB6 |
每秒閃爍1次 |
LED2 |
PE3 |
當檢測到按鍵時切換輸出電平 |
按鈕M |
PE11 |
通過中斷方式檢測按接下來我們進入代碼,并按照具體的硬件對應引腳修改源碼。 |
同VS CODE打開AliOS-Things 2.0源碼,如果您還沒有AliOS-Things的源碼,可以在VS code的控制臺中通過git工具進行拉取,拉取命令如下:
git clone https://github.com/alibaba/AliOS-Things.git
打開源碼后,我們在源碼的app/example/blink目錄下,打開blink.c,在源碼的頂部找到幾個宏定義如下:
#define GPIO_LED_IO 18#define GPIO_TRIGGER_IO 4#define GPIO_INPUT_IO 5
上述的幾個宏定義需要和我們和實際的硬件對應,對應關系如下表:
宏定義 |
對應硬件 |
實際IO口 |
OS中的引腳編號 |
實驗中的功能 |
GPIO_LED_IO |
LED1 |
PB6 |
22 |
每秒閃爍1次 |
GPIO_TRIGGER_IO |
LED2 |
PE3 |
67 |
當檢測到按鍵時切換輸出電平 |
GPIO_INPUT_IO |
按鈕M |
PE11 |
75 |
通過中斷方式檢測按鍵 |
由于AliOS-Things對硬件進行了抽象,所以對GPIO的操作需要先按照一定的規則將MCU的GPIO轉換為編號。轉換規則為MCU的GPIO bank號 X 16 + 具體gpio在bank中的位置,bank的編號從0開始。如PB6,其bank號為1在bank中的位置為6,則PB6應被轉換為 1 X 16 + 6 = 22;同理,PE3=4 x 16 + 3 = 67。因為例程不是為Developerkit開發板而寫,所以需要修改例程中的宏第一如下:
#define GPIO_LED_IO 67 // PE3#define GPIO_TRIGGER_IO 22 // PB6#define GPIO_INPUT_IO 75 // PE11
完成修改后,保存blink.c文件。
在VS CODE環境中,在左下角的alios-studio中,點擊編譯目標選擇按鈕
此時編輯器頂部的命令輸入框會彈出選擇要編譯的目標,此時選擇blink
緊接著會繼續要求選擇開發板,此時選擇Developerkit開發板。
接下來通過alios-studio工具條的編譯按鈕啟動編譯。
等待編譯完成。
Making blink@developerkit.bin Making blink@developerkit.hex AOS MEMORY MAP|=================================================================|| MODULE | ROM | RAM ||=================================================================|| newlib_stub | 296 | 0 || sal | 6977 | 250 || kv | 3055 | 104 || common | 256 | 12 || libc_nano | 19649 | 602 || kernel_init | 653 | 36 || rhino | 16225 | 7821 || developerkit | 5045 | 1403 || vfs | 950 | 1141 || digest_algorithm | 92 | 0 || libgcc | 3320 | 0 || stm32l4xx_cube | 26592 | 8506 || cli | 6234 | 357 || yloop | 2369 | 28 || device_sal_bk7231 | 8542 | 265 || sensor | 9451 | 303 || osal | 1074 | 4 || log | 412 | 20 || hal | 164 | 12 || blink | 325 | 24 || atparser | 5882 | 297 || armv7m | 1975 | 0 || *fill* | 150 | 1599 ||=================================================================|| TOTAL (bytes) | 119688 | 22784 ||=================================================================|Build complete
將Developerkit連接至PC,確保開發板的STlink驅動已被正確安裝。
通過alios-studio工具條中的下載按鈕,將編譯好的固件下載到開發板中。
燒寫完成后開發板會自動運行,此時可以看到LED開始按1s為間隔閃爍。按動板上的“M”按鈕,LED2會切換輸出。這里要指出,blink Demo主要為了演示GPIO的HAL層操作函數,并沒有做按鍵去抖動工作,所以點按按鈕時,可能會出現按一次LED2直接切換兩次。也請大家在實際的代碼設計中注意按鍵去抖能力的加入。到此,例程已成功完成運行。
作者: 巴人壹個
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。