工具/软件:TI-RTOS
我是第一次使用 TI-RTOS uartecho 示例、MSP432 Launchpad 和 CCS、并尝试使 uartecho 示例正常工作。
我的问题是、UART_WRITE 在被调用后似乎挂起。 它输出第一个字符、然后从不在程序中继续。 例如、它应该首先输出"回显字符"、但绝不会超过第一个"E"。 我有一条线路在写入命令之后点亮 LED。 它从不会打开、因此 UART_WRITE 卡在某个位置。
如果我注释掉 UART_WRITE (UART、echoPrompt、sizeof (echoPrompt));行、那么我可以恰好回显一个字符。 因此 UART_READ 正常工作、但 UART_WRITE 肯定会挂起。
我已使用示波器确认我的通信线路正常工作。 UART 仅发送一个字符、然后卡在。 在下面的代码中、LED1永远不会打开。
我的代码没有从资源浏览器中的示例中进行太多修改。
有什么建议吗?
#include #include #include /*驱动程序头文件*/ #include #include /*示例/板头文件*/ #include "Board.h" /* === mainThread ==== // void * mainThread (void * arg0) { 特性 输入; const char echoPrompt[]="回显字符:\r\n"; UART_Handle UART; UART_Params uartParams; /*调用驱动程序初始化函数*/ GPIO_init(); UART_INIT(); /*打开用户 LED *// GPIO_write (Board_GPIO_LED0、Board_GPIO_LED_ON); //GPIO_WRITE (Board_GPIO_LED1、Board_GPIO_LED_ON); /*创建一个数据处理关闭的 UART。 * UART_PARAMS_INIT (uartParams); uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.readReturnMode = UART_return_full; uartParams.readEcho = UART_ECHO_OFF; uartParams.baudrate = 9600; UART = UART_OPEN (Board_UART0、uartParams); if (UART == NULL){ /* UART_open()失败*/ while (1); } // UART_WRITE (UART、hello、5); UART_WRITE (UART、echoPrompt、sizeof (echoPrompt)); //GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON); /*循环永久回显*/ while (1){ UART_READ (UART、INPUT、1); GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON); UART_WRITE (UART、INPUT、1); GPIO_WRITE (Board_GPIO_LED1、Board_GPIO_LED_ON); } }