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.

[参考译文] MSP430FR5729:GPIO 引脚初始化错误。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1528156/msp430fr5729-gpio-pin-initialization-error

器件型号:MSP430FR5729
主题: MSP430WARE 中讨论的其他部件

工具/软件:

你(们)好
我使用的是 msp430fr5729 芯片。
如下图所示、上电后、我将 GPIO 引脚初始化为低电平、但还有一些引脚设置不正确。
如下所示、我将 P2.5 和 P2.6 设置为低电平、但它们的输出为高电平。
我编写的代码有问题吗?

void main (void)

  WDTCTL = WDTPW + WDTHOLD;// WDT 중지


  CSCTL0_H = 0xA5;
  CSCTL1 |= DCOSEL0 + DCOFSEL;DCO 설정(MODOSC = 8MHz)
  CSCTL2 = SELA_3 + BES_3 + SELM_3;ACLK = DCO 설정、SMCLK = DCO、MCLK = DCO
  CSCTL3 = DIVA_0 + DIvs_3 + DIVM_0;// ACLK = DCO/1、SMCLK = DCO/8、MCLK = DCO/1

  CSCTL4 = XT1오프 μ F + XT2오프 μ F;
  CSCTL5 &=~(XT1OFFG + XT2OFFG);

  //计时器
  TA1EX0 = TAIDEX_0;// ClockSourceDivider
  TA1CTL = TASSEL_2 + ID_0 + MC_1 + TACLR;// SMCLK、최대 CCR0
  TA1CCR0 = TIMER_PERIOD;// 1ms IRQ
  TA1CCTL0 = CCIE;// TACCR0 인터럽트 활성화

  //GPIO
  P1DIR |=(BIT0 + BIT1);//포트 방향(0:输入、1:Outpt)
  P1REN = 0x00;풀업 Ω 和 풀다운 레지스터 활성화 Ω(0:禁用、1:启用)
  /*
  P2.2 =输入
  P2.3 =输出
  P2.4 =输出
  P2.5 =输出
  P2.6 =输出
  P2.7 =输出
  */
  P2DIR |=(BIT3 + BIT4 + BIT5 + BIT6 + BIT7);
  P2OUT |=(비트4 μ s);
  P2REN = 0x00;


  while (1)  {

  }

}

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

    您好 Yeon、

    P2OUT |=(비트4);

    此代码中似乎存在一些无效字符。   

    顺便说一下、您使用了什么硬件?  

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

    P2OUT |=(BIT4);
    翻译中出现错误。
    这就是我自己开发的硬件。

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

    您能帮助使用  P2OUT = BIT4 吗?这会使 P2.4 变为高电平、使其他引脚变为低电平吗?

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

    我认为您在某处需要“PM5CTL0 &=~LOCKLPM5;“。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为您需要“PM5CTL0 &=~LOCKLPM5;“某处。

    这是我一直想到的第一件事、但某些 MSP430 会在复位期间重置该位。 指南说这是其中之一。 但我是谨慎型/偏执型、无论如何都要包括它。

    该指南还规定 PxOUT 在复位后为未定义、因此 P2OUT 中具有已知条件的唯一位是 BIT4。  

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

    很抱歉晚才回复。
    你告诉我的方法解决了这个问题。 谢谢你。
    我还有一个问题。
    我使用了“msp430ware_3_80_13_03"提供“提供的示例。
    为什么 P2.5、P2.6 引脚最初是高电平?
    我们下载到许多板,只有其中一些显示的症状。

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

    您指的是哪种方法?

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

    通过设置“P2OUT = BIT4“、P2.5 和 P2.6 将被设置为低电平。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么 P2.5、P2.6 引脚最初是高电平?
    我们下载到许多板,只有其中一些显示的症状。

    正如 David 提到的  、PxOUT 在复位后是未定义的、因此如果您未初始化 PxOUT、则输出引脚的引脚排列条件是未知的。