主题中讨论的其他器件:CC3220SF
工具/软件:Code Composer Studio
您好支持者!
我通过 UART 将 CC3220sf_launchxl 接口与 CPU 配合使用。 当我发送数据包时,从 CPU(数据接收丢失)接收数据 UART。
我希望从 CPU 接收数据并同时发送 TCP/IP 数据包、但数据 UART 仍然正确。
1个线程中的 UART 和 TCP/IP 进程。
我想自定义库。 我可以这么做吗?
谢谢你。
VU。
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.
工具/软件:Code Composer Studio
您好支持者!
我通过 UART 将 CC3220sf_launchxl 接口与 CPU 配合使用。 当我发送数据包时,从 CPU(数据接收丢失)接收数据 UART。
我希望从 CPU 接收数据并同时发送 TCP/IP 数据包、但数据 UART 仍然正确。
1个线程中的 UART 和 TCP/IP 进程。
我想自定义库。 我可以这么做吗?
谢谢你。
VU。
您好 Paul。
我的代码相同:
/*创建 UART */
UART_PARAMS_INIT (uartParams1);
uartParams1.writeMode = UART_MODE_CALLBACK;
uartParams1.readMode = UART_MODE_CALLACK;
uartParams1.writeDataMode = UART_DATA_BINARY;
uartParams1.readDataMode = UART_DATA_BINARY;
uartParams1.readReturnMode = UART_RETURN_FULL;
uartParams1.readEcho = UART_ECHO_OFF;
uartParams1.budrate = 115200;
uartParams1.readCallback = UART_READ_CALLBACK;
uartParams1.writeCallback = UART_write_callback;
//uartParams1.readTimeout = 10;
uart1 = UART_open (CONFIG_UART_1、&uartParams1);
if (uart1 == NULL){
Display_printf (display、0、0、"UART Initialize Fail!\n");
while (1);
}否则{
display_printf (display、0、0、"UART initialized!\n"\});
}
UART_READ (uart1、&DATA_UART、1);
我将其称为 func
/*创建 UART */
UART_PARAMS_INIT (uartParams1);
uartParams1.writeMode = UART_MODE_CALLBACK;
uartParams1.readMode = UART_MODE_CALLACK;
uartParams1.writeDataMode = UART_DATA_BINARY;
uartParams1.readDataMode = UART_DATA_BINARY;
uartParams1.readReturnMode = UART_RETURN_FULL;
uartParams1.readEcho = UART_ECHO_OFF;
uartParams1.budrate = 115200;
uartParams1.readCallback = UART_READ_CALLBACK;
uartParams1.writeCallback = UART_write_callback;
//uartParams1.readTimeout = 10;
uart1 = UART_open (CONFIG_UART_1、&uartParams1);
if (uart1 == NULL){
Display_printf (display、0、0、"UART Initialize Fail!\n");
while (1);
}否则{
display_printf (display、0、0、"UART initialized!\n"\});
}
UART_READ (uart1、&DATA_UART、1);
*/结束 init*/
我在 while (1)中再次调用 UART_read{};
数据接收未满。
VU。
嘿 Vu、
很抱歉耽误你的回答。
根据您提供的代码、您会看到您从 UART 读取的数据每次一个字节。 我假设您还实现了 UART_READ_CALLBACY()函数,该函数在每次写入数据时处理从缓冲区读取此字节数据的操作。 但是、当您说您没有收到完整数据时、我有点困惑。 传输数据时、您是否缺少一些随机字节、或者是否有一个完全停止接收数据的点?
我看到可能会导致问题的一件事是您在 while (1)循环中调用 UART_read()。 如果您有任何类型的代码在 while (1)循环中延迟或休眠、这可能会延迟下一个读取调用、从而导致随机数据字节丢失。 相反,请尝试将其从 while 循环中取出,并将其放在 UART_READ_CALLY()函数的末尾。 这样、在处理数据缓冲区后、您可以立即开始从 UART 读取数据。
谢谢、
Paul