重工电子论坛
标题:
stm32 flash使用小结
[打印本页]
作者:
张金权-11级电子
时间:
2016-6-6 11:09
标题:
stm32 flash使用小结
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
欢迎光临 重工电子论坛 (http://cqutlab.cn/)
Powered by Discuz! X3.1