大家好!
我不熟悉此论坛和微控制器领域。 我一直在浏览 MSP432P401R 微控制器的数据表、找不到所需的有关 GPIO 端口 A 时钟启用寄存器物理地址的信息。 我尝试从十六进制地址0x4000_4C00开始激活寄存器、因为它们当前已关闭。 这是端口 A (端口1和2)的起始地址。 我找到了与 GPIOA_EN 和偏移位相关的信息、这些信息与这些信息相对应、但不是实际控制寄存器的地址。
如果有任何帮助,将不胜感激。
谢谢。
此致、
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 微控制器的数据表、找不到所需的有关 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