「網友分享」版塊迎來第二彈,貨真價實,童叟無欺的乾貨!!
該篇文章是基於硬體NUCLEO-L452RE完成的。開發環境使用的是ST官方提供的Arduino的開發環境,也就是在線開發環境mbed。本文簡答介紹一下關於mbed的使用。
以下為整個流程的描述,更詳盡的解釋和詳細的原始碼等請點擊「閱讀全文」下載pdf文檔查看進一步流程和下載原始碼。
1.mbed的下載(連結可在「閱讀全文」的文檔裡找到),其實使用usb連接Nucleo板子到電腦,電腦會識別出一個存儲盤,打開新識別的存儲盤,裡面就存儲有一個mbed的開發連結。
2.打開mbed的網址,就可以連接上ST的在線開發環境,先要註冊一個帳戶,這樣你寫的代碼就會保存到你的帳戶裡了。註冊完以後在Hardware選擇自己的開發板,mbed目前支持上百個開發板,選擇你的開發板然後點擊右上角的complier,就可以打開mbed在線IDE了,如圖所示
3.雖然是在線開發,其實mbed的界面和大多數IDE類似,只要熟悉keil等軟體的都很容易操作。我們可以看一下它的目錄文件結構,一個是你自己建立的工程文件夾,一個是mbed文件夾,這個mbed提供了相當數量的方法給我們使用,只要點開它就能看到這些方法的使用形式。不過唯一的缺點就是,這些方法的具體實現代碼我們看不到,也不能更改和複製。
使用mbed一樣能像使用Arduino那樣避開硬體驅動層,mbed提供的方法也都是面向對象的,只要看得懂單詞,就能夠操作開發板上引出來到埠。具體操作這些埠時,它們的名稱可以查看「STM32 Nucleo-64 board用戶手冊」,裡面有詳細的引腳名稱對照圖。另外,同一引腳在mbed和Arduino中並不相同,也就是如果要把Arduino的程序移植到nucleo板子,需要重新設置引腳
4.了解了mbed的開發流程,那就開始動手吧!我移植了一個我之前寫的用於Arduino的LED點陣屏的庫文件,我在後面會附上源文件。程序比較簡單,主函數如下:
5.首先板子啟動後,通過串口列印一串字符後,進入循環,然後交替顯示兩個LED點陣屏。
成員函數Display_Run_Screen()用於顯示動態圖,可以設置方向和速度,Display_Full_Screen()用於顯示靜態圖,支持閃爍延時。
另外說明的是,在這個庫文件中,我使用了一個delay_ms()延時函數,主要是因為我選擇的開發板是Nucleo-L476RG,處理器是可能和STM32L452RE的時鐘有區別,mbed提供的wait系列延時函數會跑死,所以我又單獨建立了一個delay_ms函數用於延時。
6.編寫好代碼後點擊mbed的complier按鈕,就可以進行編譯連接了,編譯完後會自動產生下載,把編譯好的bin文件下載下來燒寫到Nucleo板子上就可以看到效果了,如下圖所示。
7.最後說一下燒寫。ST官方也提供了STM單片機的燒寫軟體ST_LinkUtility,使用板載的ST_Link就可以把hex或者bin文件燒寫到單片機裡。目前ST_LinkUtility最新版本為V4.0版本,我之前使用的是V3.9版本,在使用時一致連接不上板子,後來更新到V4.0版本後就可以,這是因為STM32L452是ST新出的一款處理器,所以舊版本沒有支持該處理器的燒寫方案。後面會提供ST_Link Utility最新版的下載連接,也可以到官網下載。
總結:
關於STM32Nucleo-64 board和mbed的使用就先到這裡了,其實mbed的用戶體驗效果並不算太好,尤其是對網速有要求,不過這也有一個非常明顯的優點,就是任何軟體環境都支持,因為是在線IDE嘛,所以不管你是換系統還是換電腦,都不必重新搭建,就能有一個完全一樣的開發環境。
❀ST_Link UtilityV4.0、mbed地址、官方文檔的下載連結均可在「閱讀全文」中的該主題文章的pdf中找到。
以上內容和素材來自STM32中文社區(www.stmcu.org)的 聽說是廣東佛山94年的小鮮肉 的一位名叫 cai1104475967 的網友的分享
❀❀❀想知道關於以上內容更多的詳細的圖文介紹和源程序的下載請點擊「閱讀全文」,找到相應的主題分享的pdf即可下載和查看。
❀❀❀日後我們也會有更多的好文章分享給大家呀~敬請期待喲
❀❀❀您也可以去我們的STM32中文論壇(www.21ic.com/stmcu)和STM32中文社區(www.stmcu.org )尋找更多的乾貨哦~~在微信公眾號的自定義菜單中「愛分享」有相應的連結哦~
▼「閱讀全文」在這裡呢~~~