使用Arduino将输入字符串分成列表

时间:2015-12-30 01:14:37

标签: list split arduino read-eval-print-loop arduino-uno

我正在为Arduino开发一个非常基本的REPL。要获取参数,我需要将<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5"; if ($result = mysqli_query($link, $query)) { /* Get field information for all fields */ while ($finfo = mysqli_fetch_field($result)) { printf("Name: %s\n", $finfo->name); printf("Table: %s\n", $finfo->table); printf("max. Len: %d\n", $finfo->max_length); printf("Flags: %d\n", $finfo->flags); printf("Type: %d\n\n", $finfo->type); } mysqli_free_result($result); } /* close connection */ mysqli_close($link); ?> 分成几部分,使用空格分隔。我不知道如何存储结果。例如,String会产生一个列表:pinmode 1 input。 1必须是"pinmode", 1, "input"。我查看了其他Stack Overflow答案,但它们需要int输入。

1 个答案:

答案 0 :(得分:0)

请勿使用String。这就是所有其他答案都使用char的原因,通常称为C字符串(小写“s”)。 String使用“动态内存”(即堆),这在这个小型微控制器上是坏的。它还会为您的程序大小增加1.6k。

最简单的做法是将每个收到的字符保存到char数组中,直到得到换行符'n。一定要在最后添加NUL字符,并确保您的数组大小合适。

然后使用C字符串库处理数组:strcmp,strtoul,strtok,isdigit等。了解这些例程将真正得到回报,因为它可以使您的程序保持小而快。 C字符串也很容易打印出来。

再次,远离String。这对初学者很有吸引力,因为它很容易理解。但是,它有许多微妙,复杂和不可预测的方法使您的嵌入式程序失败。这不是具有大量RAM和硬盘驱动器上的交换文件的PC。