极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: 弘毅

Arduino入门教程--第二十五课--EEPROM的读写与获取串口数据流

[复制链接]
发表于 2016-11-26 15:14:08 | 显示全部楼层
小弟 编译不过去啊, 请大侠指教

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2017-1-9 10:21:03 | 显示全部楼层
fairsky 发表于 2013-9-6 17:57
请我的板子怎么写入值后怎么只能读取一次呢??后面就变成了0.怎么回事?

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

使用道具 举报

发表于 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);
}
回复 支持 反对

使用道具 举报

发表于 2017-11-6 00:58:57 | 显示全部楼层
请问EEPROM_read与EEPROM.read有什么不一样?谢谢.
回复 支持 反对

使用道具 举报

发表于 2018-10-7 17:27:27 | 显示全部楼层
楼主,前辈在吗?我申请加群了,可以同意一下不
,有问题请教
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 02:53 , Processed in 0.045331 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表