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.

一个关于IQmathLib.h头文件包含的问题



本人在用controlsuit中的HVSCI_socerless例程来开发产品,现在遇到一个IQmathLib.H使用的怪现象:出现在一个C文件中无法包含的问题。描述如下:

我新建一个C文件,需要调用电机控制头文件中的结构体,而这些结构体内变量是_iq 格式的。现在当我把建有这些结构体的头文件头文件从main.c中复制到这个新建的C文件中时,编译出现_iq格式不可用,我将IQmathLib.h头文件从main.c也复制过来,还是_iq格式不可用。

这时原来main.c中同样有这样的二条语句.这时我复制的地方。

奇怪的现象是:当我在新建的C文件删除这二句后,出现建有结构体的头文件无法使用

 

 

  • 补充:也就是说,现在无法复原了。IQMATH。H不再被原来main.c中的头文件所包含:

    如下所示:

    main,c中的IQmath.h和HVACI_Sensorless.h:

     

     

    新建的modbus.c中的头文件:

    也就是说这二个头文件不能同时出现在二个 文件中,而且一但出错,删掉后来建的,故障无法解决,也就无法复原。本来在main,c中的二个头文件没有问题,现在反而出现了问题,而且这种问题不会因为删掉新建c文件中而复原,我不知为什么?

    另外产生问题的只是HVACI_Sensorless.h中包含的电机控制结构体的头文件。

    我想可能是CCS5的问题,重装的CCS5,还是不能解决,

    我重新从原来好的工程做同样的步骤还是出现这样的问题。

    不知为何?

  • IQmath_Lib 已经包含在工程中了么? 不是.h文件,是库的源文件

  • 是的,己经包含了,

    现在这个问题我是这样解决的,在一个没有问题的工程中,重新建modbus.c,分别加入电机控制头文件,而不是加入HVACI_Sensorless.h,把这个总包含内的各个头文件分别加入后,再加入IQmath.h就没有问题了,

    说明头文件在多重包含方式方面不能随意包含。

    但是CCS5在头文件包含出错后没办法恢复,这点有点不可思义!

    感谢joson chen!

  • 楼主,你好!
    从编译器的角度来说,你如果恢复了,不可能出现这样的问题,多包含头文件的问题,通常只会产生重复定义的问题。楼主可以将有问题的项目贴上来看一下!

  • 您可以试一下,在control suit中无传感交流电机的例程中加入一个C文件,再重建军一个QN,Y

  • QN,Y指的是什么呢?

    是指定义一个IQ格式的变量吗?