ESP8266 hspi的调试

2023-11-11

这一两个礼拜基本上都在爬这个坑,功夫不负有心人。终于搞定了,其实非常简单。以为这个东西有多么的复杂,其实不是这样的。被一些网上博主给误导了!
8266端我用的是:ESP8266_NONOS_SDK-3.0\examples\peripheral_test\user\spi_test
8266做从机 单片机做主机
可以成功的往8266寄存器 SPI_W0----SPI_W7写入数据
可以成功的读8266寄存器SPI_W8----SPI_W16读取出里面数据

单片机Master端:
发送数据格式:CMD(1byte)+ADDR(1byte)+DATA,
整个过程很简单,按照这个格式发送出去就好了
整个过程CS拉低。
Most Significant Bit First
8bit数据传输;
CPOL=0;
CPHA=0;

8266 端直接调用下面测试函数即可:
其中spi_slave_isr_sta为中断回调函数。
// Test spi slave interfaces.
void ICACHE_FLASH_ATTR spi_slave_test()
{
//
SpiAttr hSpiAttr;
hSpiAttr.bitOrder = SpiBitOrder_MSBFirst;
hSpiAttr.speed = 0;
hSpiAttr.mode = SpiMode_Slave;
hSpiAttr.subMode = SpiSubMode_0;

// Init HSPI GPIO
WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, 2);//configure io to spi mode
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, 2);//configure io to spi mode
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, 2);//configure io to spi mode
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 2);//configure io to spi mode

os_printf("\r\n ============= spi init slave =============\r\n");
SPIInit(SpiNum_HSPI, &hSpiAttr);

// Set spi interrupt information.
SpiIntInfo spiInt;
spiInt.src = (SpiIntSrc_TransDone
    | SpiIntSrc_WrStaDone
    |SpiIntSrc_RdStaDone
    |SpiIntSrc_WrBufDone
    |SpiIntSrc_RdBufDone);
spiInt.isrFunc = spi_slave_isr_sta;
SPIIntCfg(SpiNum_HSPI, &spiInt);

// SHOWSPIREG(SpiNum_HSPI);

SPISlaveRecvData(SpiNum_HSPI);
uint32_t sndData[8] = { 0 };
sndData[0] = 0x35343332;
sndData[1] = 0x39383736;
sndData[2] = 0x3d3c3b3a;
sndData[3] = 0x11103f3e;
sndData[4] = 0x15141312;
sndData[5] = 0x19181716;
sndData[6] = 0x1d1c1b1a;
sndData[7] = 0x21201f1e;

SPISlaveSendData(SpiNum_HSPI, sndData, 8);
WRITE_PERI_REG(SPI_RD_STATUS(SpiNum_HSPI), 0x8A);
WRITE_PERI_REG(SPI_WR_STATUS(SpiNum_HSPI), 0x83);

}

想要单片机端源码的,私聊

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266 hspi的调试 的相关文章

  • ESP8266 使用TCP通信协议

    TCP服务器示例 include
  • 【转载】ESP8266 基ESP8266_RTOS_SDK (ESP-IDF )中嵌入网页文件

    场景 在写ESP8266 web服务的时候 免不了要将自己设计的网页html和css等文件放入到固件中 在arduino中有fs可以进行上传文件 然后通过文件系统读出 那在ESP IDF中该怎么办呢 有几个思路 通过flash downlo
  • 使用Jupyter分析Wi-Fi数据

    在嗅探Wi Fi时 Wireshark是跨平台的 能够捕获大量数据 弄清这些数据完全是另一项任务 这就是Jupyter Notebook的用武之地 它可以帮助分析Wi Fi数据包 并确定特定电话以前连接过的网络 从而使我们可以了解所有者的身
  • 使用ESP8266和Blynk应用程序的远程房间恒温器

    该项目可通过您的手机通过家庭WiFi或移动网络的任何地方控制您的家庭供暖单元 基本上 它可以用远程控制器代替普通的可编程房间恒温器 作为遥控器 它使用安装了Blynk App并配置为可以满足所有需求的智能手机 智能手机和供暖系统之间的通信由
  • STM32学习笔记:ESP8266模块(1)

    由于项目要求要涉及到物联网 公司要采用wifi 于是就采购了一块串口wifi模块 ESP8266 开始拿到后首先应该掌握的就是测试 熟悉AT指令 因为串口wifi通信是采用AT指令进行通信的 在这里需要注意一点的就是 在编写程序的时候 一个
  • ESP8266之AT指令

    一 8266作为client 1 AT 功能 测试8266能否工作 2 AT CWMODE 3 功能 设置工作模式 1 station模式 2 ap模式 3 ap station复位保存当前值 3 AT RST 功能 复位 4 AT CWL
  • 【STM32F4】STM32F407+ESP8266连接机智云过程详解

    要求 通过手机上的机智云通用APP 点亮开发板载LED0 LED1 摘要 硬件组成 STM32F407ZGT6 esp8266 乐鑫 软件APP 机智云开发都者中心下载的通用APP Demo Xcom串口调试助手 Keil V5 调试过程详
  • arduino IDE搭建ESP8266开发环境和简单使用

    arduino IDE搭建ESP8266开发环境和简单使用 文章目录 arduino IDE搭建ESP8266开发环境和简单使用 安装 下载IDE 在Arduino IDE上安装esp8266库 下载安装esp8266库 使用 选择开发板
  • ESP8266-NodeMCU网络服务器(一)- 数字时钟制作

    文章目录 效果 所需环境 实现步骤 原理 HTML JS代码 上传文件到闪存系统 上传程序 效果 所需环境 ESP8266 NodeMCU 开发板 以下简称NodeMCU ESP8266库 Arduino IDE 代码编写工具 无线 热点
  • 从零开始的ESP8266探索(11)-定时任务调度器Ticker使用演示

    文章目录 目的 使用演示 基本使用1 基本使用2 动态设置和参数传递 停止和重启任务 注意事项 总结 目的 Arduino for esp8266属于无操作系统环境 对于开发多任务的复杂应用还是比较麻烦的 所以这里就提供了一个近似于操作系统
  • 从零开始的ESP8266探索(16)-扫描网络演示

    文章目录 目的 使用演示 同步扫描 异步扫描 总结 目的 ESP8266可以通过扫描获取周围环境中的WiFi热点 所以我们也可以先扫描一下再决定连接到某个网络上 这也是一种常见的应用场景 使用演示 同步扫描 使用下面代码进行同步扫描 同步扫
  • ESP8266基础开发(一)---读DHT11温湿度传感器

    注 对于ESP8266开源技术感兴趣的可以加群 我们一起探索交流学习 群号 579932824 群名 ESP8266开源技术交流群 这篇文章的目的是展示如何将DHT11传感器连接到ESP8266并编写一个简单的程序来测量温度和湿度 我们假设
  • 使用ESP8266接入“天猫精灵”控制七彩灯(WS2812)的颜色/亮度-开源

    目录 演示视频 1 准备工作 1 1 原理 1 2 使用的硬件以及硬件连接图 1 3 开发环境准备 Arduino开发环境 安装ESP8266的扩展 安装blinker Arduino库 安装blinker APP 下载ws2812的驱动库
  • 解决VSCode中查看ESP32日志乱码

    问题现象 在VSCode的Monitor中查看ESP32输出的日志乱码 如下图 原因 在VSCode中IDF默认的Monitor串口波特率为460800 然而ESP32输出Log的串口波特率默认为115200 因串口波特率不匹配导致Moni
  • 如何使用新的 SDK (NodeMCU) 发送多个数据 (conn:send())

    我一直在阅读 NodeMCU 文档和几个有关 SDK 更改的已解决问题 这些 SDK 以前允许发送多个数据流 就像排队的 net socket send 一样 这里似乎引发了一场巨大的争论 730 和那里 993 或者甚至在这里 999 然
  • 如果循环正在运行,wifi.sta 模块会连接吗?

    我试图检测模块何时实际连接到我的 wifi AP 因为 connect 没有回调 我做了如下简单的事情 wifi sta config SSID password wifi sta connect tmr delay 1000000 i 0
  • 嵌入式编程中的zalloc是什么?

    我正在研究对 ESP8266 串行 WiFi 芯片进行编程 在其 SDK 示例中 它广泛使用了一个名为os zalloc我期望的地方malloc 不过偶尔 os malloc也被使用 因此它们在功能上似乎并不相同 不幸的是没有文档 任何人都
  • 如何在不连续重置的情况下将esp8266从深度睡眠中唤醒

    我正在使用 esp8266 构建 IR 到 wifi 桥接器 基本上 我正在构建一个连接到红外遥控器内的 esp8266 的红外接收器 以通过 wifi 将接收到的红外远程按键转发到服务器 我使用的是 Wemos D1 Mini 我已经让
  • Sntp.sync() 忽略服务器

    我一直在尝试与 ntp 服务器同步时间 但是 nodemcu 似乎忽略了服务器参数 sync lua sntp sync fr pool ntp org function tm rtctime epoch2cal rtctime get p
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定

随机推荐

  • Linux操作系统~必考面试题⑥

    文件管理命令 1 cat 命令 cat 命令用于连接文件并打印到标准输出设备上 cat 主要有三大功能 1 一次显示整个文件 cat filename 2 从键盘创建一个文件 cat gt filename 3 将几个文件合并为一个文件 c
  • 链表-哈希表 详解

    链表 链表是由一系列节点组成的元素集合 每个节点包含两部分 数据域item和指向一下个节点的指针next 通过节点之间相互连接 最终串联成一个链表 链式存储结构就是 两个相邻的元素在内存中可能不是相邻的 每一个元素都有一个指针域 指针域一般
  • odoo权限管理详解

    前言 odoo作为ERP框架 必然有不同角色的用户使用这同一系统 对于系统上面的数据 应该对不同角色设置不同的查阅修改权限 odoo框架自带了了比较完善的权限控制机制 这篇博客的实践基于odoo13 其他版本可能略有差别 A 按odoo使用
  • 文举论金:黄金原油全面走势分析策略指导。

    市场没有绝对 涨跌没有定势 所以 对市场行情的涨跌平衡判断就是你的制胜法宝 欲望 有句意大利谚语 让金钱成为我们忠心耿耿的仆人 否则 它就会成为一个专横跋扈的主人 空头 多头都能赚钱 唯有贪心不能赚 是你掌控欲望还是欲望掌控你 古人云 不积
  • MVCC 实现原理

    这里是CS大白话专场 让枯燥的学习变得有趣 没有对象不要怕 我们new一个出来 每天对ta说不尽情话 好记性不如烂键盘 自己总结不如收藏别人 在讲解 MVCC 之前先来看一下 MySQL 中事务的四种隔离级别 读未提交 一个事务可以读到另一
  • ChatGPT生成内容很难脱离标准化,不建议用来写留学文书

    ChatGPT无疑是23年留学届的热门话题 也成为了不少留学生再也离不开的万能工具 从总结文献 润色论文 给教授写email似乎无所不能 各大高校对于学生使用ChatGPT的态度也有所不同 例如 哈佛大学教育代理院长 Anne Harrin
  • Unity游戏编程-——迷宫巡逻兵

    文章目录 游戏设计要求 程序设计要求 基本思路分析 模式基础 架构设计 关键模块 遇到的问题 资源地址 游戏设计要求 创建一个地图和若干巡逻兵 使用动画 每个巡逻兵走一个3 5个边的凸多边型 位置数据是相对地址 即每次确定下一个目标位置 用
  • 字节跳动(飞书)产品测试实习生一面

    下面面试问题的顺序记不清了 所以没按面试官问的顺序写 1 性能测试 2 黑盒和白盒 3 用过飞书吗 知道飞书的产品流程吗 4 谈谈你简历上写的项目 提到购物车功能 仔细讲讲 5 学过软件工程管理 说说整个软件的项目管理流程 6 看有服役的经
  • Linux系统调用指南

    Linux系统调用指南 文章是转载 但是我在后面的案例加了不少注解并debug了 如有疑问 留言交流 其实我也不懂 原文链接 blog packagecloud io https zcfy cc article the definitive
  • QTcpSocket发送数据和自定义数据

    在网络应用中 有时候我们会遇到这样的问题 用TCP不断的接收和发送不同类型的数据 数据大小 格式都不相同 起初看了qt的例子 按照例子写的程序效果相当的不好 尤其是在连续发送大数据的时候 接收端根本无法判断数据是否完整了 也不知道什么时候取
  • 基于VMD-LSTM-IOWA-RBF的碳排放混合预测研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 二氧化碳排放力争于2030年前达到峰值 努
  • uni-app checkbox全选的实现

    界面是这样的 需求 点击全选按钮上述全部选中 再次点击全部取消 解决方案 在js的data里面定义一个allCheck data return allCheck false 上面商品的的checkbox都一样的配置
  • window 无法访问docker_无法在windows中访问docker端口

    我在dockerfile中写了脚本来运行我的角度项目 It将创建集装箱 什么时候我正在运行我的容器我无法在浏览器中访问主机和端口 它说连接被拒绝了 我用windows机器 用工具箱运行docker 我的容器 gt 81471a6fbd35
  • php爬虫简单入门

    前些日子有点空闲就做了一个简单的爬虫 爬取了知乎50W条数据 因为知乎有测试流量过大 导致经常有验证码 本人图片验证码没有研究所以每次都是手动输入 有兴趣的小伙伴可以做个自动识别验证码就可以无限采取了 爬虫使用了curl public fu
  • spring嵌套事务,try-catch事务处理

    spring 事务总结 前置条件 表Teacher 别名 A 表Student 别名 B 分别插入 A中启动事务 B中不启动事务 testDemo01调用方法开启事务 testDemo01开启事务 A中insert中开启事务 调用执行 A中
  • 蓝牙协议介绍

    1 广播 ADV Advertising 1 1 BLE 报文结构 BLE引入access address 概念 用来指明接收者身份 概 其中 0x8E89BED6 这个access address 比较特殊 它表示要发给周边所有设备 即广
  • msys2 安装gcc g++ 命令

    pacman S base devel gcc vim
  • 常见设计模式的解析和实现(C++)之九—Decorator模式

    作用 动态地给一个对象添加一些额外的职责 就增加功能来说 Decorator模式相比生成子类更为灵活 UML结构图 抽象基类 1 Component 定义一个对象接口 可以为这个接口动态地添加职责 2 Decorator 维持一个指向Com
  • 优秀的Windows密码抓取工具

    优秀的工具如下 01 Mimikatz 简介 Mimikat是一个法国人写的轻量级调试器 Mimikat可以从内存中提取纯文本密码 hash PIN码和kerberos票证 mimikatz还可以执行哈希传递 票证传递或构建Golden票证
  • ESP8266 hspi的调试

    这一两个礼拜基本上都在爬这个坑 功夫不负有心人 终于搞定了 其实非常简单 以为这个东西有多么的复杂 其实不是这样的 被一些网上博主给误导了 8266端我用的是 ESP8266 NONOS SDK 3 0 examples periphera