本篇文章主要介紹本人早期的基於STM32標准庫的程序框架,希望能給人以收獲。
1.開發環境
軟件環境
使用MDK5.25版本,芯片包為STM32F1系列。
硬件環境
開發板:一塊STM32F103C8T6開發板(FLASH:64kBytes,RAM:20kBytes),是一款中等容量的芯片。
燒錄器:STlink或者Jlink。
2.工程創建
創建文件夾
現在本地文件夾下創建4個文件夾,分別是APP(存放應用層代碼),LIB(存放STM32標准庫相關文件),CORE(存放STM內核與啟動文件等),Project(存放工程相關文件)。
創建工程
在MDK中新建工程,保存到剛剛創建的本地文件夾下的Project文件夾中,並選擇STM32F103芯片。
后面會彈出選擇其他驅動組件的界面,直接選擇取消。
接着直接用正點原子戰艦板資料(推薦下載,軟硬件資料很全)里面的v3.5固件庫,把工程需要的文件拷貝到本地文件夾中,如圖示主要是拷貝到CORE和LIB文件夾。
我們的LIB文件夾直接拷貝STM32戰艦的參考資料\STM32F1xx固件庫\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver文件夾下的inc和src這兩個文件夾。
在MDK中導入我們的文件夾結構
在本地APP文件夾中添加main.c等文件夾(記得勾選顯示文件拓展名),再添加到MDK中。
最后要指定一下頭文件路徑和添加全局屬性的宏定義。
3.編寫代碼
打開main.c添加main函數並編譯
框架代碼編寫
(1)系統時基
當我們拿到一塊STM板子的時候,我們得看它的外部晶振是多少M的(一般用8M的外部晶振),如果不是8M的晶振就需要修改stm32f10x.h和system_stm32f10x,c里的SetSysClockTo72()函數共兩處地方。
開始編寫systick.c和systick.h文件。
(2)編寫LED程序用於測試
原理圖
程序下載
實驗現象
代碼已全部上傳到gitee,希望各位小伙伴們在下載的同時不忘點擊Star,地址:https://gitee.com/Notmi/stm32-standard-peripheral-libraries。