引文:
之前学51的时候,对数据存储没什么概念,主要是做过的东西对这方面没这个需求自己也没往这方面考虑过。而对于STM32来说,当程序写大特别是跑OS之后数据存储就变成了不得不考虑的事情,那么我们现在就来聊聊数据存储。
假如我们在程序中定义了这么五个变量:
int Frequency = 8;
int Speed = 5;
int Power = 60;
int Voltage = 12;
int Temperature = 25;
这五个变量在程序运行的时候是可以通过按键或者其它方式人为的改变它们的值的,现在要求在人为改变它们之后对它们进行保存,那么这个时候我们该怎么去编写程序呢。
如果是51单片机的的话,在单片机不支持IAP技术的条件下,我们一般会考虑外扩,但是在STM32上,我们可以把这五个变量保存到Flash ROM里面,在有数据变动的时候再进行重新擦写就可以了,但保存到Flash ROM中会有一定的限制,那就是它不允许我们进行字节擦除,如果我们想要对其中的某个数据进行修改的话只能先把里面的数据都取出来,修改好之后把Flash ROM整页擦除再把数据写进去。这是因为Flash ROM在没有写入任何数据之前里面都是‘1’,我们写入数据只需要把相应的‘1’写成‘0’就可以了,但是它是不允许也不能把‘0’再写成‘1’的,这就是为什么Flash ROM不支持字节擦写的原因。
那么好,确定用Flash ROM来存储数据之后,我们下面开始数据改以什么样的形式进行存储。对于上面五个变量可不可以直接这样存放进去呢
.......
文章评论(0条评论)
登录后参与讨论