Problem with FatFs and STM32Cube_FW_F7_V1.6.0 (Possible STM32Cube Bug)
Hi all! I'm trying to interface a STM32F7 with an 32 GB SDHC card, using the latest firmware libraries.
I'm using a STM32f746G DISCO and I started from the project under STM32746G-Discovery/Appllications/FatFs/FatFs_uSD..
I wrote a simple function and I executed it in the main after linking the driver and mounting the disk, to test reliability. The function is the following, where I write 1000 files in a loop..
ErrorStatus Test(void) { FIL MyFile; FRESULT res; uint32_t byteswritten; TCHAR StringPath[100] = {0}; cont=0; while(cont < 1000) { sprintf((char*)StringPath,'File%d.fil', cont); res = f_open(&MyFile, StringPath, FA_CREATE_ALWAYS | FA_WRITE); if(res !=FR_OK) return ERROR; res = f_write(&MyFile, (void*)TempBuffer, sizeof(TempBuffer), (void *)&byteswritten); if((byteswritten == 0) || (res != FR_OK)) { return ERROR; } f_close(&MyFile); cont++; } return SUCCESS; }�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�? TempBuffer is a global uint8_t buffer of size 51
The problem is that after correctly writing some files, f_write returns 'FR_DISK_ERR' and I can't understand why..Decreasing the buffer's size seems to allow a bigger number of files to be written before the error, but it doesn't solve it...
Actually the problem is part of a much bigger project, but since I'm trying to understand what's wrong, I'm trying to keep things as simple as possible. That's why I took a STM32Cube project and left it untouched apart from the function I wrote.. But I really can't get the point of this problem anymway..Any idea?
I'm not using DMA, nor SD peripheral interrupt (as in the example).. The file ffconf.h is left untouched with_USE_LFN = 0, _USE_STRFUNC=2,_MIN_SS=__MAX_SS=5. Systick priority is as low as possible (0x0F).. #sd #fatfs #sd-card #stm32f7 #stm32 #stm32cube Note: this post was migrated and contained many threaded conversations, some content may be missing.