前言
接下来几篇文章都是关于如何建立一个STM32工程模板的,并且涉及到很多关于KEIL软件的基础知识,这些知识只作为了解,知道有这么个东西存在就可以了,后期如果有需要最好根据自己的情况自行制作专属于自己的工程模板。本系列文章写完后我会将自己的工程模板分享出来,到时回复关键字“STM32工程模板”即可免费获取,这个模板基于ucos II的,如果有读者需要裸机的模板,那么将根据好看或者转发本系列文章的数量来决定我是否需要花些时间去建立裸机模板(本公众号没有留言功能,只能借此来交互了)。
我知道很多关注本公众号的都是初学者,虽然我也会讲解一些基础知识,但是基础知识网上教程实在太多了,所以我并不会讲太多,更多的内容会是那些不常见的或者有自己理解的知识加以解释。但为了照顾初学者,我会将自己学习过程中的一些资源分享出来。到时候回复关键字就可以了(比如:“51视频教程”将获得51入门学习的视频教程,后期将慢慢根据需要继续分享出来)。
正文
根据前面的KEIL开发平台知识,根据自己的习惯,建立一个专门属于自己的工程模板。那么为什么要建立模板呢?
1、 你希望每次开发项目的时候从头开始建立工程吗?
2、 你希望每次将常用的函数重新编写吗?(比如串口发送函数、printf函数重定向,字符转化函数、I2C驱动程序……)
3、 你希望你的工程Options选项每次建立时都要重新设置吗?(C99模式,生成bin文件……)
如果以上答案为否,那么说明其实你也是一个不愿意做重复劳动的人,那么建立工模板就是非常明智的选择。
该模板主要有以下功能:
1、 将你认为有必要的平台功能添加到工程选项中,开发项目时打开工程即可开始主函数的编写。
2、 常用的驱动函数都包含在这里。
3、 所有测试成功的函数都将在这里进行更新,这是你独一无二的函数集中库。
4、 不同硬件环境下的不同模板(STM32F4、STM32F1),相同硬件环境不同功能(FLASH下载,RAM下载、仿真功能、Debug调试版本、Release最终版本)
下面开始一步步建立适合你自己的模板(将以我自己的习惯作为介绍)
开发平台设置
为了更好的使用KEIL开发平台,有必要首先介绍一下平台的设置,该设置和工程无关,即当你将工程文件整个剪切到别的电脑上时,该设置只在你的电脑的keil有效,而不会影响别人电脑中的设置。这些操作还是有必要了解一下的,可以让你更方便的使用你的开发平台。
这个设置界面就是Configuration:
Editor选项:
我认为比较重要的就是Encoding了,这个是设置中文格式的,一般默认情况下使用的是UTF-8,这个格式在keil平台的显示效果还是比较好的,但是在删除中文字符时,需要删除两次才能删除一个中文字符,显然是一件很麻烦的事情,而且很多时候换平台的时候或者移植别人的代码时,经常出现乱码的情况。所以我的建议是使用GB3212编码格式。
然后是Virtual Space这个功能可以开启,这样的话随处可以开始进行代码的编写或注释了(不明白的操作一下就知道了)。对齐方式(Auto Indent)采用Smart。
然后是这几个选项:
Automatic reloadof external modified files 选项不勾选,这样当工程打开的文件在外部编辑器改变时,就可以提示是否需要重新加载或者不加载了。
后面三个依次是进入调试前保存工程设置、进入调试时保存文件(其实每次编译时都会自动保存文件的,文件右上角的*存在表示修改了,没有就说明已保存)、每过五分钟自动保存。
然后C/C++源文件使用语法颜色,这样一些关键字就会根据设置的颜色突显出来了。Table大小默认选择2,如果说你看别人的代码发现格式很乱,那么你可以试试更改这个数字。还有需要显示行数,这样你通过断言输出(assert_failed())就能够准确定位错误代码的位置了。
Colors & Fonts
这个选项卡建议使用默认即可,刚开始写代码的时候也觉得有趣,就把一些常用的宏定义设置成自己想要的颜色(比如将uint、uchar当成关键字一样显示不同的颜色,后来慢慢的发现太麻烦了,还是保持原生态比较好)。
User Keyword:
设置属于自己的关键字,那么你设置的关键字就会如void、int、char等一样特殊显示了。建议还是不要设置。毕竟换一台电脑开发的话你会很不习惯的。
Shortcut Keys
这个选项可以看到keil软件的所有快捷键,当然你也可以自己设置自定义的快捷键。
Text Completion
这个选项卡还是很有用处的,最最重要的就是开启代码自动补全的功能了,这样你写部分名称就可以自动补全全部的。当使用结构体时也可以自动列出你需要的成员变量进行选择。这里的3表示你写完3个字符后开始匹配工程中所有可能的名字。当然你也可以设置成其它数。
然后是动态语法检查,也就是边写代码边检查语法是否有问题,而不必如以前一样编译完了才知道有没有问题的,这样可以大大加快开发速度,毕竟如果你的工程很庞大,编译一次需要几十秒,还是很烦人的。
动态检查结果通过以下路径打开
最后是C/C++的模板,你可以将一些常用的的格式在这里写上,这样可以节省不少时间。注意#define| 中的丨,这个是用来定位光标的,当你插入代码之后,光标自动定位到这里。
-THE END-
如果觉得对你有帮助,欢迎转发、点好看,就是对我最大的支持与鼓励。
长按识别图中二维码关注 |