STM32 FLASH的写入与读取
STM32 FLASH的写入与读取 解释下a = (u16)(add);
u16 FLASH_R(u32 add){ //参数1:FLASH地址(32位)u16 a;a = *(u16*)(add);return a;
}
主函数调用该函数读取FLASH时直观方式:a = FLASH_R(0x08000000);其中add=0x08000000即为,即为flash主存储器上一地址。获得的16进制参数a。直接写入IO口:
GPIO_Write(GPIOA,a); //直接数值操作将变量值写入相应IO端口。
此例中a = (u16)(add); 因直接给FLASH_R传输的为一个具体地址值,而不是一个变量,因此不能直接用a=add;取得,而是先将该地址强制转换为(u16)类型,才能像操作指针变量一样,通过* add获取存储在flash该地址处的值。
另外,此处将*(u16*)换为(u8*)或(u32*)都可以。
往FLASH写数据:
void FLASH_W(u32 add,u16 dat){ FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);FLASH_ErasePage(add); FLASH_ProgramHalfWord(add,dat);FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);FLASH_Lock();
}
FLASH_W函数需要2个参数:参数1:32位FLASH地址。参数2:16位数据;
写入操作顺序:解锁FLASH编程擦除控制器(STM32为防止写入flash的程序、操作出错而设置的操作锁定,每次写入程序时解开锁定,而写入完成则上锁、即操作程序时是锁定状态)、标志位清除、 擦除指定地址扇区(STM32擦除时是以扇区为单位的,想擦除相关地址,则必须擦除该地址所在的整个扇区)、擦除完后指定地址开始写入、再次清除标志位、 锁定FLASH编程擦除控制器。
附STM32F10系列 闪存模块组织(小容量产品)
STM32 FLASH的写入与读取相关推荐
- STM32——FLASH擦除/写入失败的踩坑笔记。(WRPERR)
踩坑flash 操作失败. 查询标志位发现,是因为 WRPERR (写保护置位) 最后debug慢慢遍历程序找到了原因. 是因为对一个 未初始化的野指针 进行了赋值操作.野指针地址为flash地址.故 ...
- 用keil怎么擦除_分享STM32 FLASH 擦除(以及防止误擦除程序代码)、写入
编译环境:我用的是(Keil)MDK4.7.2 stm32库版本:我用的是3.5.0 一.本文不对FLASH的基础知识做详细的介绍,不懂得地方请查阅有关资料. 对STM32 内部FLASH进行编程操作 ...
- STM32 FLASH 写入不成功问题
STM32 FLASH 写入不成功问题 STM32 FLASH 写入不成功问题 STM32 FLASH 写入不成功问题 遇到一个很奇怪的问题,我从STM32FLASH的0x08024000开始往进些数 ...
- stm32 Flash读写[库函数]
stm32 的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP特性使得开发人员对stm32可以警醒调试开发,可以通过JTAG和SWD接口对stm32进行程序烧写:支持IAP特性使得开发 ...
- 学习STM32 Flash存储 W25Q64 SPI总线存储模块进行读写数据
今天学习 Flash 存储芯片进行数据写入和读取方法.了解W25Q64 存储芯片的使用.能够用 STM32 单片机对 W25Q64 进行写入数据,擦除数据,读取数据. w25q64 是什么? W25Q ...
- (39)STM32——FLASH闪存
目录 学习目标 成果展示 介绍 组成 主存储器 系统存储器 OTP 区域 选项字节 读取 编程 寄存器 步骤 擦除 扇区擦除 批量擦除 寄存器 代码 总结 学习目标 本节我们要来介绍一下关于FLASH ...
- STM32使用片内FLASH制作小U盘(STM32+FLASH+MSC)
STM32使用片内FLASH制作U盘(STM32+FLASH+MSC) 配套代码 https://download.csdn.net/download/qq_40824852/84998391 文章目 ...
- 三菱FX3U底层源码,PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,有脉冲输出与定位指令
三菱FX3U底层源码,PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,有脉冲输出与定位指令(包括PLSY /PWM/PLSR/PLSV/DRVI /DRVA 等指令)的代 ...
- c#中文件的写入与读取
在我们做名片管理时用到了对于名片的存储与读入问题.首先我们需要获取当前的路径引用using System.IO;命名空间.我们在写入之前先把card类型的一条记录转化成string类型的数组方便写入. ...
最新文章
- java中正则表达式 ?=_Java中的正则表达式
- Mac 下安装 Python-OpenCV Python-OpenCV 处理图像(一):基本操作
- Toast的另类应用及另类“拦截”Home键
- fread和fwrite函数功能
- P4556 雨天的尾巴
- 工作265:v-model实现原理 自定义组件使用v-model
- 处理后台返回文本带空格和换行页面不显示断句的问题
- iOS7应用开发4、Foundation框架
- [摘录]第2章 中场谈判技巧
- python百度百科-python语言是由哪个人创造的
- VC 和 VS 区别
- pcie协议_如何通过PCIE协议实现FPGA 配置?详情请戳这里!
- Word VBA:批量更改图片的格式
- 弘辽科技:如何快速提高淘宝店铺的综合评分
- 最新数据,国内5G手机出货量已超78万部!
- OpenCV Mat与uchar*指针相互转换赋值
- matlab在线_正版MATLAB向中国人民大学全校师生免费开放!
- 问题: Schrodinger方程的非齐次Strichartz估计
- javase 双色球选7球 红球在【1-36】之间,选出6个,且不能重复 篮球在【1-16】之间,选出1个
- Linux 系统下文件压缩解压