野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13737|回复: 4

如何将浮点数写入Flash中。。。。

[复制链接]
发表于 2016-5-6 21:42:52 | 显示全部楼层 |阅读模式
火哥,由于写Flash每次写入都是16位或者32无符号数,请问给stm32内置flash中怎么读写浮点型数据啊
回复

使用道具 举报

发表于 2016-5-7 08:54:43 | 显示全部楼层
参考光盘里的例程:

3-程序源码.rar\3-程序源码\2-裸机例程\7-SPI—外部FLASH-W25Q64\W25Q64 存储整数|W25Q64 存储小数
回复 支持 反对

使用道具 举报

发表于 2016-5-7 09:43:08 | 显示全部楼层
不管是小数还是整数,最终写到FLASH的都是二进制的数,在FLASH看来,你们都是0和1,具体是什么数FLASH根本不知道,那么这些0和1到底是什么数呢?就看我们怎么去解释它而已?

比如: 1000 0001,如果这个数定义的时候是unsigned int的话,那它就是0X81,如果是负数,那么最高位的1就表示符号位了,那它就表示-1了,可这两个数存储在FLASH都是0和1,没有任何的区别,就是看你怎么去解释它了。

再来个极端的例子,两个gay(女女或者男男)在一起,对方都称对方为老婆或者老公,可正常人看来,这不还是基佬嘛,哪里来的老婆老公,这就是我们怎么去看待问题了,要是以他们为参照物,有问题的就是我们。
回复 支持 反对

使用道具 举报

发表于 2017-6-22 08:39:04 | 显示全部楼层
fire 发表于 2016-5-7 09:43
不管是小数还是整数,最终写到FLASH的都是二进制的数,在FLASH看来,你们都是0和1,具体是什么数FLASH根本 ...

刚看了EEPROM中写入浮点数的视频,比如写入0.1这个数,0.1对应的16进制是0x9A9999999999B93F,对应的二进制是‭1001101010011001100110011001100110011001100110011011100100111111,写入之后,我读取的也是一样的,但是我怎么才能把他当成浮点数看呢。
/*读取小数数据*/
        I2C_EE_BufferRead((void*)double_buffer, DOUBLE_ADDR, sizeof(double_buffer));
这段程序也没做特殊的处理呀
double_buffer[0] = 0x9A9999999999B93F;
我自己写的程序在printf就不行
回复 支持 反对

使用道具 举报

发表于 2017-6-22 17:17:46 | 显示全部楼层
最简单的做法是用 联合体, 联合体内部定义4字节数组和一个float!
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-16 05:38 , Processed in 0.025761 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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