重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 4433|回复: 0
打印 上一主题 下一主题

stm32 flash使用小结

[复制链接]

12

主题

66

帖子

538

积分

高级会员

Rank: 4

积分
538
QQ
跳转到指定楼层
楼主
发表于 2016-6-6 11:09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、当使用stm32开发有数据需要掉电存储时,如果要存的数据量不是特别大(几K到几十K),就可以拿出一部分flash来进行存储,而没必要外接EEPROM,而如果要存储的数据量比较大,外接SD卡是较好的选择;
2、stm32flash F0系列和F1系列的flash空间通常在16K-512K之间,使用stm32flash来存储数据的优点是不需要外接电路,节省驱动程序开发工作量;
3、使用stm32 flash存储,仅需要会调用flash_write和flash_read两个函数就够了,当然还要定义一个读写的起始地址;
4、stm32的flash是分页的,一页通常是1K 或者2K,在使用中最容易出问题的是flash起始地址的定义,因为flash中是按字操作的,而存储单元的最小单位是字节(半字),故起始地址必须是个偶数!!,如#define WRITE_START_ADDR   ((u32)0x08003c00)
5、使用flash时,地址一定不要定义错,如果flash操作起始地址定义在了程序存储区,那么很可能出现一些莫名其妙的问题!因为在操作flash的时候把程序破坏了  计算方式举例:如果使用的单片机是16k的flash大小,flash起始地址是0x08000000,想从15K开始存储数据,0x400代表1K字节,那么起始地址就应该定义为:0x08000000+15*0x400=0x08003c00
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|cqutlab ( 渝ICP备15004556号

GMT+8, 2024-12-22 21:40 , Processed in 2.394586 second(s), 30 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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