重工电子论坛

标题: 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