009_STM32程序移植之_内部falsh
flash 模拟 EEPROM 实验
1. 测试环境:STM32C8T6
2. 测试接口:
3. 串口使用串口一,波特率9600
单片机引脚------------CH340引脚
VCC--------------------VCC
GND-------------------GND
PA9--------------------RXD
PA10-------------------TXD
STM32 本身没有自带 EEPROM,但是 STM32 具有 IAP(在应用编程)功能,
所以我们可以把它的 FLASH 当成 EEPROM 来使用。本章,我们将利用 STM32 内部的 FLASH实现数据的存放,通过串口打印显示存放数据,不过我们是将数据直接存放在 STM32 内部,而不是存放在 W25Q64。 本章分为以下学习目标:
1. 学习操作 STM32 内部 flash
2. 查看上一篇:008_STM32之_keil编译内存大小解析了解内存
3. 以下为大中小型STM32的闪存容量
STM32 的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。主存储器,该部分用来存放代码和数据常数(如 const 类型的数据)。对于大容量产品,其被划分为256 页,每页 2K 字节。注意,小容量和中容量产品则每页只有 1K 字节。从上图可以看出主存储器的起始地址就是 0X08000000, Boot0、 Boot1 都接 GND 的时候,就是从0X08000000 开始运行代码的
1. 上面的是原理解析,下面进行STM32内部flash程序移植
2. 测试串口打印程序是否能够使用
3. 开始移植内部flash上代码
4. 移植程序成功解析代码
5. 这个是存入的起始地址
6. 起始地址从上面的主存储块那里查看地址,地址不能超过相应的容量范围,不然的话程序会不运行,
//设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000) ,代码大小查看上一篇008_STM32之_keil编译内存大小解析
7. 建议起始地址:
1. 小容量:0X08007000
2. 中容量:0X08010000
3. 大容量:0X08070000
8. 上面的只是建议打大小,具体要看使用的有多大的数组了,反正不超过程序大小就行了
9. 注意:
10.结束
11. 资料下载:关注公众号
疑惑QQ:3045136580
假如以下视频播放不了,可以到腾讯《STM32移植系列》专辑中查找相对应的
腾讯个人主页:http://v.qq.com/vplus/ffb274f0adf3a4d4374b388a03b2358f/folders
本移植教程地址:https://v.qq.com/x/page/e0770rdy3pg.html
资料下载地址:https://download.csdn.net/download/xiaoguoge11/10633933
009_STM32程序移植之_内部falsh的更多相关文章
- 012_STM32程序移植之_内部flash开机次数管理lib库建立
012_STM32程序移植之_内部flash开机次数管理lib库建立 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚------------CH ...
- 011_STM32程序移植之_内部flash开机次数管理
011_STM32程序移植之_内部flash开机次数管理 1. 测试环境:STM32C8T6 2. 测试接口: 3. 串口使用串口一,波特率9600 单片机引脚------------CH340引脚 ...
- 016_STM32程序移植之_舵机
STM32程序移植之舵机PWM测试 接线图如下: STM32引脚 舵机引脚 功能 GND GND 正极电源 具体看舵机的额定电压 PA6 PWM引脚 STM32引脚 CH340引脚 GND GND 3 ...
- 007_STM32程序移植之_多通道ADC转换
1. 测试环境:STM32C8T6 2. 测试:使用DMA进行多通道ADC转换 3. 描述:用 ADC 连续采集 12 路模拟信号,并由 DMA 传输到内存.ADC 配置为扫描 并且连续转换模式,AD ...
- 018_STM32程序移植之_串口接收中文
(一)在平时数据传输中很少用到接收中文的情况,但是最近需要用到就花了半天时间来弄弄 (二)接收原理,从现在接收情况分析:一个中文占两个数据的空间,也就是两个十六进制可以转化成为一个中文 (三)示例情况 ...
- STM32F407使用MFRC522射频卡调试及程序移植成功
版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或 https://www.cnblogs.co ...
- STM32F429 LCD程序移植
STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动 ...
- 嵌入式linux应用程序移植方法总结
嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...
- linux第三方程序移植
摘要:在linux开发过程中经常需要用到第三方的程序,有时需要用到它们的库,有时需要它们生成的可执行文件,如何正确地编译这些第三方的程序,以方便地使用和开发自己需要的程序,将是本文要论述的内容. 1. ...
随机推荐
- python学习-44 程序的解耦 (不是特别懂的,回头在复习)
import os def file_handler(backend_data,res=None,type='fetch'): # 查询功能 if type == 'fetch': with open ...
- SAS学习笔记2 基础函数应用
输入输出语句(put和input函数) put()函数:把数值型或字符型变量转为字符型变量(输出变量) input()函数:将字符型变量转化为数值型变量(输入变量) 选择与删除语句(keep.drop ...
- java——值传递和引用传递
值传递 在方法被调用时,实参通过形参把它的内容副本传入方法内部,此时形参接收到的内容是实参值的一个拷贝,因此在方法内对形参的任何操作,都仅仅是对这个副本的操作,不影响原始值的内容. 先来看个例子: p ...
- codeforce 839d.winter is here
题意:如果一个子序列的GCD为1,那么这个子序列的价值为0,否则子序列价值为子序列长度*子序列GCD 给出n个数,求这n个数所有子序列的价值和 题解:首先得想到去处理量比较少的数据的贡献,这里处理每个 ...
- 移动端 H5 上拉刷新,下拉加载
http://www.mescroll.com/api.html#options 这里有几个重要的设置 1.down 下不启用下拉刷新是因为再手机端有默认的下拉刷新,会冲突,待解决 2.up 中的 a ...
- 1 Refused to display ‘url’ in a frame because it set 'X-Frame-Options' to 'sameorigin' 怎么解决?
进在开发公司的文件中心组件,提供各个子系统的附件上传下载.预览.版本更新等功能,前端在今天突然给我发一张图,说预览缩略图遇到问题了,然后发了个截图给我: 这很明显是一个跨域问题, X-Frame-Op ...
- Deep Learning方向的paper
转载 http://hi.baidu.com/chb_seaok/item/6307c0d0363170e73cc2cb65 个人阅读的Deep Learning方向的paper整理,分了几部分吧,但 ...
- 【原创】大叔经验分享(90)linux服务器iowait和负载很高
# top top - 21:21:51 up 207 days, 1:30, 5 users, load average: 0.90, 0.79, 1.62 Tasks: 249 total, 1 ...
- swiper按钮点击无效及控制器无效问题
点击箭头图片切换的同时,下面小图标也会随着切换,同理下面小图标切换时,上面也随着滚动. 示例代码如下: <!-- Swiper --> <div class="swiper ...
- ffmpeg 命令的使用
当然先安装了 gentoo 下一条命令搞定 emerge ffmpeg 格式转换 (将file.avi 转换成output.flv) ffmpeg -i file.avi output.flv ...