嵌入式作業1.2 執行示例程式

一只心耳發表於2024-03-13

目錄
  • 實踐前準備
    • 一、瞭解硬體
    • 二、瞭解開發原理
    • 三、資源下載和IDE安裝
  • 編譯、下載與執行第一個嵌入式程式
    • 步驟1:硬體接線
    • 步驟2:開啟環境,匯入工程
    • 步驟3:編譯工程
    • 步驟4:連線 GEC
    • 步驟5:下載機器碼
    • 步驟6:觀察執行結果
    • 步驟7:透過串列埠觀察執行情況

實踐前準備

一、瞭解硬體

購買嵌入式技術基礎與實踐(第6版)書籍會隨書附贈一個 AHL-STM32L431 嵌入式開發套件;

嵌入式作業1.2 執行示例程式

AHL-STM32L431 以 STM32L431 為核心,輔以硬體最小系統,整合紅、綠、藍三色燈,溫度感測器,觸控感應區,復位按鈕,二路 TTL-USB 介面,外接 Type-C 線,從而形成完整的通用嵌入式計算機。

二、瞭解開發原理

嵌入式軟體開發需要一個交叉編譯[1]和除錯環境,即工程的編輯和編譯所使用的工具軟體通常在工具機上執行,這個工具軟體稱為整合開發環境(IDE),開發流程通常是先用工具機(如 PC)開發程式,交叉編譯後生成執行程式(機器碼檔案),透過寫入偵錯程式(如 JTAG)下載到目標機執行除錯。

使用 MCU 設計嵌入式系統,資料與程式空間採用不同儲存介質,通常程式固化到 Flash 中,變數及堆疊使用 RAM 儲存器。

三、資源下載和IDE安裝

我們要使用的開發環境為 SD-EAI&IoT 推出的 AHL-GEC-IDE,具有編輯、編譯、連結等功能,特別是配合“金葫蘆”硬體,可直接執行、除錯程式,根據晶片型號不同相容常用嵌入式整合開發環境。

  • 硬體資源:AHL-STM32L431(隨書夾帶)

    嵌入式作業1.2 執行示例程式
  • 整合開發環境:AHL-GEC-IDE

嵌入式作業1.2 執行示例程式
  • 工程檔案:AHL-MCU6-V2.0-20240118
嵌入式作業1.2 執行示例程式

如有其他資料需求,大家也可以到蘇州大學嵌入式學習社群瀏覽下載

image-20240313140838148

最終我們會得到這兩個壓縮包,自行解壓安裝即可,需要注意的是IDE的安裝路徑不要出現中文,工程檔案需要記住其路徑(不要放太深)。

編譯、下載與執行第一個嵌入式程式

步驟1:硬體接線

將 Type-C 資料線的小端連線主機板的 Type-C 介面,另外一端接通用計算機的 USB 介面。

嵌入式作業1.2 執行示例程式

能夠觀察到電腦裝置管理器出現圖中兩個 USB 序列裝置(埠號不一定相同),開發板LED小燈開始閃爍即為成功。

步驟2:開啟環境,匯入工程

開啟整合開發環境 AHL-GEC-IDE,單擊選單“檔案”→“匯入工程”,隨後選擇之前下載的工程檔案中..\04-Software\CH01\AHL-STM32L431-Test(資料夾名就是工程名。注意:路徑中不能包含漢字,也不能太深)。匯入工程後,左側為工程樹形目錄,右側為檔案內容編輯區,初始顯示 main.c 檔案內容。

image-20240313145830454

image-20240313143400428

步驟3:編譯工程

單擊選單“編譯”→“編譯工程”,就開始編譯。正常情況下,編譯後會顯示“編譯成功!”。

image-20240313143735280

步驟4:連線 GEC

單擊選單“下載”→“串列埠更新”,將進入更新窗體介面。單擊“連線 GEC”查詢目標 GEC,若提示“成功連線……”,則可進行下一步操作。若連線不成功,則可參閱電子資源中..\02-Document 資料夾內的快速指南文件中的“常見問題及解決辦法”一節進行解決。

image-20240313144348518

步驟5:下載機器碼

單擊“選擇檔案”按鈕,匯入被編譯工程目錄下 Debug 中的 .hex 檔案,然後單擊“一鍵自動更新”按鈕,等待程式自動更新完成。當更新完成之後,程式將自動執行。

image-20240313144658674

image-20240313144750446

步驟6:觀察執行結果

現象如下:

  1. 紅、綠、藍各燈每 5s、10s、20s 狀態變化,對外表現為三色燈的合成色,開始時為暗,依次變化為紅、綠、黃(紅+綠)、藍、紫(紅+藍)、青(藍+綠)、白(紅+藍+綠),週而復始;
  2. 用手觸控開發板上標有”熱敏“字樣的溫度感測器,可以看到黃燈會閃爍 3 次;
  3. 用手觸控開發板上標有“金葫蘆”字樣的觸控區,可以看到白燈閃爍 3 次。

image-20240313145922203

LED 燈隨時間變化實際效果:

嵌入式作業1.2 執行示例程式

觸控溫度感測器後效果:

嵌入式作業1.2 執行示例程式

我對開發板觸控區進行觸控後,開發板和IDE並未有響應,具體原因還有待探究。

步驟7:透過串列埠觀察執行情況

  1. 觀察程式執行過程。進入“工具”→“串列埠工具”,選擇其中一個串列埠,波特率設為 115200 並開啟,串列埠除錯工具頁面會顯示三色燈的狀態、MCU 溫度、環境溫度(若沒有顯示,則關閉該串列埠,開啟另一個串列埠)。
  2. 驗證串列埠收發。關閉已經開啟的串列埠,開啟另一個串列埠,波特率選擇預設引數,在”傳送資料框“中輸入字串,單擊”傳送資料“按鈕。正常情況下,主機板會回送資料給PC,並在接收框中顯示。

觀察程式執行過程:

嵌入式作業1.2 執行示例程式

驗證串列埠收發:

嵌入式作業1.2 執行示例程式

  1. 交叉編譯,可以理解為在當前編譯平臺下,編譯出能夠執行在體系結構不同的另一種目標平臺上的可執行程式的過程,經常用於目標平臺無法執行編譯所需的編譯器的情況。 ↩︎

相關文章