正点原子f407使用cubemx创建 fatfs的一些bug记录

设置时钟频率

设置SDIO

设置fatfs

设置串口

设置DBUG

生成CubeIDE

这个坑爹东西,默认选了4B,4B会报错,需要在这里设置成1B才行!

main函数

添加一下printf重定向到串口

cpp 复制代码
// 重定向print start

int __io_putchar(int ch)
{
	while ((USART1->SR & 0X40) == 0);
	USART1->DR = (uint8_t) ch;
	return ch;
}

__attribute__((weak)) int _write(int file, char *ptr, int len)
{
	int DataIdx;
	for (DataIdx = 0; DataIdx < len; DataIdx++)
	{
		__io_putchar(*ptr++);
	}
	return len;
}

添加一下打印sd卡信息的函数

cpp 复制代码
void printf_sdcard_info(void)
{
	uint64_t CardCap;      	//SD卡容�??????
	HAL_SD_CardCIDTypeDef SDCard_CID;
	HAL_SD_CardInfoTypeDef  SDCardInfo;
	HAL_SD_GetCardCID(&hsd,&SDCard_CID);	//获取CID
	HAL_SD_GetCardInfo(&hsd,&SDCardInfo);                    //获取SD卡信�??????
	CardCap=(uint64_t)(SDCardInfo.LogBlockNbr)*(uint64_t)(SDCardInfo.LogBlockSize);	//计算SD卡容�??????
	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("Card ManufacturerID: %d \r\n",SDCard_CID.ManufacturerID);				//制�?�商ID
 	printf("CardVersion:         %d \r\n",(uint32_t)(SDCardInfo.CardVersion));		//卡版本号
	printf("Class:               %d \r\n",(uint32_t)(SDCardInfo.Class));		    //
 	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));				//卡容�??????

}

运行

能识别到了,在这里想骂一句CubeMX,你特娘的

相关推荐
无人等人1 天前
CyberRT(apollo) IPC(shm)通信包重复/丢包 bug 及解决方案
c++·bug
Urf_read1 天前
改BUG:Mock测试的时候,when失效
bug
賢8431 天前
如何保证bug在改完之后不会引起新bug
bug
永康李2 天前
Pandas:从一个DataFrame中直接索引赋值到另一个索引位置出错的Bug及其解决方案
python·bug·pandas
NPE~2 天前
Bug:Goland debug失效详细解决步骤【合集】
go·bug·goland·dlv失效
Urf_read3 天前
改BUG:远程连接redis失败,可能是防火墙的问题
java·redis·python·bug
Tlog嵌入式4 天前
单片机常见bug记录(长期更新)
单片机·嵌入式硬件·bug
会发光的猪。5 天前
el-input无法输入0.0001的小数,自动转换为0在vue3中的bug
前端·javascript·vue.js·elementui·bug
shandianchengzi5 天前
【BUG】LLM|Ubuntu 用 ollama 部署 DeepSeek 但没输出,llama 有输出
ubuntu·llm·bug·llama·ollama·deepseek
抽象具象化6 天前
Bug日记:Linux中systemctl restart network失败问题,网络故障
linux·运维·bug