大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助头条平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学设计分享出来,如果您正是一名单片机爱好者或是一名同行,欢迎点赞+关注,各位的支持是本人持续输出的动力,多谢多谢!#我要上微头条# #STM32# #高职高专#
一、工程模板的意义——为了以后更方便快捷的创建工程
- 管理大量工程文件所需
- 工程文件太杂
库文件、用户自建文件、Keil5 产生的大量中间文件和结果文件,数量远比51单片机的工程文件多得多,不分类管理会懵圈的。 - 配置Keil5选项繁琐
工程文件种类和数量多了,必然导致配置工程的步骤多了,加上Keil5并不是太友好的界面,如果每次创建工程都重新配置一遍,费时费力。
- 理清库文件与工程之间的关系
- 库文件按功能属性分类存放
通过组织工程的目录和文件归属可以帮助我们再次重温各库文件的用途。 - 提升对C工程文件的认知
一个工程涉及多个.c源文件,又包含多个.h头文件,需要通过条件编译产生需要的目标文件,这里面的门道你都清楚吗?
二、新建工程——工程是管理所有文件的框架
- 新建本地工程文件夹
新建的工程目录示范
- 新建Keil5工程
新建STM32工程示范
- 芯片选型
STM32芯片选型
注意:如果这里没有出现你想要的芯片型号,或者一个型号都没有,那么肯定是你的Keil5没有添加器件库,请参考上一节“05开发环境准备”中的“安装芯片支持包”。
三、给工程添加必要库文件——把所需的文件提取到我们的工程目录下
- 添加库文件到CMSIS文件夹
放置core_cm3.c和core_cm3.h文件
放置、、system_文件
注意:固件包里文件所在的目录都比较深,因此不建议将固件包解压。请仔细看清图中的文件所在的完整路径。
- 添加库文件到Startup文件夹
放置启动文件
- 添加库文件到Lib文件夹
放置外设驱动库文件
- 添加库文件到User文件夹
放置用户需要编写的文件
四、管理工程文件组——让Keil5知道去哪里找库文件
- 创建工程分组
注意:前面我们只是在Windows目录里复制了文件,但Keil5软件并不知道这些文件都放在什么地方,所以还要将这些文件的路径告诉它,让固件库文件及文件所在的目录显示在Keil5里面。
点击配置工程
创建工程文件分组
- 添加库文件到工程分组
- CMSIS分组
添加文件到CMSIS分组
- Lib分组
添加文件到Lib分组
- Startup分组
添加匹配的启动文件到Startup分组
添加启动文件时注意选择文件类型
- User分组
添加文件到User分组
创建完工后的工程目录树
五、配置工程选项——让编译器知道我们给工程定的规则
基于标准库的工程,目录和文件多。因此,还要对Keil5软件进行必要的设置才能保证编译顺利通过。
- Target标签
点击“配置工程”按钮
配置Target标签下的选项
- Output标签
配置Output标签下的选项
- C/C++标签
- 添加宏
添加宏,相当于我们在文件中使用#define语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用在源文件中修改代码。
USE_STDPERIPH_DRIVER宏:为了让包含头文件。
STM32F10X_MD宏:为了告诉STM32标准库,我们使用的芯片类型是中等容量的。
配置C/C++标签下的宏
“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。
- 添加头文件路径
添加头文件所在路径
头文件路径添加完毕
- 编译工程
用作演示的main.c
编译工程按钮
编译无错误和警告
.hex目标文件