主题中讨论的其他器件:Energia
工具/软件:TI-RTOS
您好!
我正在努力将多个传感器连接到 TM4C123G 微控制器、并通过 UART 读取数据并将其存储在缓冲器中、然后通过 USB 接口传输相同的数据。 我在通过 UART 读取数据时遇到问题、当我尝试读取并阻止我的下一条语句时、它只返回任何内容。 以下是代码的一个片段、
void echoFxn (UArg arg0、UArg arg1)
{
UART_MULTIPLE_INIT();
while (1)
{
//uart_read (uart1、a、sizeof (a));
// uart_read (uart2、c、sizeof (c));
UART_READ (uart3、b、sizeof (b)));
UART_WRITE (uart3、b、sizeof (b));
}
}
静态空 UART_MULTIPLE_INIT()
{
//创建数据处理关闭的 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 = 115200;
UART = UART_OPEN (Board_UART0、uartParams);
if (UART == NULL){
System_printf ("未打开");
system_flush();
//打开用户 LED
GPIO_WRITE (Board_LED0、Board_LED_ON);
System_abort ("打开 UART 时出错");
}
UART_PARAMS_INIT (uartParams1);
uartParams1.writeDataMode = UART_DATA_BINARY;
uartParams1.readDataMode = UART_DATA_BINARY;
uartParams1.readReturnMode = UART_RETURN_FULL;
uartParams1.readEcho = UART_ECHO_OFF;
uartParams1.budrate = 115200;
uart1 = UART_open (Board_UART1、&uartParams1);
if (uart1 == NULL){
System_printf ("UART1未打开");
system_flush();
//打开用户 LED
GPIO_WRITE (Board_LED0、Board_LED_ON);
System_abort ("打开 UART 时出错");
}
UART_PARAMS_INIT (uartParams2);
uartParams2.writeDataMode = UART_DATA_BINARY;
uartParams2.readDataMode = UART_DATA_BINARY;
uartParams2.readReturnMode = UART_return_full;
uartParams2.readEcho = UART_ECHO_OFF;
uartParams2.budrate = 115200;
uart2 = UART_OPEN (Board_UART2、&uartParams2);
if (uart2 == NULL){
System_printf ("UART2未打开");
system_flush();
//打开用户 LED
GPIO_WRITE (Board_LED0、Board_LED_ON);
System_abort ("打开 UART 时出错");
}
UART_Params_init (uartParams3);
uartParams3.writeDataMode = UART_DATA_BINARY;
uartParams3.readDataMode = UART_DATA_BINARY;
uartParams3.readReturnMode = UART_RETURN_FULL;
//uartParams3.readEcho = UART_ECHO_OFF;
uartParams3.budrate = 115200;
// uartParams.readMode = UART_MODE_CALLBACK;
// uartParams.readCallback = readCallback;
uart3 = UART_OPEN (Board_UART3、&uartParams3);
if (uart3 == NULL){
System_printf ("UART3未打开");
system_flush();
//打开用户 LED
GPIO_WRITE (Board_LED0、Board_LED_ON);
System_abort ("打开 UART 时出错");
}
}
我请求别人帮助我、我至少需要一个 UART 来接收数据、这样我就可以解决其他 UART 接收的问题。