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.

[参考译文] MSP430FR2355:正在尝试从终端向目标发送字符?

Guru**** 2519760 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1108648/msp430fr2355-trying-to-send-characters-to-target-from-terminal

器件型号:MSP430FR2355

我有一个框架代码、我希望从笔记本电脑接收到我的目标字符。  我打开终端窗口并设置正确的波特率。  我可以传输到终端消息,但当我输入按键时,它们似乎不会出现在终端窗口上(我尝试 Putty 时有相同的东西)...有人能告诉我我在这里发生了什么错误吗?

谢谢

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

    它听起来好像您的目标没有回显它接收到的字符。 终端不打印您键入的内容是标准的、但通常有一些设置可用于执行此操作。

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

    我在终端上找到了切换开关、但我从未进入 RCVR ISR?  (参见 下面的代码) ...波特率为19200

    我使用的是 MSP430FR2355开发板, 根据原理图,我在 J101上的 RXD 和 TXD 上有跳线....我在 SBWTDIO 和 SBWTCK 上也有跳线。

        while(1)
        {
            if (ISR.mssgRcvdFlag)
            {
                ser_output(&buffer[i]);
                if (i >= 9)
                    i = 0;
                ISR.mssgRcvdFlag = F;
            }
            __bis_SR_register(LPM3_bits|GIE);             // Enter LPM3
        }
    }
    
    void ser_output(__vo char *str)
    {
        while (!(UCA1IFG & UCTXIFG));
            UCA1TXBUF = *str;
    }
    
    #pragma vector=USCI_A1_VECTOR
    __interrupt void COMM_ISR(void)
    {
        switch(__even_in_range(UCA1IV, USCI_UART_UCTXCPTIFG))
        {
          case USCI_NONE: break;
          case USCI_UART_UCRXIFG:
              buffer[i] = UCA1RXBUF;
              i++;
              ISR.mssgRcvdFlag = T;
              break;
          case USCI_UART_UCTXIFG:  break;
          case USCI_UART_UCSTTIFG: break;
          case USCI_UART_UCTXCPTIFG: break;
        }
    }
    

    在 while 之前调用 UART 函数、以初始化为19200波特(正如我说过的、TX 到终端正常工作)...see init 代码如下:

    void UART_Init(void)
    {
        P4SEL0 |= BIT3 | BIT4;
        UCA1CTLW0 |= UCSWRST;
        UCA1CTLW0 |= UCSSEL__SMCLK;
        UCA1BR0 = 52;
        UCA1BR1 = 0x00;
        UCA1MCTLW = 0x4900 | UCOS16 | UCBRF_1;
        UCA1CTLW0 &= ~UCSWRST;
    
        UCA1IFG &= ~UCRXIFG;
        UCA1IE |= UCRXIE;
    
    }
    

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

    您好、Steve、

    至于您的第一个问题:出现在终端窗口中的击键可能只是更改终端窗口上的设置。  

    第二件事、永不进入接收 ISR:当查看 UART 初始化函数时、您会发现设置 P4SEL0寄存器的位3和位4来利用引脚4.3和4.4的辅助功能。 引脚4.3的次级功能是 UCA1TXD、它可以正确地启动 UART 连接、但引脚4.4的次级功能是 UCB1STE、用于 SPI 接口。 为了利用引脚4.2 UCA1RXD 的辅助功能、请尝试设置位2、而不是设置位4。 这将允许您的 MSP430FR2355通过 UART 接收数据。

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

    谢谢迪伦...我也注意到了!!  它现在可以工作了