This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2355:有关访问更高级别#defines 的问题编码

Guru**** 2387080 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1162897/msp430fr2355-coding-question-on-access-to-higher-level-defines

器件型号:MSP430FR2355

您好...

我在高级应用程序层有一个 h 文件,在低级驱动程序空间有一个 c 文件..... 我想从 h 文件中访问一些#defines。  有人能告诉我如何解决这个问题吗??? (很可能很简单,但是……)

我已经尝试将 h 文件包含在我的低级驱动程序 h 文件中,但它会导致冲突,因为我的低级驱动程序 h 文件包含在顶级应用程序 h 文件中.....

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Steve、

    您是否正在使用收割台防护装置? 通常、这是避免依赖性问题的最佳方法。  

    我不确定我是否完全理解了您的问题。 您能帮助我确切了解您要做的事情吗?

    文件:

    • HIGH_LEVEL.h:#defile TOP_LEVEL_DEF 和#include low_level.h
    • low_level.h:此文件使用 Top_level_DEF 和#include high_level.h
    • low_level.c:此文件使用 Top_level_DEF 和#incldue low_level.h

    以上是您的应用程序包含结构的准确表示吗? 如果是这样、 则具有循环依赖关系。 您应该将应用程序所有级别所需的所有#defines 移动到 constants.h 文件中。 确保在此处使用收割台护罩。

    此致、

    Evan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Evan

    我有警卫……我在 main.h 中有一个#define… 然后、我想将其用于我创建的 i2c.c 驱动程序文件中...但正如您可以想象的那样、i2c.h 文件包含在 main.h 中...解决方案是创建中间件(lcd.h 和 LCD.h)并将 i2c.c 中的函数提升到一个级别 (因为它实际上依赖于 LCD、而不是 i2c)。  然后我将#define (也是与 LCD 相关的)下移到 lcd.h 文件中...所有人现在都满意了。