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.

[参考译文] MSP432P401R:GPIOA_EN 寄存器的物理地址。

Guru**** 2555630 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/597665/msp432p401r-physical-address-for-gpioa_en-register

器件型号:MSP432P401R

大家好!

我不熟悉此论坛和微控制器领域。 我一直在浏览 MSP432P401R 微控制器的数据表、找不到所需的有关 GPIO 端口 A 时钟启用寄存器物理地址的信息。  我尝试从十六进制地址0x4000_4C00开始激活寄存器、因为它们当前已关闭。  这是端口 A (端口1和2)的起始地址。  我找到了与 GPIOA_EN 和偏移位相关的信息、这些信息与这些信息相对应、但不是实际控制寄存器的地址。

如果有任何帮助,将不胜感激。

谢谢。

此致、

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

    Michael、

     通常、通过寄存器的实际数字地址访问寄存器并不是一个好的做法、因为这种代码不是很容易移植的。 (即、它只能在1个特定器件上工作、不能在具有更多存储器或不同外设的器件型号上工作)。  

    为了在寄存器级(又名"BareMetal")编码风格中避免这种情况、您可以为寄存器使用预定义的缩略词。   您可以在 MSP432P401数据表的表6-21中找到这些寄存器的名称。 端口寄存器(基地址:0x4000_4C00)

    下面给出了使用这些缩略词访问端口的示例:

    //从 msp432p401x_p1_03.c 寄存器级别示例中提取的代码示例

    //使用上拉将 P1.0配置为输出,将 P1.1 (开关)配置为输入
    //电阻器。 其余引脚配置为输出低电平。
    //请注意、由于所有 P1引脚都在进行中、因此需要进行有意的'='分配
    //故意配置

    P1->DIR =~μ s (uint8_t) BIT1;
    P1->OUT = BIT1;
    P1->REN = BIT1;//启用上拉电阻(P1.1输出高电平)
    P1->SEL0 = 0;
    P1->SEL1 = 0;
    P1->IES = BIT1;//高电平到低电平转换时的中断
    P1->IFG = 0;//清除所有 P1中断标志
    P1->IE = BIT1;//为 P1.1启用中断

    此致、

     Bob

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的观看! 不是我要找的答案!

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Michael、
    我无法在我们的头文件或文档中找到对 GPIOA_EN 的特定引用。 您在哪里可以看到此寄存器名称?
    如果您描述了您尝试更广泛地执行的操作、我可以在 Reigster-level 或(首选) Driverlib 代码中为您提供一些编码选项。 后者使用更可移植、更强大的 API 函数调用来操作系统资源。

    此致、
    Bob
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bob、您好!
    我正在使用 MSP432进行陡峭的学习曲线。 我使用 IAR 开发软件来连接该板。 借助此软件、我能够在位级别与电路板通信。 我已经弄清楚了如何在适当的寄存器中为输出、方向和电阻器使能寄存器设置位。 我唯一找不到的是将激活端口 A 寄存器的寄存器和位位置、起始地址为0x4000_4C00。 目前、寄存器已关闭。 除了______ ____数据应位于的空空间。 我相信控制端口 A 的时钟门控控制寄存器被关闭、这可能是芯片省电功能的一部分。 在微控制器的早期版本中、您可以在数据表中找到此信息。
    我真的想弄清楚这一点。 我知道我可以用 C 语言编写所有这些代码并使程序正常工作、但我不知道 C 编译器是如何在位和字节级别执行指令的。 我越了解芯片的汇编级别和机器指令、我就越了解 C 编译器和机器代码的工作方式!

    感谢您在这方面提供的任何帮助。

    此致、

    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mike、
    我之前提供的数据表参考(表6-21中的 MSP432P401数据表)。 端口寄存器(基址:0x4000_4C00)
    具有不同寄存器的地址偏移量以及您通常使用的首字母缩写词。 我建议查看该部分。

    我赞扬您愿意尽可能多地了解编译器及其工作原理。 如果您觉得自己在时间上更加紧迫、我建议查看更高级别的 TI 驱动程序和示例(适用于 RTOS 项目)或 TI driverlib API 和示例(适用于非 RTOS 项目)。 这两个示例都在 SimpleLink SDK 中提供。 它们显著提高了工作效率、还具有将代码轻松移植到其他 SimpleLink 器件的额外优势。

    此致、
    Bob