小弟 编译不过去啊, 请大侠指教
fairsky 发表于 2013-9-6 17:57
请我的板子怎么写入值后怎么只能读取一次呢??后面就变成了0.怎么回事?
Serialread(),函数在读完数据之后,会把数据读完的数据删除。所以就没有数据了。你可以试试Serial.peek(),这个函数读完之后还保留数据。
真的是读取的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);
}
请问EEPROM_read与EEPROM.read有什么不一样?谢谢.
楼主,前辈在吗?我申请加群了,可以同意一下不
:),有问题请教