我正在尝试通过 UART 发送一些字符。 当我在没有调试器的情况下运行程序时、消息的最后一个字符到达 PC、但如果我逐步执行该操作、则所有字符都位于目标上。 我的代码非常简单:
void WiFiPrint (char *msg)
{
uint32_t i;
状态= 0;
memset (niz、0、sizeof (uint8_t)*15);
for (i=0;i < strlen (msg);i++)
{
niz[i]= msg[i];
while (((UCA2IFG 和 EUSCI_A_UART_TRANSITE_INTERRUPT_FLAG));
MAP_UART_transmitData (EUSCI_A2_base、msg[i]);
}
}
空 EUSCIA2_IRQHandler (空)
{
uint32_t status = MAP_UART_getEnabledInterruptStatus (EUSCI_A2_base);
MAP_UART_clearInterruptFlag (EUSCI_A2_base、status);
如果(!status)
返回;
IF (STATUS & EUSCI_A_UART_Transmit _INTERRUPT)
{
__no_operation();
}
}
在以两种方式执行循环后、数组 niz 填充来自消息的所有字符、因此执行循环。
哪里出了问题?
此致、
Djordje Radovanovic