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.

[参考译文] TMS320F28P550SJ:如何在 F28P55中处理 uint32_t?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1515353/tms320f28p550sj-how-to-deal-with-uint32_t-in-f28p55

器件型号:TMS320F28P550SJ

工具/软件:

您好、

我对 uint32_t 有一个问题

我使用:芯片 TMS320F28P550SJ、CCS 版本20.0.1.4_1.6.1和频谱数字 XDS2XX USB 调试探针。

我的 main 函数如下所示、我得到的值为 value1=0x0000AA00、value2=0x000AA000、value3=0x00AA0000。 但是、 我获得的值为: value1=0x0000AA00、value2=0x0000A000、value3=0x00000000。  如何获得正确的 uint32_t 数据? 谢谢。

#include "f28p55x_device.h"
#include "f28x_project.h"
#include "C:\TI\ccs2001\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS \include\stdint.h"
void main (void)
  uint16_t DATA = 0xAA
  uint32_t value1 = 0u
  uint32_t value2 = 0u
  uint32_t value3 = 0u

  //
  //初始化系统控制:
  // PLL、看门狗、启用外设时钟
  //
  InitSysCtrl()

  Value1 =数据<<8
  Value2 =数据<<12
  Value3 =数据<<16
  while (1)
  {
    ;
  }
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Carolyn、

    您是否可以尝试将数据变量定义为 uint32_t 数据类型。 如果不是首选、请在移位之前将数据类型转换到 uint32_t、因为我怀疑一旦您将16位变量移动到超过16位、数据就会丢失。

    此致、

    Ozino

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

    您好、Ozino、

    它的工作原理、谢谢。

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

    太棒了! 很高兴听到它起作用了。 感谢您的反馈。

    此致、

    Ozino