Arduino ESP32 使用HSPI和VSPI接口挂载SD卡区别
Arduino ESP32 使用HSPI和VSPI接口挂载SD卡区别
在挂载SD卡时,ESP32使用HSPI和VSPI接口挂载SD卡区别
如果使用hard SPI(HSPI)接口需要注意以下几点:
- 烧写程序前先断开SD卡供电,否则无法进行程序烧录。
- 并且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卡区别相关推荐
- openwrt 设置自动挂载SD卡
使用MT7688跑的openwrt系统做了一个控制器,已经在项目上应用,程序功能还可以继续完善,有兴趣的可以看看智能控制器参数说明,通过485的接口可以使用协议转换器来控制舞台灯具,协议转换器可以看看 ...
- Hi3516A开发--挂载SD卡和U盘
一.SD卡 1.通过fdisk -l命令确认板子上的linux系统是否识别SD卡 / # fdisk -l Disk /dev/mmcblk0: 63.8 GB, 63864569856 bytes ...
- sdio接口_单片机基础 —— 使用SDMMC接口读写SD卡数据
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SDMMC外设读取SD卡数据. 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4 ...
- 海思系统开发——linux下挂载SD卡
海思系统开发--linux下挂载SD卡 (1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 [/]# fdisk -l /mnt/mmc # fdisk -l Disk /dev ...
- RTThread 挂载SD卡 init SD card failed
项目场景 RTThread系统挂载SD卡 STM32F407 替换为 GD32F407 问题描述 在使用STM32F407主芯片时挂载SD卡正常运行,同样的程序同样的板卡,主芯片换成了GD32F407 ...
- Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统
系列文章目录 Exynos4412 移植针对Samsung的Linux-6.1(一)下载.配置.编译Linux-6.1 Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动 ...
- 无法挂载sd卡(android),不能安装APK(1)
1.应用程序下载的话是默认安装到/mnt/sdcard下的,如果你sd卡没挂载上,系统会提示你request an SD卡或者damage SD卡,所以此时你去这个/mnt/sdcard或者/sdca ...
- linux 挂载 SD 卡
最近需要将板载 rootfs 镜像中的某个可执行文件提取到电脑上.利用 SD 卡可以做到. 下面的命令对 EMMC 也适用 主要思路是在 rootfs 起来之后通过 mount 命令去挂载 SD 卡的 ...
- 苹果公司申请新专利 聚合USB接口和SD卡槽
新浪科技讯 北京时间6月28日凌晨消息,苹果公司周四向美国专利商标局提交的一份专利文件显示,该公司为一项聚合USB接口和SD卡槽的新技术申请专利. 该专利名为"混合输入端口"技术. ...
最新文章
- 一次线上故障之Java对象的一生简单总结
- 首创模拟电子计算机,指导日本原子弹投射,这个大佬有点牛
- 简谈创建字典的几种方式
- 考计算机专业西南大学排名,2017西南大学优势专业排名
- 为什么那么好的女孩子还单身?
- Android 调用12306接口,GitHub - AndroidyxChen/loading-12306: 仿PC端12306的刷新loading的自定义view...
- Java笔记-Java端口扫描功能(含TCP包分析以及原理)
- android开发 视图联动_android开发_ViewGroup(组视图)-- 五大布局
- iOS开发——获取本设备IP
- OFBiz + Opentaps 目录管理 六. 产品目录
- Java selenium和python_c#和Java和python设置selenium超时时间
- jq 登陆界面 php,利用jquery制作用户登陆界面
- STM32单片机扩展下的IPUS SQPI PSRAM应用领域
- ps使图片边缘模糊且融入背景色
- C# VS2010 无法切换输入法。
- 运放电路的工作原理_陶瓷气体放电管工作原理全业电子
- 服务器多出mysql帐户_在一台服务器构建多mysql 服务
- MATLAB图像平移、旋转、缩放、裁剪
- 电脑中毒C盘满了不知道怎么回事!PC版一键清理电脑C盘工具
- java共享经济项目分享_共享创业项目平台哪个好(分享5个共享创业项目)