0

次のコードがあります

void loop() {
  String outMessage = "";  // String to hold input

  while (Serial.available() > 0) {  // check if at least one char is available
    char inChar = Serial.read();
    outMessage.concat(inChar);  // add Chars to outMessage (concatenate)
  }

  if (outMessage != "") {
    Serial.println("Sent:  " + outMessage); // see in Serial Monitor
    Serial1.write(outMessage); // Send to the other Arduino
  }

共通のC言語で書きたいと思っています。

バージョン 0019 のコアの一部である Arduino String クラスを使用すると、文字配列よりも複雑な方法でテキスト文字列を使用および操作できます。

プログラミングに最適な方法がわかりません。私が知っている唯一のことは、それStringが多くのメモリを必要とすることです。何か提案はありますか?

4

2 に答える 2

2

「Arduino言語」というものはありません。Arduino (内部の AVR ではなく) は、C、C++、またはアセンブラーを使用してプログラムされており、Arduino コア ライブラリは、いくつかの C 関数 (AVR-libc と共に) と一般的なタスク用の C++ クラスを提供します。ここで実際にやろうとしているのは、コードを C++ から C に変換することです。

具体的には、C では、文字列は の 0 で終わる配列charなので、次のようにすることができます。

char welcome[] = "Hello world!";

モアー...

于 2013-05-10T18:39:16.687 に答える
0

難しすぎてはいけません。私は char 配列を扱うのが大好きです。実際にはまったく難しいことではないからです。ただし、2 つの char 配列を連結するには、それらのサイズを知る必要があり、最初の char 配列 + 2 番目の char 配列のサイズである 3 番目のバッファーを作成する必要があります。これに関する唯一の問題は、サイズを見つけることです。これは単純な構造体で行うことができます:

 typedef struct String{
    int size;
    char * chararray;

 }String;

次に、chararray をそのサイズで malloc し、整数値を入力する必要があります。

その後の残りは非常に簡単です。

于 2013-05-10T18:39:34.557 に答える