函数在使用f_mkfs初始化后,使用f_mount重新挂载时使用NULL取消挂载后,再重新挂载提示0x0C也就是无文件系统,调试进函数发现是在如下函数中返回了2导致的 static BYTE check_fs ( /* 0:Valid FAT-BS, 1:Valid BS but not FAT, 2:Not a BS, 3isk error */ FATFS* fs, /* File system object */ DWORD sect /* Sector# (lba) to check if it is an FAT boot record or not */ ) { fs->wflag = 0; fs->winsect = 0xFFFFFFFF; /* Invaidate window */ if (move_window(fs, sect) != FR_OK) /* Load boot record */ return 3; if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check boot record signature (always placed at offset 510 even if the sector size is >512) */ return 2; if ((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146) /* Check "FAT" string */ return 0; if ((LD_DWORD(&fs->win[BS_FilSysType32]) & 0xFFFFFF) == 0x544146) /* Check "FAT" string */ return 0; return 1; } 而这个函数则是提示引导签名并不正确,求助。 |
外部中断升降沿类型判断
定时器正交编码器功能
STM32F427串口接收和发送中断同时使能,出现接收中断丢数的现象。
为什么生成代码时一直卡在generating user source code 救救孩子吧。
easylogger打印失败
为什么ETH配置中没有Advanced Parameters?
与HAL_ADC_Start_DMA相关的一个十分怪异的问题
由stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直没有呢
ptp PPS输出
STM32F407ZGT6芯片被锁
需要调用f_mkfs make一次,才能把FATFS的文件头写到memory。再check的时候才能正确。但前提是diskio里的驱动必须是正确的。
以下宏也要开启
define FF_USE_MKFS 1
扇区大小按照实际介质参数设置(FLASH一般是4k)
define FF_MIN_SS 4096 //512
define FF_MAX_SS 4096 //512