SW4STM32(eclipse)开发stm32手动添加源文件到项目

目录

    • 1 demo工程准备
    • 2 打开工程并编译
    • 3 添加源文件夹(source folder)
    • 4 给新的源文件夹添加源文件(c文件和h文件)
    • 5 设置工程include 目录
    • 6 在源文件中添加示例代码
      • 6.1 user.h
      • 6.2 user.c
      • 6.3 在main.c中添加如下代码:
      • 6.4 再次编译

前言:最近在整dwm1000模块uwb测距应用是,由于官方提供了基于SW4STM32(eclipse)的demo,所以在这里学习了eclipse相关使用。其中一个棘手的问题就是,使用cubemx生成的工程编译没有问题,但是手动添加已经存在的源文件的时候就会出现一些神奇的现象,编译的时候始终无法包含进编译路径。
今天大概了解了一二,在此记录一下。希望能帮助到有缘人。

1 demo工程准备

因为开发基于stm32,所以在此以是stm32cubemx来生成示例工程,在此仅设置系统时钟,开启tick时钟,设置一个PC13为LED(输出)。没有什么特殊的设置,只需要选择开发环境时选择SW4STM32即可。
SW4STM32(eclipse)开发stm32手动添加源文件到项目_第1张图片

2 打开工程并编译

使用cubemx生成工程代码后,选择“open project”,会自动调用SW4STM32打开生成的工程。打开工程后,在工程文件夹上右键鼠标,选择“build project”,会生成最后的目标文件。
SW4STM32(eclipse)开发stm32手动添加源文件到项目_第2张图片

3 添加源文件夹(source folder)

在工程文件夹上右键鼠标选择“new”——“source folder”,在弹出的窗口中,输入要添加的文件夹及对应的路径,然后单击“finish”,完成源文件夹的添加。
SW4STM32(eclipse)开发stm32手动添加源文件到项目_第3张图片

4 给新的源文件夹添加源文件(c文件和h文件)

同样的方式,在新建的user文件夹上右键鼠标,选择“new”——“source file”,在弹出的窗口中,分别依次输入“user.h”和“user.c”文件,完成后,在工程目录user下即添加了上述两个文件。
SW4STM32(eclipse)开发stm32手动添加源文件到项目_第4张图片

5 设置工程include 目录

选择菜单栏“project”——“properties”,打开工程属性窗口,依次单击/选择“C/C++ General”——“paths and symbols”,在“configuration”中选择给哪个配置添加include目录,在此选择“all configurations”,在下方窗口选择“includes”——“GUNC”——“add”,在弹出的窗口中输入“user”,即在工程根目录下添加user文件夹,可以根据需要选择具体的文件夹/子文件夹(可参考已有的include目录格式)。之后单击“apply”——“ok”,完成include目录的设置。
SW4STM32(eclipse)开发stm32手动添加源文件到项目_第5张图片

6 在源文件中添加示例代码

6.1 user.h

/*
 * user.h
 *
 *  Created on: 2020年5月7日
 *      Author: adminFish
 */
#ifndef USER_H_
#define USER_H_
#include "main.h"

uint8_t user_add(uint8_t numa,uint8_t numb);

#endif /* USER_H_ */

6.2 user.c

/*
 * user.c
 *
 *  Created on: 2020年5月7日
 *      Author: adminFish
 */

#include "user.h"

uint8_t user_add(uint8_t numa,uint8_t numb)
{
	return (numa+numb);
}

6.3 在main.c中添加如下代码:

添加头文件的引用

#include "user.h"

新建一个变量

uint8_t result=0;

函数调用

  result=user_add(3, 5);

添加完成后,保存工程,并在工程文件夹上右键鼠标,单击“refresh”,更新工程。

6.4 再次编译

编译结果:
SW4STM32(eclipse)开发stm32手动添加源文件到项目_第6张图片
根据hex大小的变化,可以简单判断上述操作正确且添加的自定义源文件正确的得到了调用。

你可能感兴趣的:(STM32)