看了網上許多人的代碼以及各類開發板所帶的例程,大多數使用的都是官方發布的函數庫來編程,通過查詢後發現,使用函數庫來編程可以簡化開發過程,並不需要追溯到各個寄存器,通過查看庫手冊,新手也可以快速應用STM32,因此,決定先從函數庫開始入門!1.建立帶函數庫的IAR項目工程
本文引用地址:
http://www.eepw.com.cn/article/201611/322900.htm
先從網上下載3.5版(據說3.0版以後的固件庫才逐漸穩定)stm32固件庫(stm32f10x_stdperiph_lib)。由於與固件庫版本兼容問題,重新下載安裝了IAR6.30版。
1.1 創建項目文件夾「project」;
1.2解壓「stm32f10x_stdperiph_lib.rar」後,
將...stm32f10x_stdperiph_libSTM32F10x_StdPeriph_Lib_V3.5.0下的「Libraries」文件夾拷貝到「project」文件夾,並在「project」文件夾中新建「project」文件夾以便與「Libraries」文件夾區分開;
1.3將...stm32f10x_stdperiph_libSTM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下的「main.c」、「stm32f10x_conf.h」、「stm32f10x_it.c」、「stm32f10x_it.h」拷貝至...projectproject文件夾中;
1.4將...stm32f10x_stdperiph_libSTM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_TemplateEWARM下的「stm32f10x_flash.icf」、「stm32f10x_flash_extsram.icf」、「stm32f10x_nor.icf」、「stm32f10x_ram.icf」拷貝至...projectprojectEWARM文件夾中。
1.5新建IAR工程項目,添加分組及文件如圖:
其中:
lCore_cm3.c在…projectLibrariesCMSISCM3CoreSupport文件夾中;
lSystem_stm32f10x.c在…projectLibrariesCMSISCM3DeviceSupportSTSTM32F10x文件夾中;
lStartup_stm32f10x_md.s在...projectLibrariesCMSISCM3DeviceSupportSTSTM32F10xstartupiar文件夾中,此外根據所使用晶片大小不同,所選擇的startup文件也不同,具體選擇如下:
startup_stm32f10x_cl.s互聯型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s大容量的STM32F100xx
startup_stm32f10x_ld.s小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s小容量的STM32F100xx
startup_stm32f10x_md.s中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s中容量的STM32F100xx
startup_stm32f10x_xl.sFLASH在512K到1024K字節STM32F101xx,STM32F102xx,STM32F103xx
其中大、中、小容量的區分如下圖所示:
各型號名稱辨識如下圖所示:
個人所使用的晶片型號是STM32F103VBT6,所以是屬於中等容量,所以選擇的是」startup_stm32f10x_md.s」文件。
lLWIB組則根據需要添加,由於要點亮led燈需要用到GPIO和時鐘,所以添加了stm32f10x_gpio.c和stm32f10x_rcc.c兩個文件,均 在...projectLibrariesSTM32F10x_StdPeriph_Driversrc下
l根據需要修改「main.c」文件,也可自己創建空白文件,但需要包含#include "stm32f10x.h"代碼。
項目設置
除了「學前準備」文中所需要的設置外,還需要設置的項有:
GeneralOptions>Library Configuration項:
C/C++Compiler>Preprocessor項:
OutputConverter項:
Output項:
![]()
至此,工程設置完畢,可以往main文件裡寫空代碼試著編譯,如:
- #include「stm32f10x.h」
- Intmain()
- {While(1);}
技術專區