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