printf("Micro SD Card Test...\r\n");

/* 检测SD卡是否正常(处于数据传输模式的传输状态) */
HAL_SD_CardCIDTypeDef sdcard_cid;

uint32_t sdcard_status = HAL_SD_GetCardState(&hsd);
if(sdcard_status == HAL_SD_CARD_TRANSFER)
{
    printf("SD card init ok!\r\n\r\n");
    HAL_SD_GetCardCID(&hsd,&sdcard_cid);
     
    //打印SD卡基本信息
    printf("SD card information!\r\n"); 
      printf("ManufacturerID: %d \r\n",sdcard_cid.ManufacturerID);
      printf("CardType: %d \r\n",hsd.SdCard.CardType);
    printf("CardCapacity: %llu\r\n",((unsigned long long)hsd.SdCard.BlockSize*hsd.SdCard.BlockNbr));
    printf("CardBlockSize: %d \r\n",hsd.SdCard.BlockSize);
    printf("BlockNbr: %d \r\n",hsd.SdCard.BlockNbr);
    printf("Class: %d \r\n",hsd.SdCard.Class);
    
    //读取并打印SD卡的CID信息
    
    
}else

    printf("SD card init fail!\r\n" );
    return 0;
}

printf("------------------- Block Erase -------------------------------\r\n");
sdcard_status = HAL_SD_Erase(&hsd, 10*512, 11*512);
if (sdcard_status == 0)
{
    printf("Erase block ok\r\n");
}
else
{
    printf("Erase block fail\r\n");
}

HAL_Delay(100);
printf("------------------- Read SD card block data Test ------------------\r\n");
sdcard_status = HAL_SD_ReadBlocks_DMA(&hsd,(uint8_t *)read_buf,10*512,1);
if(sdcard_status == 0)

    printf("Read block data ok \r\n" );
    for(int i = 0; i < 512; i++)
    {
        printf("0x%02x ", read_buf[i]);
        if((i+1)%16 == 0)
        {
            printf("\r\n");
        }
    }
}
else
{
    printf("Read block data fail!\r\n " );
}

for(int i = 0; i < 512; i++)
{
    write_buf[i] = i % 256;
}

printf("------------------- Write SD card block data Test ------------------\r\n");
sdcard_status = HAL_SD_WriteBlocks_DMA(&hsd,(uint8_t *)write_buf,5120,1);
if(sdcard_status == 0)

    printf("Write block data ok \r\n" );
}
else
{
    printf("Write block data fail!\r\n " );
}
HAL_Delay(100);
printf("------------------- Read SD card block data after Write ------------------\r\n");
sdcard_status = HAL_SD_ReadBlocks_DMA(&hsd,(uint8_t *)read_buf,5120,1);
if(sdcard_status == 0)

    printf("Read block data ok \r\n" );
    for(int i = 0; i < 512; i++)
    {
        printf("0x%02x ", read_buf[i]);
        if((i+1)%16 == 0)
        {
            printf("\r\n");
        }
    }
}

cubemx 配置sd卡 读写测试程序相关推荐

  1. 【正点原子FPGA连载】第四十六章SD卡读写测试实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  2. STM32CubeMX系列09——SDIO(SD卡读写、SD卡移植FATFS文件系统)

    文章目录 1. 准备工作 1.1. 简单扫盲 1.1.1. SD卡 1.1.2. TF卡 1.1.3. SDIO接口 1.2. 所用硬件及原理图 2. 创建工程 2.1. 选择主控 2.2. 系统配置 ...

  3. stm32Cubemx实用篇(四):SD卡读写实验

    stm32Cubemx实用篇(四):SD卡读写实验 本章将介绍使用stm32Cubemx软件配置SD卡读写.并通过串口打印出相应信息. 硬件平台:Stm32H743IIT6 +16GB TF卡 软件: ...

  4. SDIO协议梳理附SD卡读写以及FATFS移植实例

    文章列表 嵌入式各协议标准按照OSI模型的思路进行逐个梳理,文章列表如下: 串行通信&UART协议梳理附STM32平台采用DMA以UART方式收发不定长信息 I²C总线协议梳理附STM32平台 ...

  5. 简述sd卡2.0协议_【正点原子FPGA连载】第十二章SD卡读写TXT文本实验-领航者 ZYNQ 之嵌入式开发指南...

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  6. SDIO—SD 卡读写测试

    1.SDIO 简介 SD 卡 (Secure Digital Memory Card) 在我们生活中已经非常普遍了,控制器对 SD 卡进行读写通信操作一般有两种通信接口可选,一种是 SPI 接口,另外 ...

  7. linux读取sd卡文件数据,Linux系统和SD卡读写部分程序.doc

    Linux系统和SD卡读写部分程序 11.1.1 SD卡系统概念 Linux系统移植>第11章SD卡驱动移植,本章重点为SD卡协议介绍和SD卡驱动分析,后面也介绍SD卡驱动移植过程.随着SD卡存 ...

  8. STM32利用FATFS文件系统给SD卡读写数据

    STM32利用FATFS文件系统给SD卡读写数据 注:FATFS文件系统官方网址(内含各种函数具体功能及参数配置): FATFS文件系统官方网址 1. 所需.c和.h文件 FATFS中的文件的作用如下 ...

  9. 【STM32】STM32 SDIO SD卡读写测试(四)-- SD_Test之Transfer Mode阶段

    相关文章 <[SDIO]SDIO.SD卡.FatFs文件系统相关文章索引> 1.前言 本篇文章主要是介绍SD卡的读写测试,包括:SD卡擦除测试.SD卡单一块读写测试.SD卡多个块读写测试. ...

最新文章

  1. 网络营销十技之六:联署计划营销
  2. 《深入浅出Ext JS》(第2版)即将上市
  3. 压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志
  4. python网络编程例子
  5. GNU/LINUX(KaliUbuntu)安装chrome浏览器
  6. kube-controller-manager 配置参数解读
  7. 查看当前机器.net 版本的方法
  8. linux下查找命令which/whereis/locate/find的对比和总结
  9. “苹果税”猛于虎惹众怒,库克:我们是不会让步的
  10. linux 分配组命令,linux下一个用户如何分配给多个用户组?求命令,谢了。
  11. Visual Studio 2017 15.4 正式发布,那些你必须知道的新特性!
  12. mongodb记录存储管理
  13. db2 查看属性的数据类型 小数位 null约束
  14. React入门---组件-4
  15. left和offsetLeft
  16. 2019最新某私塾在线高级java软件架构师实战培训教程
  17. macOS Big Sur初体验之自带五笔输入法质变
  18. matlab 变分法,模糊数学+变分法+Matlab基础教程
  19. 今日头条mysql面试题_【今日头条】测试工程师面试题
  20. 蓝牙车库门禁卡原理及实践

热门文章

  1. linux内核声卡管理,浅析linux 2.6.30.4内核中uda134x声卡驱动源码 - audio和bluetooth
  2. I2C读写EEPROM
  3. 微信小程序使用promise 一次封装全部接口
  4. Amazon的VP为什么不能Qualify中国互联网公司?
  5. 如何写爆炸性新闻 做好自媒体
  6. scikit-learn_LinearModel_02_峰回归和峰归类
  7. Linux环境安裝oracle 11g
  8. 第七章:混合策略与混合策略纳什均衡
  9. HTTP协议格式以及Fiddler用法
  10. matlab求最短路,Matlab最短路学习