在STM32的学习过程中,第一步关于stm32工程的建立就会难倒很多人,因为他不像其他AVR 51单片机这些,options中的配置比较复杂,其中最让人头疼的就是关于c/c++ compiler选项中preprocessor这个选择框,现在我就对其中的两项进行说明,一是为了让以后学习STM32的同学能更快的了解,二是为了让我自己更好的复习。
如上图所示 其中 additional include directories下面的框需要添加工程内头文件所在的路径,‘$PROJ_DIR$‘表示的是工程所在的路径,‘\..‘表示回到上一个目录,需要把所有的头文件的路径都给加上来,每一行写一个路径。这样使用相对路径的好处就是方便在整个工程拷贝移动后还能够正确的运行。
下面defined symbols需要选择填写一些宏定义,这是我今天写这篇博文的主要原因:
USE_STDPERIPH_DRIVER //表示要使用stm32的外设库来进行程序开发
USE_STM3210E_EVAL //表示要使用stm32官方提供的stm32_eval文件,这里面包含了一些对LED和按键的一些简单处理,当然我们可以对立面的这些管脚进行修改,以便于适合我们的开发板
STM32F10X_LD //stm32f101系列 102系列 103系列的单片机 Flash容量是在16k和32k之间的
STM32F10X_LD_VL //stm32f100系列的单片机 Flash容量在16k和32k之间
STM32F10X_MD //stm32f101系列 102系列 103系列的单片机 Flash容量是在64k和128k之间的
STM32F10X_MD_VL //stm32f100系列的单片机 Flash容量在64k和128k之间
STM32F10X_HD //stm32f101系列 102系列 103系列的单片机 Flash容量是在256k和512k之间的
STM32F10X_HD_VL //stm32f100系列的单片机 Flash容量在256k和512k之间
STM32F10X_XL //STM32F101系列和103系列的产品 Flash容量在512k和1024k之间
STM32F10X_CL //STM32F105系列和STM32F107系列的产品
上面的几个宏定义可以连起来一起说,以便于理解,首先说说各个符号的意义:
LD:表示低密度产品 Flash容量在16k和32k之间的处理器
MD:表示中密度产品 Flash容量在64k和128之间的处理器
HD:表示高密度产品 Flash容量在256k和512k之间的处理器
XL:表示超高密度产品 Flash容量在512k和1024k之间的STM32F101x和STM32F103x处理器
CL:表示的是互联网型的处理器 是指STM32F105X和STM32F107X型处理器
VL:表示超值型的处理器,即STM32F100系列的处理器
所以根据每个符号的意义,也可以推算出我们在新建工程的时候需要选择那些宏定义。
还有关于启动文件的选择问题,相信看完每个符号的意义以后,就会知道选择哪个需要的启动文件了,可以参考宏定义选择,如果我再一个个列出来就太看不起大家智商了
startup_stm32f10x_ld_vl.s
startup_stm32f10x_ld.s
startup_stm32f10x_md_vl.s
startup_stm32f10x_md.s
startup_stm32f10x_hd.s
startup_stm32f10x_xl.s
startup_stm32f10x_cl.s
希望这篇文章能对大家有帮助,这是我自己第一次写文章,如果有错误的话,希望大家能够指出
stm32工程建立中关于宏定义和启动文件的选择