作者:静静 | 来源:互联网 | 2023-10-12 12:18
上次那篇《STM32 RVMDK快速创建工程》,其实就是直接用keil安装库来创建工程。我认为不要用下载的固件库来创建工程,觉得容易出错。其实,我当时初窥stm32,很多东西没有搞清楚,所以才这么认为。直接用keil4的安装库来建立工程固然简单,但是那个库旧得要命,都是2.0左右的版本(我原以为新安装的必然是最新的库,其实不然)。
用新的固件库放于本地创建工程,之所以容易出错,我想有两点:
1、虽然把整个库放在本地,但不一定真的就用了本地的库,由于include paths没有设置完整或者没有在在选项里定义关键的defind,很容易造成编译器直接调用安装库,而不是本地库。
2、新库函数和旧库不兼容,如果用旧库写的程序,升级成为新库,只怕新手很容易被蒙到。
可以找一个叫《STM32V3.4固件库使用方法》作为参考,去创建工程,不过,即使这样也容易出错。
注意如下:
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 ,这样才可以用true和false,小写。
8、新旧库不兼容的地方要一一修改。