Dans ce didacticiel rapide, nous verrons comment lire les chaînes de saisie utilisateur à partir du moniteur série Arduino ou d'autres terminaux série. Étapes rapides.
serial_buffer_len
qui sera l'entrée utilisateur maximale que vous attendez.Serial.available()
.read_serial_input()
définie par l'utilisateur pour charger le serial_buffer
.//Serial buffer
#define serial_buffer_len 80
char serial_buffer[serial_buffer_len];
String user_input = "";
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0){
if (read_serial_input(Serial.read(), serial_buffer, serial_buffer_len) > 0) {
user_input = String(serial_buffer);
}
Serial.println("serial user input:" +user_input);
}
}
// funtion to read user serial input
int read_serial_input(int read_ch, char *buffer, int len) {
static int pos = 0;
int rpos;
if (read_ch > 0) {
switch (read_ch) {
case '\r': // Ignore CR
break;
case '\n': // Return on new-line
rpos = pos;
pos = 0; // Reset position index ready for next time
return rpos;
default:
if (pos < len-1) {
buffer[pos++] = read_ch;
buffer[pos] = 0;
}
}
}
return 0;
}
Après avoir téléchargé l'exemple de code, ouvrez le moniteur série et saisissez quelque chose comme hello world, puis vous le verrez imprimé sur le moniteur série. Il s'agit d'un extrait de code très utile au cas où vous souhaiteriez saisir des chaînes de l'utilisateur et souhaitez effectuer des actions dessus.