#ifdef USE_SDIO_SD /* #include "sys.h" #include "usart.h" #include "led.h" #include "key.h" #include "ltdc.h" #include "lcd.h" #include "sdram.h" #include "usmart.h" #include "pcf8574.h" #include "mpu.h" */ #include "sys_delay.h" #include "sys_malloc.h" #include "obj_sdmmc_sdcard.h" /************************************************ ALIENTEK 阿波罗STM32H7开发板 实验40 SD卡实验-HAL库函数版 技术支持:www.openedv.com 淘宝店铺:http://eboard.taobao.com 关注微信公众平台微信号:"正点原子",免费获取STM32资料。 广州市星翼电子科技有限公司 作者:正点原子 @ALIENTEK ************************************************/ //通过串口打印SD卡相关信息 void show_sdcard_info(void) { switch(SDCardInfo.CardType) { case STD_CAPACITY_SD_CARD_V1_1:printf("Card Type:SDSC V1.1\r\n");break; case STD_CAPACITY_SD_CARD_V2_0:printf("Card Type:SDSC V2.0\r\n");break; case HIGH_CAPACITY_SD_CARD:printf("Card Type:SDHC V2.0\r\n");break; case MULTIMEDIA_CARD:printf("Card Type:MMC Card\r\n");break; } printf("Card ManufacturerID:%d\r\n",SDCardInfo.SD_cid.ManufacturerID); //制造商ID printf("Card RCA:%d\r\n",SDCardInfo.RCA); //卡相对地址 printf("Card Capacity:%d MB\r\n",(u32)(SDCardInfo.CardCapacity>>20)); //显示容量 printf("Card BlockSize:%d\r\n\r\n",SDCardInfo.CardBlockSize); //显示块大小 } //测试SD卡的读取 //从secaddr地址开始,读取seccnt个扇区的数据 //secaddr:扇区地址 //seccnt:扇区数 void sd_test_read(u32 secaddr,u32 seccnt) { u32 i; u8 *buf; u8 sta=0; buf=mymalloc(SRAMIN,seccnt*512); //申请内存,从SDRAM申请内存 sta=SD_ReadDisk(buf,secaddr,seccnt);//读取secaddr扇区开始的内容 if(sta==0) { printf("SECTOR %d DATA:\r\n",secaddr); for(i=0;i