基于 NXP QN9080 Flash 操作

关键字 :NXPQN9080Flash

一、概述

       在做测试或者是做项目的时候我们很经常会使用到内部 Flash 存储,毕竟很多数据需要用到掉电保存。那么对于 QN9080 来说,我们需要怎么对 Flash 进行读写呢,下面会给大家详细说明。


二、环境搭建

2.1 SDK 下载

       本文基于 NXP QN9080 IC,SDK 可在NXP 官网 https://mcuxpresso.nxp.com 下载。

2.2 硬件

       本文基于 QN9080 DK 板进行开发,DK 板如图 2.2 所示。

                                                                                                                                                               图 2.2

2.3 开发软件

       SDK 支持 IAR、Keil、MCUXpreeso IDE 三种开发软件、本文以 IAR 为开发环境作为介绍。


三、工程介绍

       在 SDK_2.2.0_QN908XCDK\boards\qn908xcdk\driver_examples\flash\polling 目录下的工程是操作 Flash 的例程,下面带大家一起看看。

3.1  Flash 初始化

  1. 设置获取 Flash 的 Default 设置: FLASH_GetDefaultConfig(&config); 参数是指向配置 Flash 结构的一个指针。随后是初始化 Flash 模块,具体可参考图 3.1 -1。

 
                                                                                                        

                                                                                                                                                               图 3.1 – 1

 

3.2  Flash 擦除

       为了保证每一次都能将 Flash 的数据更新为自己需要的数据,必须先将准备写入的那 一页 Flash 进行擦除。具体的函数大家可以参考一下图 3.2 – 1。

 
                                                              

                                                                                                                                                               图 3.2 - 1

 

       FLASH_Erase 函数的参数分别是:

       ① 指向配置 Flash 结构的一个指针

       ② 准备擦除的起始地址

       ③ 准备擦除的大小

       由于 Flash 不同于 EEPROM 可以一个字一个字节地擦除和写入, Flash 只能一页一页地擦除,也就是第三个参数的大小最少为 2048。 也就是说假设你要擦除的起始地址不是第一页,那起始地址需要改为: Flash 起始地址 + 每一页 Flash 的大小 * 你要擦除的页码。具体可参考图 3.2 – 2。

 


                           

                                                                                                                                                               图 3.2 - 2

3.3  Flash 写入

在擦除完对应的 Flash 页之后就可以开始进行写操作了,图3.3 – 1 是对应的写 Flash 函数。

                           

                                                                                                                                                               图 3.3- 1

 

      FLASH_Program 函数的参数分别是:

      ① 指向配置 Flash 结构的一个指针

      ② 准备写入的起始地址

      ③ 准备写入的数据指针

      ④ 准备写入的数据大小。

3.4  结果显示

      在写入之前先将 Flash 数据读取并且打印出来,相应的结果如图 3.4 – 1,总共有 2K Bytes,值均为 0XFF。

 


                                                                                                                                                               图 3.4- 1

 

对其中前面512 Byte 进行赋值 0 – 0xFF,并且写进 Flash 里面,在写操作完成后将数据读取出来,得到的结果如图3.4 – 2。

 


                                                                                                                                                               图 3.4- 2

 

      通过前面的讲述,大家对于怎么去操作 Flash是否有了一个大致的了解,后面还会有其他精彩的内容,希望大家继续观看。

 

四、参考资料

[1] QN908x.pdf
[2] QN908x user manual.pdf

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论