首页 > 其他分享 >SDMMC调试

SDMMC调试

时间:2023-11-21 10:01:23浏览次数:39  
标签:HAL SDCardInfo sdcard SDMMC 调试 printf Card SD

1. SDMMC配置,SDMMC hardware flow control使能 GPIO都拉高

 

 

 2.获取状态和SD卡信息

char GetStatus()
{
    int sdcard_status = 0;

    sdcard_status = HAL_SD_GetCardState(&hsd1);

    if(sdcard_status != HAL_SD_CARD_TRANSFER)
    {
        return 1;
    }
    return 0;
}

char GetInfo()
{
    int sdcard_status = 0;

    sdcard_status = HAL_SD_GetCardState(&hsd1);

    if(sdcard_status == HAL_SD_CARD_TRANSFER)
    {
        uint64_t CardCap;

        HAL_SD_CardCIDTypeDef SDCard_CID;
        HAL_SD_CardInfoTypeDef SDCardInfo;


        HAL_SD_GetCardInfo(&hsd1,&SDCardInfo);

        CardCap=(uint64_t)(SDCardInfo.LogBlockNbr)*(uint64_t)(SDCardInfo.LogBlockSize);

        switch(SDCardInfo.CardType)
        {

            case CARD_SDSC:

                {

                    if(SDCardInfo.CardVersion == CARD_V1_X)

                        printf("Card Type:SDSC V1\r\n");

                    else if(SDCardInfo.CardVersion == CARD_V2_X)

                        printf("Card Type:SDSC V2\r\n");

                }

                break;

                case CARD_SDHC_SDXC:printf("Card Type:SDHC\r\n");break;

                default:break;

        }

            printf("CardVersion: %d \r\n",(uint32_t)(SDCardInfo.CardVersion)); //SD鍗$増鏈�??�??

            printf("Class: %d \r\n",(uint32_t)(SDCardInfo.Class)); //SD鍗$被锟�????????

            printf("Card RCA(RelCardAdd):%d \r\n",SDCardInfo.RelCardAdd); //鍗$浉�?�瑰湴锟�????????

            printf("Card BlockNbr: %d \r\n",SDCardInfo.BlockNbr); //鍧楁暟锟�????????

            printf("Card BlockSize: %d \r\n",SDCardInfo.BlockSize); //鍧楀ぇ锟�????????

            printf("LogBlockNbr: %d \r\n",(uint32_t)(SDCardInfo.LogBlockNbr)); //閫昏緫鍧楁暟锟�??????

            printf("LogBlockSize: %d \r\n",(uint32_t)(SDCardInfo.LogBlockSize)); //閫昏緫鍧�??ぇ锟�????????

            printf("Card Capacity: %d MB\r\n",(uint32_t)(CardCap>>20)); //SD鍗�?�锟�??????

            HAL_SD_GetCardCID(&hsd1,&SDCard_CID); //鑾峰彇CID
            printf("Card ManufacturerID: %d \r\n",SDCard_CID.ManufacturerID); //鍒讹�???锟藉晢ID
        return 0;
    }
    else
    {
        printf("SD card init fail! \r\n" );
        return 1;
    }
}

 

标签:HAL,SDCardInfo,sdcard,SDMMC,调试,printf,Card,SD
From: https://www.cnblogs.com/boring-luobo/p/17811878.html

相关文章

  • python之代理ip的配置与调试
    前言代理IP是网络爬虫中常用的技术手段。通过使用代理服务器,可以实现对特定网站的访问次数限制、避免IP封锁等问题。本文将介绍Python中代理IP的配置与调试方法,并附带代码实例。一、代理IP的配置Python中使用代理IP需要使用requests库,而requests库中则需要设置proxies参数。proxies......
  • UNIAPP 钉钉微应用调试 PC端移动端调试钉钉微应用H5
    https://open.dingtalk.com/document/resourcedownload/micro-application-four-terminal-debugging-tool-web-edition 流程可以参考钉钉文档https://open-dev.dingtalk.com 钉钉开放平台登录      在项目的template.h5.html中的<head>里塞入<scriptsrc="https:......
  • 东方马达调试
    东方马达步进电机调试参考记录东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录......
  • 基于stm32H730的解决方案开发之SD卡的读写调试
    一概述在嵌入式小系统领域,SD卡存储是一个非常重要的功能。可从难度上,它又是非常难的。因为它涉及到两个大的功能点,一个是文件系统,这个难度非一般。另外一个是sd卡的底层驱动。涉及到的接口多,所以也是一个难度高的地方。两个混合在一起,非常容易出问题。笔者在这块花费了很多时......
  • Visual Studio编译调试MySQL源码
    最近想阅读下MySQL源码,虽然在linux下编译MySQL源码还是很顺利的,但是奈何不习惯在linux下阅读代码,比较喜欢用宇宙第一IDEVisualStudio来阅读调试代码,下面就记录下在windows上用visualstudio来编译MySQL5.7.44的源码。下载mysql源码浏览器打开网页:https://dev.mysql.com/dow......
  • Visual Studio中使用SourceLink调试Abp源码
    在VisualStudio中目前已经能轻松的调试Abp源码,只需要以下两步操作。【选项】中设置调试最重要的一步,Nuget安装SourceLink.Copy.PdbFiles库,启用SourceLink调试后未安装该库不会下载对应pdb文件启动调试,等待自动下载源码符号文件,然后就可以愉快的进行源码调试了。......
  • 十九——.NET 项目&DLL 反编译&未授权访问&配置调试报错
    .NET是微软推出的一种新的软件运行平台,它包括一整套应用范围广泛的技术,旨在迎接Java所带来的挑战。.NET给网站管理系统开发带来了很多新的技术,尤其是它的“混合语言”开发方式,是第一个支持多种语言混合开发的软件运行平台,下一代Windows--LongHorn的核心将会看到.NET的身影。如果读......
  • .NET|--问题集锦|--调试报错,进行了无法编译的编辑,在修复编译错误之前,将无法应用更
    前言相关版本信息#VisualStudio版本MicrosoftVisualStudioProfessional2022(64位)报错信息#生成项目的时候不会报错,但是调试的时候还会报错,ENC1002 无法应用更改-意外错误:“Readoutofbounds.”解决方案VisualStudio菜单栏|--{工具}|--{选......
  • 网页调试(css,html,js)获取资源链接等
    进入调试模式F12或者右键检查在元素栏点击相应的组件可以查看html源码,图片视频音频链接等,或者点击组件右键检查还可以查看组件css布局变化html元素源码可以看到class类名,触发事件以及style样式在css上的改变是实时的,刷新页面会失效html的改变需要双击,同样刷新页面......
  • Net 高级调试之九:SOSEX 扩展命令介绍
    一、介绍今天是《Net高级调试》的第九篇文章。这篇文章设计的内容挺多的,比如:扩展的断点支持,如何查找元数据,栈回溯,对象检查,死锁检测等等,内容挺多的。功能特别强大,使用特别方便,但是需要说明一点,这些功能不是SOS的功能,是SOSEX的扩展功能,但是,这一系列功能只是支持NetFr......