首先安裝Platform IO插件,怎么安裝的教程有很多,可以自行百度,就不在重復了。
本篇文章將會以正點原子的跑馬燈例程作為移植對象,基於CMSIS固件庫3.5版本
將實現在VSCode上的程序編寫與燒錄,至於Debug...先留個坑吧
1.建立空白工程
在PIO的主頁點擊New Project
然后在彈出的對話框中輸入實際的信息(可能對話框加載需要一定的時間,視網絡情況而定)
Name: 就根據自己的需要來取了
Board: 可以直接輸入MCU型號,然后根據自己實際選擇后面帶Generic就可以了,當然也有一些官方的板子是在支持列表的
Freamwork: 這里選擇CMSIS,因為我們要做的是基於標准庫來開發
Location: 這個是工程存放的目錄,根據自己需求來就可以了
完成這些之后點擊Finish,然后就是無盡的等待,第一次加載的話可以先去干其他活了,過一段時間再來看一看。
等待加載完成了之后可以在VSCode的工作區看到一個空白的工程
這時候可以試着點擊一下編譯,會提示編譯失敗,因為還沒有任何東西在里面
2.將代碼搬過來
本次使用的例程為 ALIENTEK MINISTM32 實驗1跑馬燈-庫函數操作
本次工程名稱為BLINK
1.原子工程中的CORE、HARDWARE、STM32F10x_FWLib、SYSTEM文件夾復制到BLINK/src文件夾目錄下
然后進入CORE目錄,將兩個startup文件刪除。
2.將原子工程中USER目錄下的
main.c
stm32f10x.h
stm32f10x_conf.h
stm32f10x_it.c
stm32f10x_it.h
system_stm32f10x.c
system_stm32f10x.h
這幾個文件復制到BLINK/src目錄下
完成后整個工程目錄如下
3.工程配置
PIO的工程配置文件為platformio.ini ,位於工程的根目錄;關於詳細的講解在這里:https://docs.platformio.org/en/latest/projectconf.html
下面是本次實例工程使用的工程配置文件
[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = cmsis
upload_protocol = jlink ; 代碼上傳工具,
debug_tool = jlink ; debug工具
build_flags = ; Build options
-Isrc
-Isrc/CORE
-Isrc/HARDWARE/LED
-Isrc/STM32F10x_FWLib/inc
-Isrc/SYSTEM/delay
-Isrc/SYSTEM/sys
-Isrc/SYSTEM/usart
-D STM32F10X_MD ; 定義全局宏
-D USE_STDPERIPH_DRIVER
代碼上傳工具可以選擇blackmagic,jlink,stlink;實際上我用的dap-link,配置文件中寫的jlink也可以正常下載代碼。
此處參考:https://www.cnblogs.com/Laggage/p/11263725.html
工程配置好了之后,可以點擊左下角的√進行編譯。
此時會提示core_cm3.o中有錯誤
打開core_cm3.c
如下修改736行和753行
此處參考:https://blog.csdn.net/winds211/article/details/86187402
再編譯一次,發現還是有錯,這次提示的錯誤位於sys.c中
打開sys.c 如下圖所示修改代碼
此處參考:https://www.cnblogs.com/zengsf/p/7170629.html
這時候再編譯一下應該就可以通過了,如果是原子的板子的話直接點擊 → 應該就可以看到對應得LED再閃爍了;
如果不是原子的板子,根據實際情況修改一下代碼就OK了。
以后就可以愉快地在VSCode里面玩耍STM32了。