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.

[参考译文] 编译器/TMS320F28388D:表达式必须有整数类型错误

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/958167/compiler-tms320f28388d-expression-must-have-integral-types-error

器件型号:TMS320F28388D

工具/软件:TI C/C++编译器

您好!

同时转换看门狗使能代码

 HWREGH (WD_BASE + SYSCTL_O_WDCR)=(HWREGH (WD_BASE + SYSCTL_O_WDCR)& ~SYSCTL_WDCR_WDDIS)| SYSCTL_WD_CHKBITS;

按位表示法、

 WdRegs.WDCR =(WdRegs.WDCR &(~SYSCTL_WDCR_WDDIS))| SYSCTL_WD_CHKBITS;

我遇到错误"expression must have integral types"。

如何解决此问题?

谢谢、

Subha

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

    尊敬的 Subha:

    如错误所示、WdRegs.WDCR 不是整数类型、而 是 WdRegs.WDCR 是联合类型。 对于位操作、它应该是整数数据类型。  

    如果使用的是位字段、则语法应为:

    WdRegs.WDCR.ALL =(WdRegs.WDCR.ALL &(~SYSCTL_WDCR_WDDIS))| SYSCTL_WD_CHKBITS; 

    但它允许您逐位操作、您应该使用它。 如下所示:

    WdRegs.WDCR.bit.WDCHK = 1;
    WdRegs.WDCR.bit.WDDIS = 0;