关于STM32F4将数据或文件写入W28Q128(SPI_FLASH)中的方法(精)
2017-05-23 10:09
766 查看
将数据或文件写入SPI_FLASH的可用方法
(1)使用SD卡更新外部SPI FLASH(W25Q128),将需要写入的数据或文件存储于SD卡中,在通过FATFS文件系统读取写入外部SPI FLASH,可参考原子哥的例程《汉字显示实验》,这种方法适用于大文件和大数据,缺点在于:需要SD外设,适用于功能齐全的开发板,但不适用于外设较少的产品板(无SD外设)
(2)使用Jlink和相关软件烧录,方便快捷,缺点:(1)需要SPI_FLASH芯片预留外接烧录引脚;(2)或者烧录完成后再焊接,不方便灵活更改内容
(3)使用串口烧录,我在实践过程中发现,串口接收数据缓存大小有限,如果接收一部分处理写入一部分,会出现丢包问题,因为在写入SPI FLASH数据操作的同时,串口是不断地在发送文件的,所以,这种方法适用于小文件或者小数据的写入,不适用于大文件大数据的写入,具体小文件和大文件的大小定义看微控制器的内存而定。
(4)使用内部flash读取写入的方法,适用于大文件和大数据。具体可参考原子哥的例程内部FLASH模拟EEPROM实验。利用STM32 ST-LINK Utility将bin文件写入STM32F407内部flash,然后读取内部flash数据,写入W25Q128中。
当硬件电路只有串口和SWD接口时,适用于后两种方法。其中,串口烧录适用于小文件,内部flash读取写入适用于大文件
(1)使用SD卡更新外部SPI FLASH(W25Q128),将需要写入的数据或文件存储于SD卡中,在通过FATFS文件系统读取写入外部SPI FLASH,可参考原子哥的例程《汉字显示实验》,这种方法适用于大文件和大数据,缺点在于:需要SD外设,适用于功能齐全的开发板,但不适用于外设较少的产品板(无SD外设)
(2)使用Jlink和相关软件烧录,方便快捷,缺点:(1)需要SPI_FLASH芯片预留外接烧录引脚;(2)或者烧录完成后再焊接,不方便灵活更改内容
(3)使用串口烧录,我在实践过程中发现,串口接收数据缓存大小有限,如果接收一部分处理写入一部分,会出现丢包问题,因为在写入SPI FLASH数据操作的同时,串口是不断地在发送文件的,所以,这种方法适用于小文件或者小数据的写入,不适用于大文件大数据的写入,具体小文件和大文件的大小定义看微控制器的内存而定。
(4)使用内部flash读取写入的方法,适用于大文件和大数据。具体可参考原子哥的例程内部FLASH模拟EEPROM实验。利用STM32 ST-LINK Utility将bin文件写入STM32F407内部flash,然后读取内部flash数据,写入W25Q128中。
当硬件电路只有串口和SWD接口时,适用于后两种方法。其中,串口烧录适用于小文件,内部flash读取写入适用于大文件
相关文章推荐
- 关于C语言fprintf()函数将纯数据写入文件速度慢的解决方法
- 关于matlab向文件写入数据的方法
- tinyxml把xml数据写入字符串,不写入文件的方法
- sql server 2005 中文件组的的概念及数据库文件因文件组满而无法写入的数据的解决方法
- C#实现向已存在的Excel文件中写入数据实例(两种方法)
- C#打开或者创建一个文件,然后向其末尾写入数据的方法
- 关于Java流的方式将数据写入到文件中
- 关于如何将浮点类型的数据写入或读出文件的操作
- MFC下关于读取位图数据段方法和得到数据后重新写入新位图的方法
- C#通过流写入数据到文件的方法
- [读取文件数据],open()的返回类型和【list.append(),造成显性写入\n】。方法参数的缺省带来的影响?
- Python写入数据到MP3文件中的方法
- 关于写入文件缓存时报"java.io.FileNotFoundException open failed (is a director)"错误的解决方法
- u07s07 - 关于对象中的静态数据成员如何写入到文件?
- sql server 2005 中文件组的的概念及数据库文件因文件组满而无法写入的数据的解决方法
- 发送邮件方法和将数据写入.csv文件---测试有效
- matlab各种数据类型的文件的读取与写入方法
- 关于自己写数据写入文件,排序,然后结果输出到文件中,关于排序还没有加进去,用自带的排序
- 关于CSV文件导入到数据的方法以及遇到的问题和解决方案
- 数据写入文件的几种方法速度比较