91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Developerkit開發板上運行blink例程

發布時間:2020-08-11 08:15:22 來源:ITPUB博客 閱讀:131 作者:許此一生 欄目:云計算

本文將介紹怎么樣在VScode環境下,將AliOS Tings提供的blink例程在Developerkit開發板上運行起來。

在Developerkit開發板上運行blink例程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中,點擊編譯目標選擇按鈕

在Developerkit開發板上運行blink例程

此時編輯器頂部的命令輸入框會彈出選擇要編譯的目標,此時選擇blink

在Developerkit開發板上運行blink例程

緊接著會繼續要求選擇開發板,此時選擇Developerkit開發板。

在Developerkit開發板上運行blink例程

接下來通過alios-studio工具條的編譯按鈕啟動編譯。

在Developerkit開發板上運行blink例程

等待編譯完成。

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驅動已被正確安裝。

在Developerkit開發板上運行blink例程

通過alios-studio工具條中的下載按鈕,將編譯好的固件下載到開發板中。

在Developerkit開發板上運行blink例程

燒寫完成后開發板會自動運行,此時可以看到LED開始按1s為間隔閃爍。按動板上的“M”按鈕,LED2會切換輸出。這里要指出,blink Demo主要為了演示GPIO的HAL層操作函數,并沒有做按鍵去抖動工作,所以點按按鈕時,可能會出現按一次LED2直接切換兩次。也請大家在實際的代碼設計中注意按鍵去抖能力的加入。到此,例程已成功完成運行。

作者: 巴人壹個        

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

儋州市| 望谟县| 扎鲁特旗| 安庆市| 个旧市| 延津县| 新昌县| 黎平县| 扎囊县| 孝义市| 汝南县| 平定县| 安平县| 乐陵市| 新野县| 剑河县| 泸西县| 神木县| 海原县| 宜兰市| 阜新| 磐石市| 积石山| 启东市| 湖南省| 夏邑县| 泊头市| 晋城| 金沙县| 云安县| 惠州市| 额尔古纳市| 西充县| 乐清市| 保山市| 台中市| 东乡县| 神木县| 永和县| 东平县| 青浦区|