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.

[参考译文] 编译器/TMS320F28379D:在 C 语言中按位设置结构体和联合体所需的代码指导

Guru**** 2589265 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/612737/compiler-tms320f28379d-guidance-needed-on-code-for-bitwise-setting-up-of-structs-and-unions-in-c

器件型号:TMS320F28379D

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

我熟悉 TI 微控制器中的寄存器通常是如何设置的。 我想我可能知道下面的代码中发生了什么、但我不确定我是否完全理解 以下 C 代码、这些代码似乎是根据 GPIO 寄存器设置结构的。 具体而言、在定义结构体和联合体时、我不确定我是否在标准 C 中看到 了后跟数字的冒号表示法。

STRUT GPDGMUX1_BITS{                 //位说明
   UINT16 GPIO96:2;                   // 1:0定义 GPIO96的管脚复用选择
   UINT16 GPIO97:2;                   // 3:2定义了 GPIO97的引脚复用选择
   UINT16 GPIO98:2;                   // 5:4定义了 GPIO98的引脚复用选择
   UINT16 GPIO99:2;                   // 7:6定义了 GPIO99的引脚复用选择
   UINT16 GPIO100:2;                  // 9:8定义了 GPIO100的引脚复用选择
   UINT16 GPIO101:2;                  // 11:10定义 GPIO101的引脚复用选择
   UINT16 GPIO102:2;                  // 13:12定义了 GPIO102的引脚复用选择
   UINT16 GPIO103:2;                  // 15:14定义了 GPIO103的引脚复用选择
   UINT16 GPIO104:2;                  // 17:16定义了 GPIO104的引脚复用选择
   UINT16 GPIO105:2;                  // 19:18定义了 GPIO105的引脚复用选择
   UINT16 GPIO106:2;                  // 21:20定义 GPIO106的引脚复用选择
   UINT16 GPIO107:2;                  // 23:22定义了 GPIO107的引脚复用选择
   UINT16 GPIO108:2;                  // 25:24定义了 GPIO108的引脚复用选择
   UINT16 GPIO109:2;                  // 27:26定义了 GPIO109的引脚复用选择
   UINT16 GPIO110:2;                  // 29:28定义了 GPIO110的引脚复用选择
   UINT16 GPIO111:2;                  // 31:30定义了 GPIO111的引脚复用选择
};

UNION GPDGMUX1_REG{
   uint32 all;
   STRUT GPDGMUX1_BITS ;
};