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.

[参考译文] MSP430F2274:读取/写入寄存器 CAN#39;t be read (MSP430F2274上的端口2)

Guru**** 2529120 points
Other Parts Discussed in Thread: MSP430F2274

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/587711/msp430f2274-read-write-register-can-t-be-read-port-2-on-msp430f2274

器件型号:MSP430F2274

我在 MSP430F2274调试方面遇到了一些问题。  我有正确地将数据写入 P2IE 的代码、但当我检查 P2IE 寄存器时、该值始终为零。  我知道该值被正确写入、因为当我将其值分配给变量时、该值会按预期设置。  我在数据表中查找了 P2IE 寄存器,它说它是读/写的,但我也看到数据表说 ...

    由于端口 P2仅实现了三个 I/O 引脚、

    所有端口 P2寄存器的位[5:1]读作0、写入数据被忽略。

现在、当我查看部件时、它定义了 P2的全部8个位、它们都可以是 IO 或其他内容。  

那么、有什么关于为什么我看不到寄存器值更新的想法吗?

我使用的是 IAR 7.10

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Andrew、
    我刚刚收到了您的问题。 可以共享代码吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Andrew、

    我刚才在 IAR 上做了一个快速示例、我无法看到您的问题。

    我运行了以下示例、

    #include "io430.h"
    
    unsigned char p2ieRead = 0;
    
    int main (void)
    {
    //停止看门狗计时器以防止超时复位
    WDTCTL = WDTPW + WDTHOLD;
    P2IE = 0xFF;
    p2ieRead = P2IE;
    p2ieRad++;
    while (1);
    返回0;
    }
    

    调试器窗口在读取/写入之前与此类似、

    在写入 P2IE 后、

    最后、读回后、

    请告诉我您希望我调查什么。