打印

用STM32CubeMX生成的SD卡驱动程序,无法读出SD卡的基本信息!

[复制链接]
386|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
哈金|  楼主 | 2018-7-5 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32CubeMX用的是最新的5.6版本,开发板用的原子的F407ZET。参照网友这个帖子:http://www.openedv.com/forum.php ... ghlight=cubemx%2BSD(【分享】用STM32CubeMX快速生成一个SD卡读写程序 )。一步步生成后,SD卡初始化可以通过,但是用HAL_SD_GetCardState(&SDCARD_Handler)函数读取状态,始终会超时错误,然后继续用HAL_SD_GetCardInfo(&SDCARD_Handler,&SDCardInfo)函数读取SD卡的基本信息,全部为0.
但是用开发板自带的程序却没有问题,SD卡基本信息都可以正确读取出来。又尝试了F103和H750的开发板,现象完全相同,不知道问题到底出在哪里。


int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_SDIO_SD_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
//        printf("F407 SD new!
");
        if(HAL_SD_GetCardState(&SDCARD_Handler)==HAL_SD_CARD_TRANSFER)
                printf("HAL_SD_GetCardState OK!
");
        else printf("HAL_SD_GetCardState NG!
");        //此函数每次都是超时错误
        show_sdcard_info();        //打印SD卡相关信息        

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

432

主题

433

帖子

1

粉丝