[STM32F4] 如何在我链接的库中使用生成的类型?

[复制链接]
214|0
咚了个咚 发表于 2025-10-22 11:18 | 显示全部楼层 |阅读模式
[color=var(--md-box-body-color,var(--md-box-global-text-color))]我通过链接文件夹(“源位置”->“链接文件夹...”)添加了一个库,我的大部分代码都在这个库中,想在多个项目中重复使用这些代码。

[color=var(--md-box-body-color,var(--md-box-global-text-color))]但我经常发现,代码生成器(ioc)生成的类型不被我的库 “识别”。

[color=var(--md-box-body-color,var(--md-box-global-text-color))]这个库没有被编译,而是包含许多 C 文件和头文件。

[color=var(--md-box-body-color,var(--md-box-global-text-color))]举个明确的例子:

[color=var(--md-box-body-color,var(--md-box-global-text-color))]一些主项目使用 DAC,当我在 ioc 中激活 DAC 时,会得到 DAC_HandleTypeDef 类型,可在主项目中使用。

[color=var(--md-box-body-color,var(--md-box-global-text-color))]在我的库中,我添加了代码,以便在 DAC_HandleTypeDef 存在时创建一个成员,如下所示:

[color=var(--md-box-body-color,var(--md-box-global-text-color))]#ifdef DAC_HandleTypeDef
DAC_HandleTypeDef *pDAC_Speed;
#endif


[color=var(--md-box-body-color,var(--md-box-global-text-color))]这不起作用,库代码认为 DAC_HandleTypeDef 未定义,而我在主项目中却可以使用 DAC_HandleTypeDef 类型。

[color=var(--md-box-body-color,var(--md-box-global-text-color))]我检查了头文件的包含顺序,发现 DAC_HandleTypeDef 是通过 “stm32g4xx_hal.h” 定义的,该头文件是主项目中包含的第一个头文件。而我的库头文件应该是在之后编译的。

[color=var(--md-box-body-color,var(--md-box-global-text-color))]这是怎么回事呢?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

73

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部