1 SDMMC FATFS
在以前的407工程都可以跑通, 但是新的cubemx对h743的SDMMC好像有问题
在没加入fatfs之前, 可以用下面代码读取参数
void sdmmc_test(void) {
int sdcard_status = 0;
HAL_SD_CardCIDTypedef sdcard_cid;
sdcard_status = HAL_SD_GetCardState(&hsd1);
if(sdcard_status == HAL_SD_CARD_TRANSFER)
{
printf("SD card init ok!\r\n\r\n");
//打印SD卡基本信息
printf("SD card information!\r\n");
printf("CardCapacity: %llu\r\n",((unsigned long long)hsd1.SdCard.BlockSize*hsd1.SdCard.BlockNbr));
printf("CardBlockSize: %d \r\n",hsd1.SdCard.BlockSize);
printf("RCA: %d \r\n",hsd1.SdCard.RelCardAdd);
printf("CardType: %d \r\n",hsd1.SdCard.CardType);
//读取并打印SD卡的CID信息
HAL_SD_GetCardCID(&hsd1,&sdcard_cid);
printf("ManufacturerID: %d \r\n",sdcard_cid.ManufacturerID);
}
else
{
printf("SD card init fail!\r\n" );
}
}
但是在加入fatfs之后, 就不能读取了, 必须要fatfs初始化挂载之后, 才能获取, 个人猜测是fatfs里面改动了代码, 导致比如挂载之后, 才和SDMMC通信
2 USB 读卡器的影响
所以造成的问题就是, 如果没挂载sd卡, 就不能获取到SD卡信息
*block_num = hsd1.SdCard.BlockNbr ;
*block_size = hsd1.SdCard.BlockSize;
所以最后的方案就是挂载SD卡后, 再进行USB 读卡器设置