Arduino 精要
来自Jack's Lab
(版本间的差异)
(→Software Serial) |
(→AT CMD) |
||
| 第79行: | 第79行: | ||
<source lang=java> | <source lang=java> | ||
| − | String input_str = ""; | + | String input_str = ""; // a string to hold incoming data |
boolean str_over = false; // whether the string is complete | boolean str_over = false; // whether the string is complete | ||
| 第89行: | 第89行: | ||
void loop() { | void loop() { | ||
if (str_over) { | if (str_over) { | ||
| − | / | + | // Identify the CMD and processing |
input_str = ""; // clear the string buffer | input_str = ""; // clear the string buffer | ||
2014年11月11日 (二) 07:37的版本
目录 |
1 总览
2 扩展
3 应用
4 精华
5 糖豆
5.1 float2str
String(NUMBER, SCALE); String(3.141592,5); # "3.14159"
5.2 Software Serial
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup()
{
// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
mySerial.println("Hello, world?");
}
void loop()
{
if (mySerial.available())
mySerial.write(Serial.read());
}
5.3 AT CMD
SerialEvent() is called after a loop(), if there is serial data in the buffer.
String input_str = ""; // a string to hold incoming data
boolean str_over = false; // whether the string is complete
void setup() {
Serial.begin(9600);
input_str.reserve(200); // reserve 200 bytes for the inputString:
}
void loop() {
if (str_over) {
// Identify the CMD and processing
input_str = ""; // clear the string buffer
str_over = false;
}
}
/*
* SerialEvent occurs whenever a new data comes in the hardware serial RX.
* This routine is run between each time loop() runs, so using delay inside
* loop can delay response. Multiple bytes of data may be available.
*/
void serialEvent() {
while (Serial.available()) {
char in = (char)Serial.read();
input_str += in;
if (in == '\n') { // read a line into string buffer
str_over = true;
}
}
}