stm32 Flash读写独立函数[库函数]
头文件:
#ifndef __BSP_FLASH_H
#define __BSP_FLASH_H
#include "stm32f10x.h" typedef enum {
FLASH_WRITE_OK = ,
FLASH_WRIKE_NO = ,
FLASH_READ_OK = ,
FLASH_READ_NO =
}FLASH_FLAG ; extern unsigned char FLASH_WRITE(unsigned short int * memory_data);
extern unsigned char FLASH_READ(unsigned short int * memory_data,unsigned short int n); #endif /* __LED_H */
读写函数:
#include "bsp_flash.h" FLASH_FLAG FLASH_STATUS;
static u32 count = ;
/**---------------------------------------------------------------------------------
* @brief FLASH写入必不可少步骤
* @param 输入数据起始地址
* @retval 函数有无执行完毕
--------------------------------------------------------------------------------*/ unsigned char FLASH_WRITE(unsigned short int * memory_data)
{
static int t;
count = ;
/*Enables or disables the Internal High Speed oscillator (HSI).*/
RCC_HSICmd(ENABLE);
/*打开FLASH可擦除控制器*/
FLASH_Unlock();
/*将flash三个标志位全清*/
FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);
FLASH_ErasePage(0x8002000);
t = sizeof((const char *)memory_data);
while(count <= t)
{
/*flash 为一个字节存储,16位数据必须地址加2*/
FLASH_ProgramHalfWord((0x8002000 +count*),*(memory_data+count));
count++;
if(count > t)
{
FLASH_STATUS = FLASH_WRIKE_NO;
return FLASH_STATUS;
}
}
/* Locks the FLASH Program Erase Controller.*/
FLASH_Lock();
RCC_HSICmd(DISABLE);
FLASH_STATUS = FLASH_WRITE_OK;
return FLASH_STATUS;
} /**---------------------------------------------------------------------------------
* @brief FLASH读出函数
* @param memory_data:输出存放地址,n 输出个数
* @retval 函数有无执行完毕
--------------------------------------------------------------------------------*/
unsigned char FLASH_READ(unsigned short int * memory_data,unsigned short int n)
{
count = ;
while(count < n)
{
*(memory_data+count) = *(u16 *)(0x8002000 + count*);
printf("\r %d \r",*(memory_data+count)); //读取
count++;
if(count > n)
{
FLASH_STATUS = FLASH_READ_NO;
return FLASH_STATUS;
}
}
//FLASH_ErasePage(0x8002000);
FLASH_STATUS = FLASH_READ_OK;
return FLASH_STATUS;
} /*********************************************END OF FILE**********************/
stm32 Flash读写独立函数[库函数]的更多相关文章
- STM32 对内部FLASH读写接口函数(转)
源:STM32 对内部FLASH读写接口函数 因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. ...
- stm32——Flash读写
stm32——Flash读写 一.Flash简介 通过对stm32内部的flash的读写可以实现对stm32的编程操作. stm32的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP( ...
- stm32 Flash读写[库函数]
stm32 的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP特性使得开发人员对stm32可以警醒调试开发,可以通过JTAG和SWD接口对stm32进行程序烧写:支持IAP特性使得开发 ...
- STM32 对内部FLASH读写接口函数
因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. 原理:先要把整页FLASH的内容搬到RAM中 ...
- 野火STM32 Flash&sd卡模拟U盘
在USB库文件mass_mal.c中添加对flash和sd读写的函数,USB库调用这些函数从而实现模拟U盘的功能 //mass_mal.c /* Includes ------------------ ...
- [nRF51822] 6、基于nRF51822平台的flash读写研究
前言 本文重点介绍flash的数据存取特性.flash的内存划分.一个简单的存取图片的内存管理方式,以及对flash写前删的时间.删后读的时间.写后读的时间进行测量的一个小实验.目的在于更全面了解fl ...
- STM32 Flash 永久用户数据空间
/********************************************************************************* * STM32 Flash 永久用 ...
- u-boot分析(九)----nand flash初始化|nand flash读写分析
u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们 ...
- 关于STM32 Flash的一些问题
注:本人感觉是STM32 Flash本身的问题. 最近做STM32的远程升级,保存到Flash里面,用于记录更新状态的信息总是无故的清理掉 最终测试发现 STM32的 Flash 擦除操作 并不一定会 ...
随机推荐
- Shell 将两个文件按列合并
file1. 1 2 2 3 3 4 4 5 5 6 file2. a b b c c d d e e f 需要把file2的第二列合并到file1,使File1并成三列. 第一种方法:paste p ...
- 使用servlet3.0提供的API来进行文件的上传操作
servlet 3.0针对文件上传做了一些优化,提供了一些更加人性化的API可以直接在request中的到文件的名称.文件size,MIME类型,以及用InputStream表示的文件流的信息 @Re ...
- oracle如何四舍五入?
转自:http://www.jb51.net/article/84924.htm 取整(向下取整): 复制代码代码如下: select floor(5.534) from dual;select tr ...
- windows系统常用软件及配置介绍
常用工具 ,,,, 开发工具 ,,, 快捷键 ... 等等 vvv 等等
- CHECKSUM比较两表字段值差异
CHECKSUM 返回在表的行上或在表达式列表上计算的校验值.CHECKSUM 用于生成哈希索引. 语法 CHECKSUM ( * | expression [ ,...n ] ) 参数 * 指定在表 ...
- eclipse/myeclipse 中的一些常用的快捷键
一.eclipse 中的一些常用的快捷键 Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率. Eclipse中有如下一些和编辑相关的快捷键. 1. [ALT+/] ...
- pta 习题集5-17 家谱处理
人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究.实验中,使用计算机处理家谱.为了实现这个目的,研究人员将家谱转换为文本文件.下面为家谱文本文件的实例: John Robert F ...
- poj1039 Pipe【计算几何】
含[求直线交点].[判断直线与线段相交]模板 Pipe Time Limit: 1000MS Memory Limit: 10000K Total Submissions:11940 Ac ...
- AJAX.basic
之前在项目中使用ajax都是通过jQuery的Ajax API来进行的,今天试了一下通过基本的JavaScript来进行ajax请求,将代码记录下来: jsp 页面 <%@ page pageE ...
- 设计模式之——Memento模式
Memento模式即快照模式,就是在某一时刻,设定一个状态,在后面随时可以返回到当前状态的模式. 我们拿一个闯关游戏作为举例,一共有十关,每闯一关,玩家所持金额增加一百,而闯关失败就扣一百.初始时,给 ...