Arduino ESP32 使用HSPI和VSPI接口挂载SD卡区别


在挂载SD卡时,ESP32使用HSPI和VSPI接口挂载SD卡区别

如果使用hard SPI(HSPI)接口需要注意以下几点:

  1. 烧写程序前先断开SD卡供电,否则无法进行程序烧录。
  2. 并且SD卡需要在复位或重启后再给SD卡供电。否则ESP32会无限重启。

如果使用soft SPI(VSPI)接口不存在以上问题。

不定义SPI引脚直接使用SD.begin();进行初始化时,默认是VSPI接口。



  • 以上为验证开发板和SD卡槽模块。
if(!SD.begin()){Serial.println("存储卡挂载失败");return;}

接线说明

HSPI接口接线方式:

     HSPI
[ESP32 IO26 – CS MICRO SD]
[ESP32 IO14 – MOSI MICRO SD]
[ESP32 IO13 – MISO MICRO SD]
[ESP32 IO27 – SCK MICRO SD]
[ESP32 GND – GND MICRO SD]
[VIN – VCC MICRO SD]

VSPI接口接线方式:

         VSPI* MICROSD CS    -    ESP32 IO5MICROSD SCK   -     ESP32 IO18MICROSD MOSI  -    ESP32 IO23MICROSD MISO   -   ESP32 IO19MICROSD Vcc   -      ESP32 VINMICROSD GND   -    ESP32 GND

兼容两种模式下的挂载的示例程序程序

根据不同的需求请对应的宏定义即可。

/*如果使用hard SPI(HSPI)接口需要注意以下几点:1.烧写程序前先断开SD卡供电,否则无法进行程序烧录。2.并且SD卡需要在复位或重启后再给SD卡供电。否则ESP32会无限重启。如果使用soft SPI(VSPI)接口不存在以上问题。不定义SPI引脚直接使用SD.begin();默认是VSPI接口。
*/#include <Arduino.h>
//引用SD相关库
#include <SD.h>
#include <FS.h>
#include <SPI.h>
//HSPI接口和VSPI接口二选一
//#define  hspi
#define  vspi
#ifdef vspi
SPIClass sdSPI(VSPI);
#define SD_MISO     19
#define SD_MOSI     23
#define SD_SCLK     18
#define SD_CS       5#else
SPIClass sdSPI(HSPI);
#define SD_MISO     12
#define SD_MOSI     13
#define SD_SCLK     14
#define SD_CS       15#endif
void SD_init();void setup()
{Serial.begin(115200);delay(500);
#ifdef  hspi Serial.println("请插入内存卡");delay(12000);
#endif SD_init();//初始化SD函数}void loop() {//打印存储卡信息Serial.printf("存储卡总大小是: %lluMB \n", SD.cardSize() / (1024 * 1024)); // "/ (1024 * 1024)"可以换成">> 20"Serial.printf("文件系统总大小是: %lluB \n", SD.totalBytes());Serial.printf("文件系统已用大小是: %lluB \n", SD.usedBytes());delay(5000);
}void SD_init() {//挂载文件系统sdSPI.begin(SD_SCLK, SD_MISO, SD_MOSI, SD_CS);if (!SD.begin(SD_CS, sdSPI)){// if(!SD.begin()){Serial.println("存储卡挂载失败");return;}uint8_t cardType = SD.cardType();if (cardType == CARD_NONE){Serial.println("未连接存储卡");return;}else if (cardType == CARD_MMC){Serial.println("挂载了MMC卡");}else if (cardType == CARD_SD){Serial.println("挂载了SDSC卡");}else if (cardType == CARD_SDHC){Serial.println("挂载了SDHC卡");}else{Serial.println("挂载了未知存储卡");}
}

Arduino ESP32 使用HSPI和VSPI接口挂载SD卡区别相关推荐

  1. openwrt 设置自动挂载SD卡

    使用MT7688跑的openwrt系统做了一个控制器,已经在项目上应用,程序功能还可以继续完善,有兴趣的可以看看智能控制器参数说明,通过485的接口可以使用协议转换器来控制舞台灯具,协议转换器可以看看 ...

  2. Hi3516A开发--挂载SD卡和U盘

    一.SD卡 1.通过fdisk -l命令确认板子上的linux系统是否识别SD卡 / # fdisk -l Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes ...

  3. sdio接口_单片机基础 —— 使用SDMMC接口读写SD卡数据

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SDMMC外设读取SD卡数据. 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4 ...

  4. 海思系统开发——linux下挂载SD卡

    海思系统开发--linux下挂载SD卡 (1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 [/]# fdisk -l /mnt/mmc # fdisk -l Disk /dev ...

  5. RTThread 挂载SD卡 init SD card failed

    项目场景 RTThread系统挂载SD卡 STM32F407 替换为 GD32F407 问题描述 在使用STM32F407主芯片时挂载SD卡正常运行,同样的程序同样的板卡,主芯片换成了GD32F407 ...

  6. Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统

    系列文章目录 Exynos4412 移植针对Samsung的Linux-6.1(一)下载.配置.编译Linux-6.1 Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动 ...

  7. 无法挂载sd卡(android),不能安装APK(1)

    1.应用程序下载的话是默认安装到/mnt/sdcard下的,如果你sd卡没挂载上,系统会提示你request an SD卡或者damage SD卡,所以此时你去这个/mnt/sdcard或者/sdca ...

  8. linux 挂载 SD 卡

    最近需要将板载 rootfs 镜像中的某个可执行文件提取到电脑上.利用 SD 卡可以做到. 下面的命令对 EMMC 也适用 主要思路是在 rootfs 起来之后通过 mount 命令去挂载 SD 卡的 ...

  9. 苹果公司申请新专利 聚合USB接口和SD卡槽

    新浪科技讯 北京时间6月28日凌晨消息,苹果公司周四向美国专利商标局提交的一份专利文件显示,该公司为一项聚合USB接口和SD卡槽的新技术申请专利. 该专利名为"混合输入端口"技术. ...

最新文章

  1. 一次线上故障之Java对象的一生简单总结
  2. 首创模拟电子计算机,指导日本原子弹投射,这个大佬有点牛
  3. 简谈创建字典的几种方式
  4. 考计算机专业西南大学排名,2017西南大学优势专业排名
  5. 为什么那么好的女孩子还单身?
  6. Android 调用12306接口,GitHub - AndroidyxChen/loading-12306: 仿PC端12306的刷新loading的自定义view...
  7. Java笔记-Java端口扫描功能(含TCP包分析以及原理)
  8. android开发 视图联动_android开发_ViewGroup(组视图)-- 五大布局
  9. iOS开发——获取本设备IP
  10. OFBiz + Opentaps 目录管理 六. 产品目录
  11. Java selenium和python_c#和Java和python设置selenium超时时间
  12. jq 登陆界面 php,利用jquery制作用户登陆界面
  13. STM32单片机扩展下的IPUS SQPI PSRAM应用领域
  14. ps使图片边缘模糊且融入背景色
  15. C# VS2010 无法切换输入法。
  16. 运放电路的工作原理_陶瓷气体放电管工作原理全业电子
  17. 服务器多出mysql帐户_在一台服务器构建多mysql 服务
  18. MATLAB图像平移、旋转、缩放、裁剪
  19. 电脑中毒C盘满了不知道怎么回事!PC版一键清理电脑C盘工具
  20. java共享经济项目分享_共享创业项目平台哪个好(分享5个共享创业项目)

热门文章

  1. 【爬虫】使用requests爬取英雄联盟英雄皮肤
  2. python文本挖掘与分析:热剧《延禧攻略》用户评论分析
  3. 程序员的算法趣题:Q22 不缠绕的纸杯电话(Java版)
  4. windows 一机双网
  5. 移动互联网的兴起,为什么把短信验证码捧火了?——SUBMAIL
  6. 网上IC笔试面试题目与秋招进度(2022.11.5更新)
  7. [ 利器篇 ] - LInux 下百度网盘客户端 BaiduPCS
  8. ipmitool 设置网关_IPMITOOL常用操作指令
  9. Twitter郭晓江:硅谷公司暗自较力,揭秘机器学习的规模化
  10. HotSpot线程与栈帧