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的写入与读取相关推荐

  1. STM32——FLASH擦除/写入失败的踩坑笔记。(WRPERR)

    踩坑flash 操作失败. 查询标志位发现,是因为 WRPERR (写保护置位) 最后debug慢慢遍历程序找到了原因. 是因为对一个 未初始化的野指针 进行了赋值操作.野指针地址为flash地址.故 ...

  2. 用keil怎么擦除_分享STM32 FLASH 擦除(以及防止误擦除程序代码)、写入

    编译环境:我用的是(Keil)MDK4.7.2 stm32库版本:我用的是3.5.0 一.本文不对FLASH的基础知识做详细的介绍,不懂得地方请查阅有关资料. 对STM32 内部FLASH进行编程操作 ...

  3. STM32 FLASH 写入不成功问题

    STM32 FLASH 写入不成功问题 STM32 FLASH 写入不成功问题 STM32 FLASH 写入不成功问题 遇到一个很奇怪的问题,我从STM32FLASH的0x08024000开始往进些数 ...

  4. stm32 Flash读写[库函数]

    stm32 的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP特性使得开发人员对stm32可以警醒调试开发,可以通过JTAG和SWD接口对stm32进行程序烧写:支持IAP特性使得开发 ...

  5. 学习STM32 Flash存储 W25Q64 SPI总线存储模块进行读写数据

    今天学习 Flash 存储芯片进行数据写入和读取方法.了解W25Q64 存储芯片的使用.能够用 STM32 单片机对 W25Q64 进行写入数据,擦除数据,读取数据. w25q64 是什么? W25Q ...

  6. (39)STM32——FLASH闪存

    目录 学习目标 成果展示 介绍 组成 主存储器 系统存储器 OTP 区域 选项字节 读取 编程 寄存器 步骤 擦除 扇区擦除 批量擦除 寄存器 代码 总结 学习目标 本节我们要来介绍一下关于FLASH ...

  7. STM32使用片内FLASH制作小U盘(STM32+FLASH+MSC)

    STM32使用片内FLASH制作U盘(STM32+FLASH+MSC) 配套代码 https://download.csdn.net/download/qq_40824852/84998391 文章目 ...

  8. 三菱FX3U底层源码,PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,有脉冲输出与定位指令

    三菱FX3U底层源码,PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,有脉冲输出与定位指令(包括PLSY /PWM/PLSR/PLSV/DRVI /DRVA 等指令)的代 ...

  9. c#中文件的写入与读取

    在我们做名片管理时用到了对于名片的存储与读入问题.首先我们需要获取当前的路径引用using System.IO;命名空间.我们在写入之前先把card类型的一条记录转化成string类型的数组方便写入. ...

最新文章

  1. java中正则表达式 ?=_Java中的正则表达式
  2. Mac 下安装 Python-OpenCV Python-OpenCV 处理图像(一):基本操作
  3. Toast的另类应用及另类“拦截”Home键
  4. fread和fwrite函数功能
  5. P4556 雨天的尾巴
  6. 工作265:v-model实现原理 自定义组件使用v-model
  7. 处理后台返回文本带空格和换行页面不显示断句的问题
  8. iOS7应用开发4、Foundation框架
  9. [摘录]第2章 中场谈判技巧
  10. python百度百科-python语言是由哪个人创造的
  11. VC 和 VS 区别
  12. pcie协议_如何通过PCIE协议实现FPGA 配置?详情请戳这里!
  13. Word VBA:批量更改图片的格式
  14. 弘辽科技:如何快速提高淘宝店铺的综合评分
  15. 最新数据,国内5G手机出货量已超78万部!
  16. OpenCV Mat与uchar*指针相互转换赋值
  17. matlab在线_正版MATLAB向中国人民大学全校师生免费开放!
  18. 问题: Schrodinger方程的非齐次Strichartz估计
  19. javase 双色球选7球 红球在【1-36】之间,选出6个,且不能重复 篮球在【1-16】之间,选出1个
  20. Linux 系统下文件压缩解压

热门文章

  1. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记 - 索引
  2. MVG(0)——wt is MVG
  3. shell脚本——文件包含引用的操作使用
  4. 区块链是什么 通俗点
  5. android官网被封掉了,只好用这个网站进谷歌了!嘎嘎
  6. Java泛型 T extends Serializable
  7. 【观察】谁是中国容器软件市场TOP厂商?权威研究机构IDC发布最新报告
  8. 赛扬处理器_J4015处理器!品铂新款X10上市!_IT业界行情
  9. uniapp封装ajax请求
  10. PLC实验四节传送带的控制