求::ip地址可以用“共用体”保存到EEPROM中吗?
请教各位大神,我现在碰到一个问题,IP地址如:192.168.1.1这样的数据用什么方法可以写入arduino的EEPROM中,共用体可以吗?如果可以怎么操作????? 以前用字符串:Q一点都不优雅
String reportString = packetBuffer;//“001:192168110100”
int spacePosition = reportString.indexOf(':');//截取字符串
char i=reportString.charAt(spacePosition + 1) +reportString.charAt(spacePosition + 2) +reportString.charAt(spacePosition + 3) ;
int e=int(i);
char j=reportString.charAt(spacePosition + 4) +reportString.charAt(spacePosition + 5) +reportString.charAt(spacePosition + 6) ;
int f=int(j);
char k=reportString.charAt(spacePosition + 7) +reportString.charAt(spacePosition + 8) +reportString.charAt(spacePosition + 9) ;
int g=int(k);
char l=reportString.charAt(spacePosition + 10) +reportString.charAt(spacePosition + 11) +reportString.charAt(spacePosition + 12) ;
int h=int(l);
EEPROM.write(0,e);
EEPROM.write(1,f);
EEPROM.write(2,g);
EEPROM.write(3,h);
我看不懂啊,能解释一下吗
IP每段都是0~255啊刚好一字节,用4个字节byte格式保存即可
用楼上的写法:
EEPROM.write(0,192);
EEPROM.write(1,168);
EEPROM.write(2,1);
EEPROM.write(3,1);
本帖最后由 darkorigin 于 2018-2-17 10:43 编辑
直接每一位一个字节即可。。。(其实IPV4设计初衷就是4个用字节给全球分配IP,再1个字节存储子网掩码)
楼上鸟版正解~~~
话说楼主,子网掩码别忘记了 本帖最后由 darkorigin 于 2018-2-17 10:45 编辑
还有,不叫“共用体”,叫做全局变量.
IP地址存储的比较合理的方式就是一个一维数组 5个单字节整形单元
INT IP={192,168,1,122,24};
其中前四位是IP,后面的24是指子网掩码
谢谢楼上各位老大的正解,我明白了,再次谢谢!!!!!
页:
[1]