stm32——keil5项目模板学习记录

最近开始学习stm32,今天记录一下学习内容:关于stm32项目的结构


进入了keil5后再project的视窗上出现了如下的结构,有多个文件夹和一大堆 .c的文件

  • 创建多个文件夹能够使项目的工程模板更加简洁,让后续的查阅或者维护更加方便。看我看来文件夹的分类并不是绝对的,可以根据实际情况或者爱好修改,但也需要按照一些约定俗成的规矩,就像代码结构的规范化一样
  • 除了main.c以外,每一个c源文件都会对应一个 .h的头文件,head文件用于给其他程序调用

stm32——keil5项目模板学习记录

文件夹简介

User

user里面包含的text.c即main.c,通过此程序可以了解到程序运行调用的函数,能基本了解项目的用途。文件夹还包含芯片初始化的一些源文件,例如中断服务函数的定义和时钟的初始化

System

此文件夹保存了一些通用的函数,一般不需要修改即可以在同系列芯片公用,例如delay延迟,UART串口通讯

Hardware

hardware即固件,此文件夹存放用于连接芯片与其外部设备的驱动程序

Code

此文件夹包含一个 .s的文件,.s结尾的为汇编语言,用于在芯片中提供c语言的编译环境,在程序烧录过程中最先写入,是工程中最底层的程序

Readme

顾名思义,说明书嘛

由于点亮LED的项目相对简单,所需的代码较少,在稍微复杂的工程中一般还用到需要其他文件

FWLIB

FW=?,LIB是library的意思,此文件夹通常用于存放意法半导体公司提供的外设固件库源文件和头文件,作用和Hardware文件夹相似

小结

假如每个项目就是一间公司,那么,各种类型的程序对应各种功能 职务:

  • 最底层的stratup_stm32f10x_hd.s就像公司的建筑和后勤,一切有关公司运作的东西都得在它的基础上才能实现
  • main.c 是公司的老板,指挥各个部门的运作用;
  • 用于初始化的程序就是公司的规章制度,公司运作在这些下面井井有条;
  • Hardware下的驱动程序,就好像公关部门,负责联系内外;
  • System下的程序就好像公司的合作伙伴,服务对象不仅仅为此公司;
  • FWLIB下的程序,代码量往往是非常多的,就像公司最底层的工作人员,人数往往占公司最多的,有时候公司需要拓展某些业务,就要招聘相应的人(添加源文件)QWQ

通常对于公司来说职位越高级,人数也就也少,对于每个项目也一样,越底层的程序代码就越多,越精细。

——2019.03.13