上次那篇《STM32 RVMDK快速創(chuàng)建工程》,其實就是直接用keil安裝庫來創(chuàng)建工程。我認為不要用下載的固件庫來創(chuàng)建工程,覺得容易出錯。其實,我當時初窺stm32,很多東西沒有搞清楚,所以才這么認為。直接用keil4的安裝庫來建立工程固然簡單,但是那個庫舊得要命,都是2.0左右的版本(我原以為新安裝的必然是最新的庫,其實不然)。
用新的固件庫放于本地創(chuàng)建工程,之所以容易出錯,我想有兩點:
1、雖然把整個庫放在本地,但不一定真的就用了本地的庫,由于include paths沒有設置完整或者沒有在在選項里定義關鍵的defind,很容易造成編譯器直接調用安裝庫,而不是本地庫。
2、新庫函數和舊庫不兼容,如果用舊庫寫的程序,升級成為新庫,只怕新手很容易被蒙到。
可以找一個叫《STM32V3.4固件庫使用方法》作為參考,去創(chuàng)建工程,不過,即使這樣也容易出錯。
注意如下:
1、仔細按這個方法設定defind、include paths,不可漏;
2、仔細copy每個文件到工程里面,特別是“stm32f10x_conf.h”、“stm32f10x_it.h”、“stm32f10x_it.c”、“system_stm32f10x.c”
3、建立工程的時候,出現“CopySTM32 Startup Code to Project Folder and ADD File to Project ?”提示時,選擇“否”。
4、“stm3210x_misc.c”、“stm3210x_rcc.c”“core_cm3.c”“system_stm32f10x.c”記得要加載
5、“STM32F10X_HD,USE_STDPERIPH_DRIVER”記得要添加, STM32F10X_HD是高容量芯片的,要根據不同芯片選擇不同;
6、"stm32f10x.h"和“stm32f10x_lib.h”不可以同時include,前者是3.0庫以后的庫所用,后者是2.0庫所有,如果同時加載,就會出現重復定義等錯誤提示。
7、bool的問題。新的固件庫是沒有對bool重定義的!!!!!,在新庫里,要用到bool,請用#include <stdbool.h>,這樣才可以用true和false,小寫。
8、新舊庫不兼容的地方要一一修改。