eagle56 发表于 2016-11-26 15:14:08

小弟 编译不过去啊, 请大侠指教

fangli_0525 发表于 2017-1-9 10:21:03

fairsky 发表于 2013-9-6 17:57
请我的板子怎么写入值后怎么只能读取一次呢??后面就变成了0.怎么回事?

Serialread(),函数在读完数据之后,会把数据读完的数据删除。所以就没有数据了。你可以试试Serial.peek(),这个函数读完之后还保留数据。

hesg 发表于 2017-3-2 12:04:17

真的是读取的EPPROM内的值吗?怎么我把 EEPROM_read(0,incomingByte) 这行屏蔽掉,输出的结果还是一样的呢。
或者像下面这样修改后,没有读取到EEPROM内的值,请教答疑,谢谢!

#include <EEPROM.h>
#define EEPROM_write(address, p) {int i = 0; byte *pp = (byte*)&(p);for(; i < sizeof(p); i++) EEPROM.write(address+i, pp);}
#define EEPROM_read(address, p){int i = 0; byte *pp = (byte*)&(p);for(; i < sizeof(p); i++) pp=EEPROM.read(address+i);}
unsigned long incomingByte = 0;   // 定义无符号长整数型变量incomingByte初始值为0
unsigned long X = 0;
void setup() {
Serial.begin(9600);   // 打开串口,设置数据传输速率9600
}
void loop() {
   if (Serial.available() > 0) {
    incomingByte = Serial.parseInt();//读取串口传入的下一个有效整数,把该整数赋值给incomingByte变量
    EEPROM_write(0,incomingByte)   //把incomingByte变量从0地址位开始写入EEPROM
    if (Serial.available() > 0) Serial.parseInt();
   }
//   EEPROM_read(0,incomingByte) //从0地址位开始读取EEPROM,把值写入变量incomingByte
//   Serial.println(incomingByte); //通过串口输出
   EEPROM_read(0,X) //从0地址位开始读取EEPROM,把值写入变量X
   Serial.println(X); //通过串口输出
delay(1000);
}

qfdc 发表于 2017-11-6 00:58:57

请问EEPROM_read与EEPROM.read有什么不一样?谢谢.

晨曦的雨露 发表于 2018-10-7 17:27:27

楼主,前辈在吗?我申请加群了,可以同意一下不
:),有问题请教
页: 1 2 [3]
查看完整版本: Arduino入门教程--第二十五课--EEPROM的读写与获取串口数据流