【发布时间】:2019-05-03 09:56:13
【问题描述】:
我有一个来自 UART 的输入。
uint8_t uartRX_data[UART_RX_BUF_SIZE]="";
我需要将此数据传递给函数。而且,在这个函数中,我想将它与预定义的字符串进行比较,例如:
char RESP_OK[] = "OK";
char RESP_ERROR[] = "ERROR";
char RESP_FAIL[] = "FAIL";
最简单的方法是什么?
编辑:我的问题只是关于数据比较和数据传递给函数。
【问题讨论】:
-
uartRX_data中的数据是否以 NUL ('\0') 字符结尾,或者是否有单独的变量告诉缓冲区中的有效字节数?如果缓冲区没有以 NUL ('\0') 字符终止,它是否有空间添加一个?请edit您的问题添加信息。 -
'uartRX_data' 不是缓冲区的原始数据。我在事件处理程序下解析原始数据以创建 'uartRX_data' 。数据不以 NUL 终止。它只包含字符。
-
那么一个非分隔的字符数组?这个数组是否会包含比您上面列出的 3 个额外的子字符串?
-
请edit您的问题添加此信息。你怎么知道
uartRX_data中有多少个有效字符?是否有包含字符数的变量?缓冲区是否有空间添加 NUL? -
那么
strcmp((const char *)uartRX_data, RESP_OK)等等应该可以工作。