在《如何使用Arduino IDE開發STM32(上)》中,我們為大家介紹了Arduino與STM32平臺的區別,以及如何使用Arduino_STM32庫和Arduino IDE給STM32開發板寫代碼。在下篇中,小編再介紹另一個連接STM32和Arduino的項目--Arduino_Core_STM32。
Arduino_Core_STM32和Arduino_STM32的區別乍一看,這兩個項目的名稱是如此地接近,很容易讓人混淆,但Arduino_STM32歷史悠久地多。上篇中我們提到它是由Roger Clark大神主導開發,是基於Leaflabs Maple的libmaple,libmaple並不是基於ST官方的標準庫和HAL庫,而是自己構建的中間件。這種選擇的弊端顯而易見,一方面很多底層的硬體接口並不支持比如CAN和I2S接口,另一方面隨著STM32平臺晶片不斷增加,libmaple層又要增加很多代碼,這裡的工作量是巨大的。
Arduino_Core_STM32相比Arduino_STM32就很新,而且是基於ST官方的HAL庫,這個選擇的一大好處是,Arduino_Core_STM32能快地覆蓋STM32的大部分晶片,而且這個項目目前也是ST官方開發人員在維護。小編相信Arduino_Core_STM32作為後起之秀,很快能超過Arduino_STM32。
當然Arduino_Core_STM32也有它的缺點:因為基於HAL庫,相比libmaple,它寫的程序要佔用更多的RAM和Flash。還有因為ST HAL的版權問題,Arduino_Core_STM32無法兼容一些仿STM32晶片,比如國產的GD32系列。
下面我們就來實踐操作一下,如何使用Arduino_Core_STM32。
打開Arduino IDE,選中
文件->
首選項,在
附加開發板管理器網址欄中添加以下網址:
點擊後,會出現下載進度條,需要一定時間下載,如果下載時間過長,說明很有可能github這個網址被牆,有條件的同學可以架梯子「科學上網「,不然需要找第三方的源。加載成功後,選擇「貢獻」項,安裝名為「STM32 Cores by...」的項目,耐心等待安裝。
下載成功後,就可以在
工具->
開發板裡發現STM32開發板了。這裡我們同樣選擇Generic STM32F103C series。
這裡注意以下代碼裡Blue Pill的digitalWrite的針腳是PC13,如果是其他針腳,請改為LED_BUILTIN或者PC13。然後點擊上傳代碼即可。BluePill的板載LED就開始閃動了!
Arduino_Core_STM32 v1.5.0後,需要安裝官方的STM32CubeProgrammer。
https://www.st.com/en/development-tools/stm32cubeprog.html至此,我們介紹完了能讓Arduino IDE開發STM32的兩種方法。如果您對文中的兩個項目感興趣,可以關注https://www.stm32duino.com 這個社區深入了解。我們相信會有更多的類似Arduino和STM32不同平臺之間的交集出現,利用不同平臺的優勢產生一些有趣的想法和項目。感謝您耐心的閱讀,歡迎點讚、轉發和評論。Arduino電子書和視頻教程獲取方式
也想要一份我們套件附送的Arduino電子書和各種視頻教程麼?
掃描下方二維碼加關注後,回復「福利」
戳閱讀原文,購買Arduino入門學習套件