我在手机上的终端和连接到微控制器的蓝牙模块(pic18f)之间进行传输和接收。
我设置了一个4的数组char input[4] = ""
来存储来自终端的用户输入。函数getsUSART(input,4)
将输入放在那里。
问题是,当我检查输入内容时,我发现这是' ABC / UN'当我在终端输入ABC时。 / UN是逃脱序列吗?如果是这样,它的关键是什么?
此外,如果我想将输入与字符串进行比较,请说明字符串是'嘿嘿'
我会char str1[4] = "hey/UN"
然后strcmp(input, str1) == 0
吗?
编辑:
所以可以在这里访问编译器库(USART),第66页我相信:http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_C18_Libraries_51297f.pdf
这是相关代码,仅用于获取输入并放置null:
char input[4] = "";
while(BusyUSART());
while (!DataRdyUSART());
getsUSART(input, 4); //Get the input.
// NULL terminate the string for putsUSART call.
input[4] = '/0';
putrsUSART("Input:");
putsUSART(input);
当我输入[4] =' / 0'时,我试图将其终止,如果它没有终止,我在这里做错了吗?
答案 0 :(得分:0)
您忘记了从0开始的C计数。
所以在你的例子中:
input[0] = 'A'
input[1] = 'B'
input[2] = 'C'
input[3] = some old byte of data
input[4] = '\0'