OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4468|回复: 14

e2prom中存入负数,,然后再读出,,需要另外写程序判断正负去解析数据吗?

[复制链接]

13

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2019-8-7
在线时间
90 小时
发表于 2020-10-24 11:13:08 来自手机 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

356

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4686
金钱
4686
注册时间
2019-4-30
在线时间
905 小时
发表于 2020-10-24 13:22:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
198
金钱
198
注册时间
2018-5-7
在线时间
44 小时
发表于 2020-10-24 13:44:49 | 显示全部楼层
memcpy就搞定了
回复 支持 反对

使用道具 举报

13

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2019-8-7
在线时间
90 小时
 楼主| 发表于 2020-10-24 14:01:57 来自手机 | 显示全部楼层
nikoladi 发表于 2020-10-24 13:44
memcpy就搞定了

怎么搞?copye2prom的数据到哪里??
回复 支持 反对

使用道具 举报

13

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2019-8-7
在线时间
90 小时
 楼主| 发表于 2020-10-24 15:24:59 来自手机 | 显示全部楼层
有大佬解惑吗?
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-10-24 16:55:30 | 显示全部楼层
写进去时是什么样子,读出来就是什么样子。读出来以后随便你怎么处理。如果存的是正数,你读出来也是正。如果是负数,就要看你读取赋值的数据类型了,不要把有符号数赋值给无符号数。虽然这样写程序也可以跑通,但是无疑会出错。
回复 支持 反对

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2020-10-24 22:56:05 | 显示全部楼层
不需要,对计算机来说,值只知道存0xff,不知道你是-1还是255。指定类型后才有-1或者255.
回复 支持 反对

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-10-25 12:45:52 | 显示全部楼层
不需要的
回复 支持 反对

使用道具 举报

13

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2019-8-7
在线时间
90 小时
 楼主| 发表于 2020-10-27 10:33:59 来自手机 | 显示全部楼层
c2007s 发表于 2020-10-24 16:55
写进去时是什么样子,读出来就是什么样子。读出来以后随便你怎么处理。如果存的是正数,你读出来也是正。如 ...

但是我存入-100,,读取的时候存入了一个浮点数,但是读出的不对,是65436
回复 支持 反对

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2020-10-27 10:43:27 | 显示全部楼层
小花和翠花 发表于 2020-10-27 10:33
但是我存入-100,,读取的时候存入了一个浮点数,但是读出的不对,是65436

你都不做memory map的吗?
先规划好数据存入的类型和地址,再进行存取操作。
你存了一个负数,然后又读出来到一个小数中能不出错吗?
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复 支持 反对

使用道具 举报

13

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2019-8-7
在线时间
90 小时
 楼主| 发表于 2020-10-27 11:38:51 来自手机 | 显示全部楼层
szczyb1314 发表于 2020-10-27 10:43
你都不做memory map的吗?
先规划好数据存入的类型和地址,再进行存取操作。
你存了一个负数,然后又读 ...

有符号的long也不行啊,读出来的都是65436   但是65436就是-100的二进制数,单片机并没有转换
回复 支持 反对

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-10-27 23:01:08 | 显示全部楼层
小花和翠花 发表于 2020-10-27 10:33
但是我存入-100,,读取的时候存入了一个浮点数,但是读出的不对,是65436

EEPROM只负载原汁原味保存数据。你保存的是float还是int它不管的。同样,你读出来以后装到float里还是int里,它也不管的。不管是EEPROM还是RAM里的数值,看你用float来装还是int来装了。不同的容器,结果自然不一样。因为float和int的二进制保存格式根本不一样的。只要你指定类型了,数据就自动转换了,根本不需要你做什么解析。
推荐你去看一下这个帖子,https://blog.csdn.net/bing_ka/article/details/52024449
回复 支持 反对

使用道具 举报

13

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2019-8-7
在线时间
90 小时
 楼主| 发表于 2020-10-30 16:45:51 来自手机 | 显示全部楼层
c2007s 发表于 2020-10-27 23:01
EEPROM只负载原汁原味保存数据。你保存的是float还是int它不管的。同样,你读出来以后装到float里还是int ...

好的,谢谢
回复 支持 反对

使用道具 举报

9

主题

219

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1436
金钱
1436
注册时间
2020-5-12
在线时间
394 小时
发表于 2020-11-4 10:34:10 | 显示全部楼层
举个例子啊
unsigned char a = 255;
char b ;
b = a;

请问 b的值是多少?(-1)
回复 支持 反对

使用道具 举报

6

主题

211

帖子

0

精华

高级会员

Rank: 4

积分
833
金钱
833
注册时间
2019-12-17
在线时间
157 小时
发表于 2020-11-4 11:44:37 | 显示全部楼层
小花和翠花 发表于 2020-10-27 10:33
但是我存入-100,,读取的时候存入了一个浮点数,但是读出的不对,是65436

你存入的时候如果是int型的-100 ,那么你想将他转化为其他变量就需要先按原来的数据类型读取出来然后通过赋值(隐式转换)或者强制转换(显式转换)来达到转换目的。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 12:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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