深入理解Arduino下的ESP8266_Non-OS_SDK API④ SPI Flash接口
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。
共同学习成长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接口相关推荐
- MindSpore技术理解(下)
MindSpore技术理解(下) 4 GraphEngine 由于深度学习算法需要进行大量的计算,很多公司都设计了自己的深度学习专用处理器(如谷歌的张量处理器.阿里巴巴的含光等),华为也发布了自主设计 ...
- 手把手教你看懂并理解Arduino PID控制库——调参改变
2019独角兽企业重金招聘Python工程师标准>>> 引子 本文将分析<手把手教你看懂并理解Arduino PID控制库>中第三个问题:PID控制参数突变对系统的影响. ...
- arduino 下16进制转2进制
在arduino下为了在像素屏中点亮灯珠,有些字符汉字和图像先生成了16进制的字符,然后又需要把16进制转成2进制来控制灯珠. 之前从网上找到了一个16进制转2进制的方法如下: int *getBin ...
- Win32环境下代码注入与API钩子的实现
Win32环境下代码注入与API钩子的实现 本文详细的介绍了在Visual Studio(以下简称VS)下实现API钩子的编程方法,阅读本文需要基础:有操作系统的基本知识(进程管理,内存管理),会在V ...
- 基于TensorRT的BERT实时自然语言理解(下)
基于TensorRT的BERT实时自然语言理解(下) BERT Inference with TensorRT 请参阅Python脚本bert_inference.py还有详细的Jupyter not ...
- XP下使用FFMPEG(API和exe)遇到的问题和解决方法。
XP下使用FFMPEG(API和exe)遇到的问题和解决方法. 1.需求背景 2.遇到的问题 3.解决方法 下载链接 1.需求背景 因为最近接到项目上的一个需求,就是在MP4(H264编码)文件里叠加 ...
- Safari支不支持HTML5录音? 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API。...
先放结论:Safari支不支持HTML5录音? --据我调查,不支持. 现在浏览器中最好的解决方案是WebRTC下的 navigator.getUserMedia API. 可是当使用Can I us ...
- 理解Linux下的SELinux(MAC)
理解Linux下的SELinux 长久以来,每当遇到授权问题或者新安装的主机,我的第一反应是通过setenforce 0命令禁用SELinux,来减少产生的权限问题,但是这并不是一个良好的习惯.这篇文 ...
- Arduino 下初试 stm32开发板
Arduino 下初试 stm32开发板 1.实验环境 1.野火STM32指南者(STM32F103VET6) 2.Arduino IDE 1.8.13(下载链接) 3.STM32 Flash loa ...
最新文章
- 新基建的内涵、意义和隐忧 ,基于互联网大脑模型的分析
- Castle.ActiveRecord的嵌套事务处理
- C#有关Session 操作的几个误区【转】
- coreelec ssh访问被拒绝_GitLab官网在线仓库SSH连接故障排查和经验总结实例
- angular项目打包_vue项目部署的最佳实践
- 深入理解InnoDB(5)-文件系统
- linux 下 c++ 实现 netstat_Linux下基于签名技术的软件保护之实现流程
- 不生成Excel文件,将Datatable数据 Response.write 输出生成Excel (转载)
- java中jsp怎么传递参数_急!Java问题,Java如何获得jsp传递的参数??
- 使用 Dawn 构建 React 项目
- linux应用之Lamp(apache+mysql+php)的源码安装(centos)
- 如何修改一个类的私有成员?
- Android WebView中软键盘会遮挡输入框相关问题
- iPad能装Android系统,我错了,原来iPad真的能装Windows和MacOS系统
- 【电力电子技术】SEPIC 电路 与 ZETA 电路
- 机器学习实战python版决策树以及Matplotlib注解绘制决策树
- ukf(无迹卡尔曼滤波)算法的matlab程序.
- 电脑的硬件和软件分别是什么
- fastboot 快速引导模式 介绍
- 有网络登不上QQ0000001错误