STM32CubeIDE 创建 / 导入 .c / .h 文件

本文详细介绍了如何使用CubeMX创建STM32工程,包括添加文件、设置头文件和源文件路径,以及处理相对路径和绝对路径的优缺点。通过创建ADD.c和ADD.h文件并调用函数,验证了项目构建的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

CubeMX创建工程

项目管理

将CubeMX创建的工程导入到CubeIDE

创建用于演示的ADD.c文件和ADD.h文件

方式一:在IDE的项目浏览器内创建

方式二:在文件窗口处创建 / 从其他地方复制粘贴过来

将ADD.h添加到头文件搜索路径

将ADD.c添加到源文件搜索路径

在ADD.c文件内定义一个加法函数,在ADD.h文件声明这个函数,在main.c调用这个函数,构建项目,如果构建没有问题,就说明我们成功了

相对路径、绝对路径的优缺点


我们将会按照以下步骤进行操作

  • 在CubeMX创建一个最简单的工程
  • 将CubeMX创建的工程导入到CubeIDE
  • 创建用于演示的ADD.c文件和ADD.h文件
  • 将ADD.h添加到头文件搜索路径
  • 将ADD.c添加到源文件搜索路径
  • 在ADD.c文件内定义一个加法函数,在ADD.h文件声明这个函数,在main.c调用这个函数,构建项目,如果构建没有问题,就说明我们成功了

CubeMX创建工程

打开CubeMX,点击Help -> Updater Settings,弹出一个页面,页面中有一个内容,Firmware Repository(固件储藏室),就是用于管理固件包的下载路径的。需要注意,路径不可以带有汉字和空格。

点击Help -> Manage embedded software packages,弹出一个页面,在这里可以管理固件包以及下载固件包。

弄好上面的设置之后,点击主界面上的ACCESS TO MCU SELECTOR。

在1处输入你的芯片型号,在2处选择具体的型号,选好后,点击3处,开始创建工程。

然后就是下面的界面了。

由于我们这个项目只是用于演示,如何使用CubeMX并不是我们的重点,所以我使用CubeMX配置MCU会比较简单

按照下图进行操作,激活HSE的外部晶振设置

按照下图进行操作,配置好时钟树,注意输入正确的外部晶振频率

按照下图进行操作,激活调试接口,将其设置为SWD调试

此时芯片已经可以运行了,但是为了让这个工程不那么“虚”,就设置两个GPIO吧。

在引脚视图上,将PF9和PF10的引脚功能设置为GPIO_Output

按照下图进行操作,设置一下GPIO的输出电平以及用户标签。

现在就配置好芯片了。

项目管理

下一步进行生成项目管理。

我的项目框架的生成路径是单独的一个文件夹,你也可以将路径设置为CubeIDE的Workspace,只是我习惯这样。

这样,我们就成功使用CubeMX创建了一个项目框架了。


将CubeMX创建的工程导入到CubeIDE

说明:在下面,项目 == 工程

这个时候我们已经有一个工程了。将工程复制一份到CubeIDE的工作空间(Workspace)。

将工程导入到IDE:

  • 方法一:打开CubeIDE,点击CubeIDE左上角的File -> Open projects from file system,点击Direction,选中工作空间下想要导入的工程文件夹,最后点击 Finish。
  • 方法二:在工作空间文件夹内,打开项目文件夹,打开.project文件,或者打开.cproject文件。

导入成功后,构建一下,没有问题。

下图中,左边是IDE里面项目浏览器看到的工程目录,右边是工作空间下工程文件内的工程目录。

我的工作空间路径:E:\STM32Cube\STM32CubeIDE_Workspace

我的工程路径:        E:\STM32Cube\STM32CubeIDE_Workspace\test20231005


创建用于演示的ADD.c文件和ADD.h文件

接下来,我将会在工程内创建一个ADD文件夹,并在这个文件夹内创建ADD.c文件和ADD.h文件

创建文件夹和文件有两种方式:

方式一:在IDE的项目浏览器内创建

 在IDE的项目浏览器处,选中工程,右键,点击 “NEW” ,就可以看到上面的东西了。

点击 “File” 或者 “File from Template” 或者 “Folder” ,会弹出如下图所示的界面,可以设置文件夹、文件创建的位置以及名称。

“File” 和 “File from Template” 本质上是一样的,只是后者有个模板。

创建完成后,就可以在项目浏览器处看到文件夹,以及文件夹下的文件了。

使用头文件模板创建出来的.h文件,如图。


方式二:在文件窗口处创建 / 从其他地方复制粘贴过来

在工作空间下,工程文件内,在文件窗口处创建一个文件夹,命名为ADD。打开ADD,在这个文件夹内创建ADD.c和ADD.h这两个文件。在新建那里是找不到 .c 和 .h 的,可以创建文本文档文件(.txt文件),然后修改其文件后缀名。

如果看不到文件后缀名,可以点击文件夹上方的“查看”,然后勾选“文件扩展名”,这样就可以看到文件的后缀名了。

在文件窗口处创建文件夹和文件,或者你的文件夹和文件是从别处复制粘贴过来的,那么,IDE的项目浏览器并不会马上显示刚刚创建的文件夹和文件。这个时候需要在IDE的项目浏览器处右键,点击“Reflash”刷新,或者构建项目,就可以在项目浏览器处看到刚刚创建的文件夹和文件了。

现在我们在IDE的项目浏览器处可以看到我们创建的文件夹和文件,但是工程还没有包含他们的搜索路径。

如果我们现在在main.c里include了ADD.h,然后构建/编译,是会出错的,提示找不到文件。如下图所示。


将ADD.h添加到头文件搜索路径

 点击Project -> Properties(属性)

点击C/C++ General->Paths and Sybols

出现如图界面,中间部分的内容为已经包含的头文件路径。

目前来说,这些路径都是相对路径,基地址是工程路径

点击Add,出现如图界面。

想要把ADD文件夹添加进头文件搜索路径,有三种方式。

  • 方式一:在输入框A内输入ADD,点击OK。这种方式添加的是相对于工程路径的相对路径。
  • 方式二:点击Workspace,找到ADD,点击OK。这种方式添加的是相对于工作空间路径的相对路径。用这种方式时,Is a workspace path 这个选项需要被勾选上,如果没有勾选上,就是相对于工程路径的相对路径,构建/编译会出错。
  • 方式三:点击File system,找到ADD,点击OK。这种方式添加的是绝对路径

文章的末尾有相对路径、绝对路径的优缺点(来自GPT)

我这里添加的是相对于工作空间路径的相对路径

图中所示的是相对于工作空间路径的相对路径。

如果添加错了,可以选中想要删除的路径,点击Delete来把路径删除掉

记得点击Apply保存。


将ADD.c添加到源文件搜索路径

点击Source Location -> Add Folder,选中ADD文件夹内,OK,Apply即可。

记得点击Apply保存。

Add Folder 与 Link Folder 的区别:

Add Folder:add(添加)工程内部的文件夹

Link Folder:link(引用)工程外部的文件夹

添加成功后:


在ADD.c文件内定义一个加法函数,在ADD.h文件声明这个函数,在main.c调用这个函数,构建项目,如果构建没有问题,就说明我们成功了

ADD.c

ADD.h

不知道为什么,如果不包含<stdint.h>,就会报错,错误提示如下

unknown type name 'uint32_t'

包含<stdint.h>就没事了,以前我不包含也不会报错的(有朋友知道为什么的话,欢迎在评论区告诉我,非常感谢)

main.c

头文件的包含

函数的调用

有一个警告,警告提示是我们定义的Result没有被使用。无关紧要。

现在,我们已经成功包含了.c/.h的搜索路径并验证。

如果还有什么疑问,欢迎评论区留言。


相对路径、绝对路径的优缺点

(来自GPT)

相对路径的优点:

1.简洁性:相对路径是相对于当前工作目录或者源文件所在目录进行解析,可以使用相对较短的路径来指定头文件的位置。

2.可移植性:相对路径相对于当前环境的目录结构,当项目移植到其他位置或其他机器时,相对路径可能更容易适应新的工作环境。

相对路径的缺点:

1.可靠性:相对路径可能依赖于文件结构和工作目录的变化,如果文件结构发生改变,那么相对路径可能无法正确找到头文件,导致编译错误。

2.可读性:相对路径可能不够明确,他人难以迅速理解头文件的具体位置。

绝对路径的优点:

1.精确性:绝对路径表明了头文件的确切位置,不受工作目录和文件结构的影响。无论当前工作目录在何处,都能准确找到头文件。

2.可读性:绝对路径提供了清晰明确的信息,他人易于理解和追踪头文件的位置。

绝对路径的缺点:

1.不够灵活:绝对路径是固定的路径,如果项目需要移植到其他位置或其他机器上,就需要手动更改绝对路径设置。

2.冗长性:绝对路径通常比较长,使用起来可能不太方便,尤其是在大型项目中含有多个嵌套文件夹的情况下。

在项目开发过程中,相对路径通常是更常见和推荐的选择,因为它具有简洁性和可移植性,可以更好地适应不同环境和项目结构的变化。

但在某些情况下,使用绝对路径可能更合适,特别是当项目的文件结构较为固定,或者需要确保代码在不同环境中都能准确找到头文件时。

无论使用哪种路径,都要确保代码的可读性和可维护性,并避免出现头文件路径错误导致的编译问题。


### 如何在 STM32CubeIDE导入已有工程 #### 准备工作 确保已经安装好适用于STM32CubeIDE的JAVA环境(JRE),这是运行该集成开发环境所必需的基础条件[^1]。 #### 导入过程 为了成功地将现有的项目加载至STM32CubeIDE内,需遵循如下操作指南: #### 获取完整的工程文件夹结构 首先确认拥有待导入项目的全部源代码及相关资源构成的一个独立文件夹。这一步骤至关重要,因为只有保持原有的目录层次不变才能保证后续步骤顺利执行[^3]。 #### 启动并打开 IDE 的导入向导 通过菜单栏中的`文件`选项找到并点击`导入...`命令来激活导入功能。此时会弹出一个对话框供用户选择具体的导入方式。 #### 选取合适的导入模式 当面对多种类型的导入方案时,请定位到`General`分类下的`Existing Projects into Workspace`这一项,并选中它作为本次操作的目标模式。这样做能够帮助开发者快速识别和引入基于Eclipse平台创建的各种形式的工作区外项目。 #### 定位目标工程位置 按照提示浏览本地磁盘直至发现先前准备好的那个包含完整工程资料的根级文件夹为止;选定之后继续前进直到看到界面上出现了预期中的项目名称列表,则表明路径设置无误。 #### 执行最终导入动作 一旦核实所有信息均正确无误后就可以按下“Finish”按钮结束整个流程了。如果一切正常,在短暂等待片刻过后应该可以在左侧导航树形视图里看见新加入成员的身影。 #### 编译验证 最后不要忘记右键单击刚被添加进来的新项目节点,从快捷菜单里面挑选出`Build Project`来进行一次初步构建测试以检验其健康状况。假如没有任何警告或错误报告冒出头来就说明移植工作圆满完成。 ```cpp // 示例:简单的 C++ 测试程序用于验证编译链路是否通畅 #include <iostream> int main() { std::cout << "Hello, STM32!" << std::endl; return 0; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值