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.

[参考译文] CCS/MSP432P401R:MSP432、将 ADC 函数放入头文件

Guru**** 2540720 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/908706/ccs-msp432p401r-msp432-making-an-adc-function-into-a-header-file

器件型号:MSP432P401R

工具/软件:Code Composer Studio

尝试使用 ADC 生成头文件。 我正在尝试清理我的代码、我有很多依赖于 ADC 数据的函数。 我已经制作了许多标头、其函数取决于 ADC 收集的数据(电压/温度等)、但当我尝试编译它时、我会得到以下重新定义错误:

说明   资源   路径   位置   类型
重新定义#10056符号"x":首先在"./Instructions.obj"中定义;在"./main.obj"   file_name 中重新定义         C/C++问题

据我所知、main 中没有任何内容可以重新定义所使用的变量、但它如何在标头之间收集数据可能存在问题。 我的目标是创建一个 adc.c 和.h 文件、将其从主代码中拉出。 这是可行的吗? 或者它会破坏 main 如何从 ADC 收集信息? 我在网上没有找到任何有关制作 ADC 头文件的规则。 请提供任何帮助。

Luke

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

    请参阅 此常见问题 解答(不是来自 TI)。

    谢谢、此致、

    乔治

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

    因此、我已经阅读并被其他程序员告知、在头文件中输入定义是一个坏主意(如果不是"永远不要这么做")。 常见问题解答似乎鼓励这种做法。 是否有规则或指南建议您应该在标题中放入哪种类型的变量/定义、而不应该放入哪种类型的变量/定义?

    在我的案例中、我遵循的是规则、但它仍然不起作用、我不知道为什么。 我在 main.h 文件中定义了我的所有术语、并将该文件包含在我的所有.c 文件中。 main.h 具有#ifndef、#define 和#endif、因此它不会重复。 但是、当我编译 main.h 文件中的术语时、似乎在新的.c 文件中与 main.obj 一起重新定义了这些术语、即使这两个变量都未在中使用。 我猜它会多次进入 main.h、但这不应该发生、因此我对问题所在的位置感到很损失。

    Luke

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

    [引用 USER="Luke Cecelon"]因此、我已经阅读并被其他程序员告知、在头文件中输入定义是一个错误的主意(如果不是"永远不要这么做")。 常见问题解答似乎鼓励了这一点。

    然后您误读了常见问题解答。  它解释了术语声明 和定义、并指出虽然同一变量可能有许多声明、但只能有一个定义。  声明出现在头文件中、一个定义出现在一个.c 文件中。   

    谢谢、此致、

    乔治

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

    我现在看到了差异。 感谢您的澄清。