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.

[参考译文] TM4C123GH6PM:设置 SYSCTL_RCGC2_R 以初始化 GPIO 端口

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/739873/tm4c123gh6pm-setting-up-sysctl_rcgc2_r-to-initialize-gpio-port

器件型号:TM4C123GH6PM

目的是使用激活端口 E 的时钟  

void Porte Init (void){volatile unsigned long delay;
SYSCTL_RCGC2_R |= 0x00000010;// 1) E 时钟

但是、我不理解为什么我们将下面的定义为 RCGC2的地址

#define SYSCTL_RCGC2_R (*(volatile unsigned long *) 0x400FE108)  

尽管我知道从微控制器的数据表中可以看出、RCGC2的基地址是0x400FE000、偏移量是0x108。 我仍然认为我们应该使用0x400FE000来访问整个寄存器、并且使用0x400FE108来访问 RCGC2寄存器的位0 (位专用寻址)。  

请帮帮我进行验证。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您的理解不正确。 SYSCTL_RCGC2_R 寄存器位于地址0x400FE108。 0x400FE000是系统控制模块的基地址。 0x108是 SYSCTL_RCGC2_R 的偏移地址 SYSCTL_RCGC2_R 只是系统控制模块中众多寄存器中的一个。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、  

    非常感谢您的解释。 现在我了解 SYSCTL_RCGC2_R 寄存器位于地址0x400FE108。 只是为了确认、所以如果我想对该寄存器的位0使用特定于位的寻址、地址将是0x400FE108+0x00000108 = 0x400FE210)、对吧?  

    此致、  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不、您的理解不正确。 0x400FE108是一个字地址。 您不能对该寄存器进行位寻址。 要仅设置位0、只需向该寄存器写入0x1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、我非常感谢您的回答。