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/TMS320F28069:移位计数太大

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/674051/ccs-tms320f28069-shift-count-is-too-large

器件型号:TMS320F28069

工具/软件:Code Composer Studio

我计划 使用 CAN mailbox17发送数据。

对于我的代码、 编译器警告 ME:移位计数对于语句来说太大(1 << 17)、请参阅下图

 它是否会损害我的项目以及如何修复它?


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

    是的、可以。

    编译器将"1"视为16位整数、因此17的左移始终会导致0。  您需要对其进行长时间拼写、以便结果有意义:

    ECanaShady.CANTRS.ALL =((uint32) 1 << 17);

    此致、

    Richard

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

    您好!

    如果用 uint32字面量替换1、则警告应消失:

    ECanaShady.CANTRS.ALL |=(1UL <<17);