MM32Flash读写操作(兼容STM32)

Flash基础描述

思维导图

编程实现读写操作

主函数结构

#include "delay.h"
#include "sys.h"
#include "led.h"
#include "uart.h"
#include "flash.h" void flashwrite(char* data);
void flashread();
/********************************************************************************************************
**函数信息 :main(void)
**功能描述 :
**输入参数 :无
**输出参数 :无
********************************************************************************************************/
int main(void)
{
u8 t = 0;
char data[] = {"Hello,world."}; //将要写入的数据 delay_init();
LED_Init();
uart_initwBaudRate(9600); flashwrite(data);
flashread(); while(1) //LED,无限循环
{
printf("program ok\r\n");
flashread(); //从flash读写入的数据
LED1_TOGGLE();
LED2_TOGGLE();
LED3_TOGGLE();
LED4_TOGGLE();
delay_ms(1000);
}
}

Flash写操作

#include "flash.h"
#include "uart.h"
#include "flash.h" void flashwrite(char* data)
{
u32 baseaddr = 0x08002ffc; //查看Flash地址,定义将要写入的起始地址
int i = 0;
/* Porgram FLASH Bank1 ********************************************************/
/* Unlock the Flash Bank1 Program Erase controller */
FLASH->KEYR = 0x45670123; //解锁
FLASH->KEYR = 0xCDEF89AB; /* Clear All pending flags */
FLASH->SR = 0x00000001|0x00000004|0x00000010; //PG(Programming) = 1,选择编程操作
FLASH->CR |= 0x1; while(i < 12) //循环写入数据
{
*(__IO uint16_t*)baseaddr = *data | *(data + 1)<<8;
baseaddr = baseaddr + 2;
data += 2;
i++;
} //Lock flash
FLASH->CR |= 0x00000080;
}

Flash读操作

#include "flash.h"
#include "uart.h"
#include "flash.h" void flashread()
{
/* Porgram FLASH Bank1 ********************************************************/ u32 baseaddr = 0x08002ffc; //查看Flash地址,定义将要读取的起始地址
char out[15];
int i = 0; while(i < 15) //循环读取数据
{
out[i] = *(__IO uint8_t*)baseaddr;
baseaddr = baseaddr + 1;
printf("%c",out[i]); //通过uart打印输出到串口助手窗口
i++; }
printf("\r\n");
}

实现结果



参考资料

[1]. MM32 miniboard资料

MM32Flash读写操作(兼容STM32)的更多相关文章

  1. MM32 备份域学习(兼容STM32)

    MM32 备份域学习(兼容STM32) 内容提要 备份域工作原理 备份域特性 备份域的保护:侵入检测 备份域侵入检测 备份域电源与主要内容 备份域特性 20字节数据后备寄存器(中容量和小容量产品),或 ...

  2. MM32初识(兼容STM32)

    MM32初识(兼容STM32) 资源与开发环境 keil 5.0 MM32 miniboard 提要 stm32入门(MM32兼容) 点亮LED思路简介 GPIO配置 stm32寄存器理解与操作步骤 ...

  3. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  4. 第十一章 ZYNQ-MIZ702 DDR3 PS读写操作方案

      本编文章的目的主要用简明的方法在纯PS里对DDR3进行读写. 本文所使用的开发板是Miz702 PC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.4 11.0本章难度 ...

  5. c语言文件读写操作总结

    C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...

  6. [转]Android - 文件读写操作 总结

     转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...

  7. App.Config详解及读写操作

    App.Config详解及读写操作   App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而 ...

  8. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  9. io流对文件读写操作

    public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedRead ...

随机推荐

  1. URL编码详解

    escape,encodeURI,encodeURIComponent. 据说还有base64,但会被 = 来补. 待编辑.

  2. 关闭C#主窗体弹出是否关闭对话框

    在开发系统时,常常有这样一个问题,就是当关闭主窗体,也即退出系统时,如果想提示是否关闭,以免误操作,可以在主窗体的Main_FormClosing事件中添加一个对话框,代码如下: private vo ...

  3. bash shell学习-正则表达式基础 (笔记)

    A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...

  4. sql -实验二

    8. 统计各部门下工资大于2000的雇员的平均工资. select avg(sal)from empwhere sal>2000;

  5. 自定义JQuery插件之 beforeFocus

    <html> <head> <title></title> <script type="text/javascript" sr ...

  6. Thinkphp 文本编辑器

    文本编辑器:可以从网上下载---ueditor文件夹里面包含php和utf8-php两个文件夹 平时使用时主要用到获取内容和写入内容两个按钮 获取内容: <!DOCTYPE html PUBLI ...

  7. JQUERY1.9学习笔记 之内容过滤器(四) parent选择器

    描述:选择至少包含一个子节点的元素(一个标签或是文本). 例:找出所有有子元素的td标签,包含文本. <!doctype html><html lang="en" ...

  8. C语言结构体占用空间内存大小解析

    结构体的数据类型的有点我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧. 格式一: 01.struct tagPhone 02.{ 03.     char   A; 04.     int  ...

  9. 变量-if else while-运算符

    变量: SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量. 局部变量: 使用declare关键字给变量声明,语法非常 ...

  10. HTML CSS简介与图片映射

    1. CSS 入门 内联样式:在 HTML 元素中使用 “style” 属性,需要将表现与内容混在一起: 内部样式表:在 HTML 文档头部 <head> 区域使用 <style&g ...