相信很多虽然有工作经验的人建工程项目的时候都是直接拿别建立的模板直接修改,这天想用官方给的工程模板自己搭建属于自己的工程模板时,看到就是不明白很多很基础的东西现在分下面几个问题来说明
1、在main函数中为什么有下面这一段代码
#ifdef USE_STM32100B_EVAL
#include "stm32100b_eval_lcd.h"
#elif defined USE_STM3210B_EVAL
#include "stm3210b_eval_lcd.h"
#elif defined USE_STM3210E_EVAL
#include "stm3210e_eval_lcd.h"
#elif defined USE_STM3210C_EVAL
#include "stm3210c_eval_lcd.h"
#elif defined USE_STM32100E_EVAL
#include "stm32100e_eval_lcd.h"
#endif
根据查论坛,网上是说eval就是 evaluation(评估),ST官方有给出很多的开发板样板(官方名称叫评估板),也就是说ST公司设计了多套的开发板,就是正点原子的开发板分为战舰开发板,mini开发板,或者说像手机,同样是小米手机,他就分很多款手机,有高配有低配,这些宏定义就是用来区分不同开发板的。
2、为什么会添加以下这些c文件
stm32_eval.c,
stm32_eval_spi_sd.c,
stm32_eval_i2c_ee.c
stm32_eval_i2c_tsensor.c,
stm32_eval_sdio_sd.c
stm32_eval_spi_flash.c
stm3210b_eval_lcd.c
stm3210e_eval_lcd.c
stm3210e_eval_fsmc_sram.c
stm3210e_eval_fsmc_nand.c
stm3210e_eval_fsmc_nor.c
stm3210c_eval_lcd.c
stm3210c_eval_ioe.c
stm32100b_eval_lcd.c
stm32100b_eval_cec.c
stm32100e_eval_lcd.c
stm32100e_eval_ioe.c
stm32100e_eval_cec.c
stm32100e_eval_fsmc_onenand.c
stm32100e_eval_fsmc_sram.c
跟着正点原子的视频在学习的过程中发现正点原子是没有添加这些文件,那为什没有添加呢?就像上面说的,因为正点原子设计的硬件电路和ST官方的硬件是不一样的,因此有些东西就可以不必包含进去,当然你全部包含了一般也不会出问题。
3、startup_stm32f10x_ld.s /startup_stm32f10x_hd.s/startup_stm32f10x_md.s是做什么的
首先这几个文件从字面上看不难理解这些是启动用的文件,
startup_stm32f10x_ld.s: 适用于小容量 产品
startup_stm32f10x_md.s : 适用于中等容量产品
startup_stm32f10x_hd.s: 适用于大容量产品
这里的容量是指 FLASH 的大小.判断方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
这几个文件不一定都要包含,根据你自己的开发板来决定是否包含着几个文件。