下午好...
我使用的是连接到 PC 的 MSP430FR2355开发板。 在 PC 端使用 RealTerm ...
我可以将波特率设置为19200和9600、并且都可以正常工作、但如果我将其设置为高于19200、我将得到错误的字符。 我已经验证了以下寄存器 是否按照用户指南设置为高于19.2的多个波特率
1. smclk 8MHz (在 P1.0上验证)、也验证了在 UART 控制寄存器设置中使用 SMCLK
2.还对照用户手册设置表22.5进行了验证: UCOS16、UCBR、UCBRF、UCBRS……
3. 已验证 RealTerm 是否设置为正确的波特。
ISR 开头的断点会验证 ISR 前端是否存在 RXBUFFER 错误、这使我认为设置中缺少什么??
有人对我可能遗漏的内容有什么想法、也有什么值得尝试的、因为我都不知道为什么我不能更快地走? (代码(在 main 中)除了 LPM3之外什么也不做(我在 LPM0中看不到任何改进)。 它等待 UART 字符进入、然后运行。
ISR 非常简单(如果字符停止、ISR 内部会布设超时)
case USCI_UART_UCRXIFG: buffer[mssgLength] = UCA1RXBUF; mssgLength++; if (monitor == 0) TimerCC_Delay(TIMER0, CC_ZERO, ONE_SECOND); monitor = 1; if (UCA1RXBUF == 0x0D) { mssgLength--; ISR.UARTmssgRcvdFlag = T; LPM3_EXIT; } break;
谢谢