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.

[参考译文] CCS/MSP430G2553:工作 MSP430g2553挂起

Guru**** 2551110 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/589756/ccs-msp430g2553-working-msp430g2553-hang

器件型号:MSP430G2553

工具/软件:Code Composer Studio

我正在使用 msp430g2553控制器、当我的工作设备停止发送 UART 数据时、 即使没有恢复外部中断、但在一个下电上电后、它开始工作!!  

如果有人遇到类似的问题,请帮我解决。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是 LaunchPad、EVM 还是定制板? 使用的是什么 FET 工具?您正在与哪个器件通信? 您的系统频率/波特率是多少?您提供了哪些代码示例? 您是否使用了 CCS 调试器或示波器/逻辑分析仪图像来进一步调查您的问题?

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

    感谢 Ryan、

    msp430g2553正在使用  16MHz 频率与 SoC (TI DM814X) UART 通信。 和115200波特率、在我的应力测试中、当我在中断引脚上提供 extern 中断时、我看到了一段时间。

    我的 MSP Hang (非常罕见)。 但它是发生的。

    代码:

    #pragma vector=port2_vector
    _interrupt void Port_2 (void)

       IF (P2IFG 和 BIT5)
       {
          P2IFG &=~BIT4;                   // P2.5 IFG 被清除
          P2IE &=~BIT4;                   //禁用 P2.5中断
       }

    TA1CCTL0 = CCIE;                             //启用计时器 ISR 以处理此事件
    TA1CCR0 = Timer1_DURAY_10m;
     TA1CTL  = tassel_2 + ID_3 + MC_1 + TACLR;

    //在我的 Timer1 ISR 中


    #pragma vector=Timer1_A0_vector
    _interrupt void Timer_A1 (void)

    IF (P2IES 和 BIT5)

                如果(!(PORT5和 BIT5))
                {
                
                   P2IES ^=(BIT5);                   //现在我们需要更改 IES 位来检测相反事件。
                   P2IE |= BIT5;                   // P2.5中断被启用
                }
                其他
                   P2IE |= BIT5;                   // P2.5中断被启用
             }
             //如果检测到0,即“低”->“高”
             否则(!(P2IES 和 BIT5))
             {
                IF (IGNDET_PORT 和 IGNDET_PIN)
                {
                   P2IES ^=(BIT5);                   //现在我们需要更改 IES 位来检测相反事件。
                   P2IE |= BIT5;                   // P2.5中断被启用
                }
                其他
                   P2IE |= BIT5;                   // P2.5中断被启用
             }
          TA1CCTL0 &=~CCIE;                             //中断被禁用
          TA1CTL =  tassel_2 + ID_3+ MC_0 + TACLR;          // SMCLK、上行模式、清除 TAR

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    代码究竟在哪里卡住或挂起? 您尚未共享任何 USCI/UART 代码、问题可能是由于定时器和 USCI ISR 之间存在优先级冲突。 您是否在运行期间输入了任何 LPM? 仍然需要更多的调试工作。

    此致、
    Ryan