Arduino 精要
来自Jack's Lab
(版本间的差异)
(→精华) |
(→资源) |
||
| 第125行: | 第125行: | ||
* spi flash: http://forum.arduino.cc/index.php?topic=178462.0 | * spi flash: http://forum.arduino.cc/index.php?topic=178462.0 | ||
* http://www.avrfreaks.net/forum/winbond-spi-flash-library-avr-arduino-written-c | * http://www.avrfreaks.net/forum/winbond-spi-flash-library-avr-arduino-written-c | ||
| + | |||
| + | * avr-libc user manual: http://www.nongnu.org/avr-libc/user-manual/modules.html | ||
<br><br> | <br><br> | ||
<br><br> | <br><br> | ||
2015年5月11日 (一) 08:43的版本
目录 |
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;
}
}
}
6 资源
- http://www.robopeak.com/blog/?p=107
- spi flash: http://forum.arduino.cc/index.php?topic=178462.0
- http://www.avrfreaks.net/forum/winbond-spi-flash-library-avr-arduino-written-c
- avr-libc user manual: http://www.nongnu.org/avr-libc/user-manual/modules.html