我最近囫囵吞枣式地学了一遍STM32,有很多不懂的地方,想写篇博客梳理一下, 再熟悉一遍整个流程。接下来以跑马灯工程为例简单介绍下一个STM32工程目录下的文件。
我们来看一个跑马灯工程,它就好比是你学编程语言时的“Hello World”。非常简单但意义重大,可以帮助你更好地了解STM32。这是跑马灯工程下面的文件,我们人为地把它分为以下6个部分,下面我们来看下每个文件的内容和相应的作用。
1.USER
这个文件夹下面有三个 .c 文件。
main.c 是你编写主函数的地方。
stm32f10x_it.c 是一个中断处理文件,stm32f10x指的是你使用芯片的型号,it就是interrupt(中断)。
system_stm32f10x.c 和系统的初始化有关,初学者不必深究。
2.HARDWARE
这里存放的是和硬件相关的函数,跑马灯工程里面存放了一个led.c 程序,里面是一个led的初始化函数。
3.SYSTEM
SYSTEM 文件夹里面存放了这三个.c 文件
其实意思和就是字面上的意思
delay.c 存放的是和延时相关的函数,包括delay_us()和delay_ms(),分别是微秒延时函数和毫秒延时函数,这两个在以后的工程中会经常用到。
sys.c 存放的是系统初始化相关的函数,不必深究。
usart.c 存放的和串口通讯时用到的代码 ,usart.c 和usart.h 用于串口的初始化和中断接收
4.CORE
stm32 采用的是ARM Coretex_M3 架构,CORE 文件夹包含的是一些内核相关的函数和宏定义,例如核内寄存器定义、部分核内外设的地址等等,这些都是非常底层的函数,上层的一些函数直接调用它们了,初学者不用太关心。
startup_stm32f10x_hd.c 是stm32的启动文件,不同型号的芯片对应不同的启动文件,
分别是:
startup_stm32f10x_ld.s
startup_stm32f10x_md.s
startup_stm32f10x_hd.s
其中,ld.s适用于小容量 产品;md.s适用于中等容量产品;hd适用于大容量产品;
这里的容量是指FLASH的大小.判断方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
我使用的芯片型号是STM32F103RCT6,它的flash是256KB,所以要使用startup_stm32f10x_hd.s.这个启动文件
5.FWLIB
FWlib叫固件库
FW的单词是Firmware
即固件的意思。
的固件库包含C文件和H文件,
主要用于存放STM的一些寄存器的定义及一些底层驱动函数
stm32fx_gpio.c 是处理引脚相关函数的文件,GPIO 是gerneral-purpose input/output的缩写
stm32f10x_rcc.c是处理内部时钟相关函数文件。
stm32f10x_usart.c是串口通信的相关函数文件
6.README
这里你可以写一些和工程相关的txt文件,告诉其他人这个工程是干嘛的,有哪些要注意的,当然,你把它删了也是完全可以的。
END:
最后再说几句,这六个文件夹是可以随便命名的,甚至你把所有文件都放在一个文件夹下面都是可以的。这只是人为划分的,不过这样划分工程的话,整个工程流程比较清晰,所以建议大家都用这样的方式建立工程。