私はArduino Leonardoを持っていて、シリアルto USBコンバータとして使用しようとしています。 Serial1
には、数字に終わる文字列があります。この番号は、私はUSB経由でPCに接続しようとしています。それは非常にうまく動作しますが、私は最後に'\n'
が必要です。私がKeyboard.println
またはKeyboard.write
という行で試してみると、予想される数のスプリットされたさまざまな行が得られます。文字列に改行を追加できません
#include <Keyboard.h>
String myEAN ="";
const int myPuffergrosse = 50;
char serialBuffer[myPuffergrosse];
void setup() {
Keyboard.begin();
Serial1.begin(9600);
delay(1000);
}
String getEAN (char *stringWithInt)
// returns a number from the string (positive numbers only!)
{
char *tail;
// skip non-digits
while ((!isdigit (*stringWithInt))&&(*stringWithInt!=0)) stringWithInt++;
return(stringWithInt);
}
void loop() {
// Puffer mit Nullbytes fuellen und dadurch loeschen
memset(serialBuffer,0,sizeof(myPuffergrosse));
if (Serial1.available()) {
int incount = 0;
while (Serial1.available()) {
serialBuffer[incount++] = Serial1.read();
}
serialBuffer[incount] = '\0'; // puts an end on the string
myEAN=getEAN(serialBuffer);
//Keyboard.write(0x0d); // that's a CR
//Keyboard.write(0x0a); // that's a LF
}
}
キーボードは文字ではなくキーを送信しています。ライブラリは改行文字を 'Enter'キーに変換するだけです。 –
ようこそスタックオーバーフロー!より多くの質問をする前に、[どうすれば良い質問をしますか?](http://stackoverflow.com/help/how-to-ask)をお読みください。 –
最後の文字を 'null'に設定しているのはなぜですか?' \ 0'あなたはそれを正しく認識していますか?これは '\ n'の前に' \ n'を置く必要がない文字列を区切ります。 –