授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

请勿白嫖,请勿白嫖,请勿白嫖,点赞就是你最大的支持

文章目录

  • 1. SPI Flash 相关接口
  • 2.相关API
    • 2.1 spi_flash_get_id —— 查询 SPI Flash 的 ID
    • 2.2 spi_flash_erase_sector—— 擦除 Flash 扇区
    • 2.3 spi_flash_write—— 写入数据到 Flash。Flash 读写必须 4 字节对⻬齐
    • 2.4 spi_flash_read—— 从 Flash 读取数据。Flash 读写必须 4 字节对⻬齐
    • 2.5 spi_flash_set_read_func—— 注册用户自定义的 SPI Flash 读取接⼝口函数
    • 2.6 spi_flash_erase_protect_enable—— 使能 flash 擦写保护。使能后,将保护 flash 不会误操作擦写了了正在运行的应用程序
    • 2.7 spi_flash_erase_protect_disable—— 关闭 flash 擦写保护功能

1. SPI Flash 相关接口

  • SPI Flash 接口位于 tools/sdk/include/spi_flash.h

2.相关API

2.1 spi_flash_get_id —— 查询 SPI Flash 的 ID

函数定义

uint32 spi_flash_get_id (void)

参数

返回值

spi flash id

2.2 spi_flash_erase_sector—— 擦除 Flash 扇区

函数定义

SpiFlashOpResult spi_flash_erase_sector (uint16 sec)

参数

uint16 sec:扇区号,从扇区 0 开始计数,每扇区 4 KB

返回值

typedef enum{SPI_FLASH_RESULT_OK,
SPI_FLASH_RESULT_ERR,
SPI_FLASH_RESULT_TIMEOUT
} SpiFlashOpResult;

2.3 spi_flash_write—— 写入数据到 Flash。Flash 读写必须 4 字节对⻬齐

函数定义

SpiFlashOpResult spi_flash_write (
uint32 des_addr,
uint32 *src_addr,
uint32 size
)

参数

• uint32 des_addr:写入 Flash 目的地址
• uint32 *src_addr:写入数据的指针
• uint32 size:数据长度,单位 byte,必须 4 字节对齐进行读写

返回值

typedef enum{SPI_FLASH_RESULT_OK,
SPI_FLASH_RESULT_ERR,
SPI_FLASH_RESULT_TIMEOUT
} SpiFlashOpResult;

2.4 spi_flash_read—— 从 Flash 读取数据。Flash 读写必须 4 字节对⻬齐

函数定义

SpiFlashOpResult spi_flash_read(
uint32 src_addr,
uint32 * des_addr,
uint32 size
)

参数

• uint32 src_addr: 读取 Flash 的地址
• uint32 *des_addr: 存放读取Flash指针
• uint32 size:数据⻓长度,单位 byte,必须 4 字节对齐进行读写

返回值

typedef enum{SPI_FLASH_RESULT_OK,
SPI_FLASH_RESULT_ERR,
SPI_FLASH_RESULT_TIMEOUT
} SpiFlashOpResult;

2.5 spi_flash_set_read_func—— 注册用户自定义的 SPI Flash 读取接⼝口函数

函数定义

void spi_flash_set_read_func (user_spi_flash_read read)

参数

typedef SpiFlashOpResult (*user_spi_flash_read)(
SpiFlashChip *spi,
uint32 src_addr,
uint32 * des_addr,
uint32 size
)

返回值

2.6 spi_flash_erase_protect_enable—— 使能 flash 擦写保护。使能后,将保护 flash 不会误操作擦写了了正在运行的应用程序

函数定义

bool spi_flash_erase_protect_enable(void)

参数

返回值

True: 设置成功
False: 设置失败

2.7 spi_flash_erase_protect_disable—— 关闭 flash 擦写保护功能

函数定义

bool spi_flash_erase_protect_disable(void)

参数

返回值

True: 设置成功
False: 设置失败

深入理解Arduino下的ESP8266_Non-OS_SDK API④ SPI Flash接口相关推荐

  1. MindSpore技术理解(下)

    MindSpore技术理解(下) 4 GraphEngine 由于深度学习算法需要进行大量的计算,很多公司都设计了自己的深度学习专用处理器(如谷歌的张量处理器.阿里巴巴的含光等),华为也发布了自主设计 ...

  2. 手把手教你看懂并理解Arduino PID控制库——调参改变

    2019独角兽企业重金招聘Python工程师标准>>> 引子 本文将分析<手把手教你看懂并理解Arduino PID控制库>中第三个问题:PID控制参数突变对系统的影响. ...

  3. arduino 下16进制转2进制

    在arduino下为了在像素屏中点亮灯珠,有些字符汉字和图像先生成了16进制的字符,然后又需要把16进制转成2进制来控制灯珠. 之前从网上找到了一个16进制转2进制的方法如下: int *getBin ...

  4. Win32环境下代码注入与API钩子的实现

    Win32环境下代码注入与API钩子的实现 本文详细的介绍了在Visual Studio(以下简称VS)下实现API钩子的编程方法,阅读本文需要基础:有操作系统的基本知识(进程管理,内存管理),会在V ...

  5. 基于TensorRT的BERT实时自然语言理解(下)

    基于TensorRT的BERT实时自然语言理解(下) BERT Inference with TensorRT 请参阅Python脚本bert_inference.py还有详细的Jupyter not ...

  6. XP下使用FFMPEG(API和exe)遇到的问题和解决方法。

    XP下使用FFMPEG(API和exe)遇到的问题和解决方法. 1.需求背景 2.遇到的问题 3.解决方法 下载链接 1.需求背景 因为最近接到项目上的一个需求,就是在MP4(H264编码)文件里叠加 ...

  7. Safari支不支持HTML5录音? 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API。...

    先放结论:Safari支不支持HTML5录音? --据我调查,不支持. 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API. 可是当使用Can I us ...

  8. 理解Linux下的SELinux(MAC)

    理解Linux下的SELinux 长久以来,每当遇到授权问题或者新安装的主机,我的第一反应是通过setenforce 0命令禁用SELinux,来减少产生的权限问题,但是这并不是一个良好的习惯.这篇文 ...

  9. Arduino 下初试 stm32开发板

    Arduino 下初试 stm32开发板 1.实验环境 1.野火STM32指南者(STM32F103VET6) 2.Arduino IDE 1.8.13(下载链接) 3.STM32 Flash loa ...

最新文章

  1. 新基建的内涵、意义和隐忧 ,基于互联网大脑模型的分析
  2. Castle.ActiveRecord的嵌套事务处理
  3. C#有关Session 操作的几个误区【转】
  4. coreelec ssh访问被拒绝_GitLab官网在线仓库SSH连接故障排查和经验总结实例
  5. angular项目打包_vue项目部署的最佳实践
  6. 深入理解InnoDB(5)-文件系统
  7. linux 下 c++ 实现 netstat_Linux下基于签名技术的软件保护之实现流程
  8. 不生成Excel文件,将Datatable数据 Response.write 输出生成Excel (转载)
  9. java中jsp怎么传递参数_急!Java问题,Java如何获得jsp传递的参数??
  10. 使用 Dawn 构建 React 项目
  11. linux应用之Lamp(apache+mysql+php)的源码安装(centos)
  12. 如何修改一个类的私有成员?
  13. Android WebView中软键盘会遮挡输入框相关问题
  14. iPad能装Android系统,我错了,原来iPad真的能装Windows和MacOS系统
  15. 【电力电子技术】SEPIC 电路 与 ZETA 电路
  16. 机器学习实战python版决策树以及Matplotlib注解绘制决策树
  17. ukf(无迹卡尔曼滤波)算法的matlab程序.
  18. 电脑的硬件和软件分别是什么
  19. fastboot 快速引导模式 介绍
  20. 有网络登不上QQ0000001错误

热门文章

  1. Python学习日记 第九天 EX20-21
  2. TXL C语言语法说明
  3. c语言怎么连接库,C语言库函数的连接
  4. SoapUI基础使用教程
  5. initWithNibName与一般init的区别
  6. 探索中的隐私计算:天冕联邦学习平台落地案例
  7. 蚂蚁集团2022-09-15笔试
  8. .NET -- 使用Dump文件分析异常
  9. SDE的概念、结构、功能及应用
  10. c++实习项目3D模型显示系统