STM32F103 在VSCode下使用Platform IO 基於CMSIS標准庫函數開發


首先安裝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了。

雖然在VSCode里面寫代碼非常爽,但是由於不知道會有那些隱藏的BUG,不建議直接使用這種方式進行實際生產上的開發!!!此教程僅供學習使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM