iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 3
1
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 3

[Day 3]-【STM32系列】Overview of STM32 Board (下) -Arduino STM32 Nucleo 開發環境設定之HELLO WORLD!

舉凡寫code當然是先從HELLO WORLD!開始阿!但前提是沒有外接任何顯示板的情況下,光靠硬體沒辦法看到結果,所以就想說借助Arduino的力量,就當個教學篇,用Arduino IDE寫程式跑在這塊板子上。讓我來帶大家認識這塊MCU吧!

STM32L053R8 - FEATURES

這次用的這塊開發版是 Nucleo-64 L053R8,官方網站有比較詳細的說明可以參考看看。它擁有相容於 Aruduino Uno V3的接腳, 8K SRAM, 64KB Flash 與 ARM Cortex M0+ 處理器。下面是STM32L053R8這顆MCU它的Circuit Diagram。
https://ithelp.ithome.com.tw/upload/images/20200917/20120093zVBSYsaqt7.jpg
圖源:https://www.st.com/en/microcontrollers-microprocessors/stm32l053r8.html

  • Arm® 32-bit Cortex®-M0+ with MPU
    • From 32 kHz up to 32 MHz max.
    • 0.95 DMIPS / MHz

可能常常會聽到電腦CPU頻率幾GHz啊,大多數電腦CPU頻率,都在2Ghz以上,通常是越高越好。而微處理器的頻率視用途決定大小,通常會落在kHz~MHz之間不等,這顆MCU就上看32MHz。
同時DMIPS(Dhrystone Million Instructions executed Per Second)指的是每秒執行了多少百萬條指令。

  • Memories
    • 64 KB Flash
    • 8KB SRAM

64 KB Flash就是你擺程式的地方,8KB SRAM就是你的記憶體,可以去算算8KB真的很小,可能連一張圖片都塞不進去,但別擔心以現階段來說是夠用的,原廠不會故意配一個很小的記憶體讓你不夠用。

  • 51 fast I/Os
  • 12-bit ADC 1.14 Msps up to 16 channels
  • 12-bit 1 channel DAC with output buffers
  • 7-channel DMA controller
  • supporting ADC, SPI, I2C, USART, DAC, Timers

它有51個GPIO能使用,GPIO(General-purpose input/output)通用型之輸入輸出的簡稱,然後它有12位元ADC、DAC可以做類比數位兩者交互的轉換,Timers可以用來計數、數數它都可以做。支援一些SPI, I2C, USART...等等的通訊協定跟其他模組溝通。


這是內部結構的方塊圖,它裡面包括其實有很多GPIO、bus、記憶體...等等。未來在寫程式都還會再回來提到,先有一個概念這樣。
https://ithelp.ithome.com.tw/upload/images/20200917/201200930PqxZN3s4w.png

最後附上一張 NUCLEO-L053R8 接腳圖結束這的回合

https://ithelp.ithome.com.tw/upload/images/20200916/20120093n3GjLTYjdx.png


STM32 ARDUINO – STM32DUINO

為了能讓 STM32 在 Arduino IDE 的環境底下工作,我們需要安裝一個稱為 STM32duino 的專案,這個專案可以讓我們在 STM32 上跑 Arduino 的程式,這樣便能編譯程式。最後再安裝 ST-Link 燒錄器驅動/工具,便能將編譯後的程式燒入板子。

安裝 ST-LINK 燒錄程式

上篇提及的NUCLEO-L053R8開發板上方就是燒錄器,只需要一條mini USB就可以執行燒錄了。先去官方網站下載ST-Link 主程式

https://ithelp.ithome.com.tw/upload/images/20200918/201200931MbTEL4igw.png

下載完就執行它!
https://ithelp.ithome.com.tw/upload/images/20200918/20120093aj4WH0YQba.png

原則上應該都是一直按下一步到底
https://ithelp.ithome.com.tw/upload/images/20200918/20120093c1pol2tCxC.png

按 NEXT
https://ithelp.ithome.com.tw/upload/images/20200918/20120093jcZbvaHarc.png

按 YES
https://ithelp.ithome.com.tw/upload/images/20200918/20120093RlhbYWajJE.png

按 NEXT
https://ithelp.ithome.com.tw/upload/images/20200918/20120093w0q4W1ehlN.png

安裝過程中應該會叫你安裝驅動程式,給它裝下去就對了!
https://ithelp.ithome.com.tw/upload/images/20200918/201200938UN9PfJ2Gt.png

信任並安裝驅動程式
https://ithelp.ithome.com.tw/upload/images/20200918/20120093oiXyBX5XSw.png

驅動安裝完成!
https://ithelp.ithome.com.tw/upload/images/20200918/201200933ZhFwhdtLW.png
燒錄器安裝完成!

安裝 ST-LINK 驅動程式

ST-Link 驅動程式可以在這裡下載,辦個帳號即可下載,不想辦號可以直接填你的姓名和電郵,之後就會把下載連結寄去你信箱。像這樣。
https://ithelp.ithome.com.tw/upload/images/20200919/20120093TCksJNBujm.png

下載完打開en.stsw-link009壓縮檔,執行dpinst_amd64.exe安裝驅動程式
https://ithelp.ithome.com.tw/upload/images/20200919/20120093Ek9Ygsnekv.png
原則上一直下一步就行,中間還會遇到幾個 Driver 問你要不要安裝,記得先勾選左下的選擇信任再安裝。安裝完成後就可以開始連接了。

連接 ST-LINK 燒錄器

更新驅動程式之前
記得先把JP5從原本靠左邊E5V的地方差到靠右邊U5V的位置
插上USB線(Type-A to Mini-B)一端接主板另一端插電腦上 LD1和LD3應該就會亮喔!
如果沒有調整JP5的位置,LD3是不會亮的,這點必須注意。

JP5調整前-JP5在12位置,靠向E5V
https://ithelp.ithome.com.tw/upload/images/20200918/20120093TJPHqzuO2C.jpg

JP5調整後-JP5在23位置,靠向U5V
https://ithelp.ithome.com.tw/upload/images/20200918/20120093UwL7xnzS2J.jpg

完成後接上USB線連接電腦,右上LD1、正中間靠左LD3將會發亮,電腦會跳出偵測到裝置的通知
https://ithelp.ithome.com.tw/upload/images/20200918/20120093Hu5I0py80X.jpg
https://ithelp.ithome.com.tw/upload/images/20200918/20120093V99Pr4CPVR.png

打開剛剛安裝在桌面的ST-LINK
https://ithelp.ithome.com.tw/upload/images/20200918/20120093311jZ8LT2z.png

1.點選Target
2.Connect與開發板連接
~這可能會需要一些時間
(注意!連接期間不可按下主板上的RESET鈕,否則會連接失敗!)
https://ithelp.ithome.com.tw/upload/images/20200918/20120093VPTPEuXI0V.png

如果你跟我一樣跳出錯誤訊息,別緊張可以試著按照提示設置connect under reset的模式,基本可以解決大部分問題。
https://ithelp.ithome.com.tw/upload/images/20200918/20120093GMRi1eFXo1.png

到Target->Settings,將Mode設置connect under reset的模式,按OK。
https://ithelp.ithome.com.tw/upload/images/20200918/20120093PQdj7U01RD.png

看到這個畫面就代表成功連接了!
https://ithelp.ithome.com.tw/upload/images/20200918/20120093nGpQf8w1Dc.png

更新 ST-LINK 韌體驅動

原廠出貨到第一次使用期間可能燒錄器已經有新的更新了,但你的燒錄器的韌體可能還是舊版本,反正到時候使用他還是會叫你更新,不如一開始就先更新。相對也比較穩定。
1.點選Target
2.Firmware update
https://ithelp.ithome.com.tw/upload/images/20200918/20120093yIhmvg9NCG.png

Device Connect
連接的當下直到更新結束,更新程式會強制佔有 ST LINK 燒錄器,其他應用程式將無法訪問它直到更新結束。
https://ithelp.ithome.com.tw/upload/images/20200918/20120093lkB3u4huF7.png

自動偵測目前韌體的版本和開發環境,以及即將更新的版本,YES大力的按下去!
https://ithelp.ithome.com.tw/upload/images/20200918/20120093atmImpkH7e.png
https://ithelp.ithome.com.tw/upload/images/20200918/20120093OziOiq6bkS.png

出現Upgrade is successful就代表更新成功摟!
https://ithelp.ithome.com.tw/upload/images/20200918/20120093I9CjXbbx8G.png

安裝 ARDUINO IDE

這應該不用我說了吧,Arduino IDE 在官方網頁下載,當前發文的版本是1.8.13,下載完直接下一步到底。中間會問幾個 Driver 要不要安裝,也是選擇信任再安裝。

安裝 STM32DUINO

STM32DUINO能讓我們在stm32上跑Arduino的程式。打開 Arduino 並連接網路 (廢話)
接下來要將 STM32duino 的開發板網址加到進管理頁面。開啟 檔案–> 偏好設定,將下列網址貼上
https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.js

https://ithelp.ithome.com.tw/upload/images/20200918/20120093JIDAJnvXjk.png

開啟 工具–>開發板–>開發板管理員。在搜尋列內打上 STM32 Core 並選擇1.4.0 版安裝。 此時就會開始下載 STM32 相關的資訊和檔案,稍候完成安裝。
等候的同時可以看到這個套件包含的開發板非常之多,厲害了吧!哈哈。
https://ithelp.ithome.com.tw/upload/images/20200918/201200933BzAUKzP41.png

安裝完成之後,選擇你的開發板就可開始code了!
1.工具–>開發板 選擇 Nucleo-64
2.工具–>Part number 選擇 Nucleo L053R8
3.工具–>Upload method選擇 STLINK

執行你的第一個 HELLO WORLD!

終於寫到這裡了哈哈。
編譯+上傳,應該就會一直印出HELLO WORLD了

#include <Arduino.h>
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  while (!Serial);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Hello! World!");
}

明天會介紹標準開發環境,敬請期待。

相關連結


結語

第3天開始混了?啥?
我的布丁不知道被誰吃掉了。可惡。


上一篇
[Day 2]-【STM32系列】Overview of STM32 Board (上) - NUCLEO 開發板硬體認識
下一篇
[Day 4]-【STM32系列】Keil MDK + STM32Cubemx 的標準開發環境布置和 NUCLEO 板測試
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30

尚未有邦友留言

立即登入留言