Arduino 精要
来自Jack's Lab
(版本间的差异)
(→AT CMD) |
(→Software Serial) |
||
第52行: | 第52行: | ||
=== Software Serial === | === Software Serial === | ||
+ | |||
+ | <source lang=java> | ||
+ | #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()); | ||
+ | } | ||
+ | </source> | ||
<br><br> | <br><br> |
2014年11月9日 (日) 01:30的版本
目录 |
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; } } }