zoukankan      html  css  js  c++  java
  • 【GMT43智能液晶模块】例程十二:SDIO实验——读取SD卡信息

    实验原理:

      STM32F429上带有SDIO控制器,GMT43液晶模块上将SDIO连接到TF卡座上。本

    实验将Micro SD卡插入TF卡座上即可。SD卡中可存放液晶显示模块需要显示的图片、字

    库等资源。

    示例截图:

    源代码下载链接:

    链接:https://pan.baidu.com/s/1kXf5erd 密码:8qpr

    GMT43购买链接:

    核心代码:

    SD_Error SD_Init(void)
    {
      __IO SD_Error errorstatus = SD_OK;
        
        NVIC_InitTypeDef NVIC_InitStructure;
        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
        // SDIO Interrupt ENABLE
        NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        // DMA2 STREAMx Interrupt ENABLE
        NVIC_InitStructure.NVIC_IRQChannel = SD_SDIO_DMA_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        NVIC_Init(&NVIC_InitStructure);
      
      /* SDIO Peripheral Low Level Init */
      SD_LowLevel_Init();
    
      SDIO_DeInit();
    
      errorstatus = SD_PowerON();
    
      if (errorstatus != SD_OK)
      {
        /*!< CMD Response TimeOut (wait for CMDSENT flag) */
        return(errorstatus);
      }
    
      errorstatus = SD_InitializeCards();
    
      if (errorstatus != SD_OK)
      {
        /*!< CMD Response TimeOut (wait for CMDSENT flag) */
        return(errorstatus);
      }
    
      /*!< Configure the SDIO peripheral */
      /*!< SDIO_CK = SDIOCLK / (SDIO_TRANSFER_CLK_DIV + 2) */
      /*!< on STM32F4xx devices, SDIOCLK is fixed to 48MHz */
      SDIO_InitStructure.SDIO_ClockDiv = SDIO_TRANSFER_CLK_DIV;
      SDIO_InitStructure.SDIO_ClockEdge = SDIO_ClockEdge_Rising;
      SDIO_InitStructure.SDIO_ClockBypass = SDIO_ClockBypass_Disable;
      SDIO_InitStructure.SDIO_ClockPowerSave = SDIO_ClockPowerSave_Disable;
      SDIO_InitStructure.SDIO_BusWide = SDIO_BusWide_1b;
      SDIO_InitStructure.SDIO_HardwareFlowControl = SDIO_HardwareFlowControl_Disable;
      SDIO_Init(&SDIO_InitStructure);
    
      /*----------------- Read CSD/CID MSD registers ------------------*/
      errorstatus = SD_GetCardInfo(&SDCardInfo);
    
      if (errorstatus == SD_OK)
      {
        /*----------------- Select Card --------------------------------*/
        errorstatus = SD_SelectDeselect((uint32_t) (SDCardInfo.RCA << 16));
      }
    
      if (errorstatus == SD_OK)
      {
        errorstatus = SD_EnableWideBusOperation(SDIO_BusWide_4b);
      }  
    
      return(errorstatus);
    }
  • 相关阅读:
    LeetCode 230. Kth Smallest Element in a BST
    LeetCode 114. Flatten Binary Tree to Linked List
    LeetCode 222. Count Complete Tree Nodes
    LeetCode 129. Sum Root to Leaf Numbers
    LeetCode 113. Path Sum II
    LeetCode 257. Binary Tree Paths
    Java Convert String & Int
    Java Annotations
    LeetCode 236. Lowest Common Ancestor of a Binary Tree
    LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/8333874.html
Copyright © 2011-2022 走看看