Keil Uvision 5 添加头文件和源文件?

Mat*_*Asp 2 c header-files keil

我从 Nordic SDK 的 keil 示例项目开始。这个问题不是关于nordic sdk,而是Keil如何连接头文件和源文件。经过我的理解,Keil 隐藏了所有合并到 main.c 文件中的头文件,见下图。

Keil 将头文件分层合并到 main.c 文件中

我想添加我自己的名为“physical.h”的头文件,在其中定义我添加的其他硬件。有时我想添加一个头文件和源文件“*.c”文件。我可以具体做什么来添加一个新文件,并用我的 main.c 文件编译这个新文件?演练将不胜感激。

Mat*_*Asp 6

我相信 Keil 在文件夹结构意义上并不直观。但是,它可能对模块化设计很有好处,因为它可以轻松地包含来自计算机上许多位置(git、库等)的文件。

让我们从问题一开始(添加一个头文件):main.c 文件中的头文件是已经包含和“工作”的内容的图像。通过右键单击 main.c 的父文件夹并单击“将新项目添加到组”来添加一个新文件。从菜单中,选择 C-file/H-file 或任何其他适当的文件。

如果还没有组,只需从父文件夹中添加一个组。右键单击并按“添加组...”。

在此处输入图片说明

现在,您可能会感到困惑的是 .h 文件不会出现在您刚刚创建的文件夹中。将出现 .c 文件,但不会出现 .h!您将在“在新窗口中打开”找到您的文件。右键单击具有您刚创建的文件名的选项卡,然后单击“复制完整路径”。

棘手的部分来了。转到 Keil 菜单中的项目选项卡,然后单击“目标选项”或 ALT+F7。转到选项卡“C/C++”选项卡。在“包含路径”插槽中,将出现一个指示“...”的按钮,单击它。在右上角,按住第一个图标会显示“新建(插入)”,单击它。单击您刚刚创建的插槽中的新按钮“...”,这将打开一个文件夹菜单。您可以在此处找到文件并添加该文件的父文件夹。但是,您可能需要移动您创建的文件才能找到一个好的结构。

Keil Uvision 5 内部的结构只是虚拟文件夹,创建文件只是将其放在没有结构的项目文件夹中。现在找到一个好的解决方案取决于您,如果您想出一个,请发表评论。

我想添加的最后一部分是当您刚刚包含此文件时会发生什么。好吧,进入你的 main.c 文件,包括头文件,就像在正常的 C 约定中一样。#include "myfile.h"。如果您尝试编译,它应该不会显示任何错误,并且您的 main.c 文件将包含您刚刚包含的同一个 .h 文件的子文件。

第二个问题:对于 C 文件,您可以像之前一样添加它们,但是,Keil 会将它们全部转储到您的项目源中,根本没有结构。对于结构,不幸的是,您必须在 Keil 之外执行此操作。