Other Parts Discussed in Thread: MSP430FR2355
我有一个框架代码、我希望从笔记本电脑接收到我的目标字符。 我打开终端窗口并设置正确的波特率。 我可以传输到终端消息,但当我输入按键时,它们似乎不会出现在终端窗口上(我尝试 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.
Other Parts Discussed in Thread: 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 接收数据。