Hej,
Męczę się nad tym już pare dni i mi to nie wychodzi. Posiadam mikrokontroler STM32 F103RB. Korzystam z biblioteki FatFs? Zaimplementowałem bibliotekę FatFs z przykładów do książki Paprockiego, pozmieniałem tam trochę bo było sporo błędów boolowskich no i przykład również wziąłem z paprockiego, są to najprostsze działania czyli zamontowanie logicznego dysku, stworzenie pliku, zapis do pliku i zamknięcie plikiu.
Tak prezentuje się fragment funkcji:
najpierw następuje zamontowanie dysku: fresult = f_mount(0, &g_sFatFs), zwracana wartość funkcji to FR_OK
później jest polecenie stworzenia nowego pliku: fresult = f_open
zwracana wartość funkcji to FR_OK
później przy zapisie pojawiają się juz schody bo zwracana wartość funkcji to FR_DENIED
i przy zamknięciu pliku już jest FR_OK
jednak nic na karcie się nie pokazuje po włożeniu jej do komputera. Wielkość zapisanych danych na karcie zawsze jest 2KB.
wie ktoś w czym może tkwić problem
będę bardzo wdzięczny za jakąkolwiek pomoc
Męczę się nad tym już pare dni i mi to nie wychodzi. Posiadam mikrokontroler STM32 F103RB. Korzystam z biblioteki FatFs? Zaimplementowałem bibliotekę FatFs z przykładów do książki Paprockiego, pozmieniałem tam trochę bo było sporo błędów boolowskich no i przykład również wziąłem z paprockiego, są to najprostsze działania czyli zamontowanie logicznego dysku, stworzenie pliku, zapis do pliku i zamknięcie plikiu.
Tak prezentuje się fragment funkcji:
#include "stm32f10x.h"
#include "fatfs/src/ff.h"
#include "fatfs/src/diskio.h"
void RCC_Conf(void);
void NVIC_Conf(void);
void SysTick_Conf(void);
static FATFS g_sFatFs;
static DIR g_sDirObject;
static FILINFO g_sFileInfo;
static FIL g_sFileObject;
#define PATH_BUF_SIZE 80
static char g_cCwdBuf[PATH_BUF_SIZE] = "/";
int main(void)
{
FRESULT fresult;
FIL plik;
FILINFO plikInfo ;
DIR Dir;
FILINFO *p;
WORD zapisanych_bajtow;
RCC_Conf(); SysTick_Conf();
fresult = f_mount(0, &g_sFatFs);
// Tworzenie pliku
fresult = f_open (&plik,"plik.txt", FA_CREATE_ALWAYS);
fresult = f_write(&plik, "zawartosc pliku", 15, &zapisanych_bajtow);
fresult = f_close (&plik);
while (1);
}najpierw następuje zamontowanie dysku: fresult = f_mount(0, &g_sFatFs), zwracana wartość funkcji to FR_OK
później jest polecenie stworzenia nowego pliku: fresult = f_open
zwracana wartość funkcji to FR_OK
później przy zapisie pojawiają się juz schody bo zwracana wartość funkcji to FR_DENIED
i przy zamknięciu pliku już jest FR_OK
jednak nic na karcie się nie pokazuje po włożeniu jej do komputera. Wielkość zapisanych danych na karcie zawsze jest 2KB.
wie ktoś w czym może tkwić problem
będę bardzo wdzięczny za jakąkolwiek pomoc