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.

redefined重复定义问题

Other Parts Discussed in Thread: CONTROLSUITE

我用CCS5 编写一个工程时 在Epwm.c文件里调用f2803xpwm.h  在EQep.c里调用f2803xqep.h 就会报错误 。 如果把这两个头文件屏蔽 则不报错误 请问大家这是为什么?

error: symbol "_ePWM" redefined: first defined in "./Epwm.obj"; redefined in
   "./EQep.obj"
error: symbol "_eCAP" redefined: first defined in "./Epwm.obj"; redefined in
   "./EQep.obj"
error: symbol "_eQEP" redefined: first defined in "./Epwm.obj"; redefined in
   "./EQep.obj"

  • jie,

    这里显示ePWM的重复定义,应该是EQep中引用的f2803xqep.h会引用到f2803xpwm.h,导致重复定义。

    你的头文件是自己定义的还是TI例程?

    建议你下载controlSUITE软件,用CCS5导入例程,在例程基础上修改。

    Eric

  • 我这个工程就是在例程的基础上修改的(参考打的例程是C:\TI\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\HVPM_Sensorless),这两个头文件也都是TI的例程(头文件路径在C:\TI\controlSUITE\libs\app_libs\motor_control\drivers\f2803x_v2.0),只不过例程里是用了一个C文件调用这两个头文件 ,而我用两个C文件分别调用这两个头文件 编译就有错误 为什么?

  • jie,

    工程中的Epwm.c是从哪里加载的?这个源文件本身有没有添加其他的头文件,有可能是某些头文件定义跟f2803xpwm.h冲突了

    Eric

  •        这个是我自己写的,跟例程里的程序没多大区别,只不过将C:\TI\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\HVPM_Sensorless里HVPM_Sensorless.C关于PWM的部分拷出来新建一个源文件Epwm.c,关于QEP的部分新建源文件EQEP.c,当然还包括其他头文件,但是跟例程里面添加的头文件是一样的。

    他例程里面是把两个头文件放在一个源文件使用这样不会报错,我只是将这两个头文件分别放在不通的C文件这样就报错了?

  • 我也遇上了同样的问题,显示_eCAP,_ePWM,_eQEP redefined,很奇怪,这都库里定义的,别的地方没有定义,怎么会重复呢

  • 我刚好遇到这个问题,研究了一下解决问题了。

    Epwm.c文件要包含.h文件,不要在Epwm.c文件中写#include"EQep.c"。

    因为上面两个文件都是.c文件,所以当在Epwm.c文件中写#include"EQep.c"后,EQep.c中的代码段在Epwm.c被编译了一次,然后在EQep.c文件中由编译了一次。这样就造成了重复定义的问题。

    以上是我的拙见,希望能解决你的问题。

  • 你理解错我的意思了,我并没有在文件中写#include"EQep.c",我包含的只是.h文件。在Epwm.c文件里调用f2803xpwm.h  在EQep.c里调用f2803xqep.h 这样就会报错误 。f2803xpwm.h和f2803xqep.h这两个头文件都是TI的例程里的.

  • 您好:

    我也遇到了_eCAP,_ePWM,_eQEP redefined的问题,想请教您当时是怎么解决的呢

    谢谢。