Skocz do zawartości

STM32 UART wysyłanie danych typu uint16_t


radek04

Pomocna odpowiedź

(edytowany)

Zdaje się, że moja biblioteka FatTS jest trochę inna. Pojawia mi się błąd

'FIL' has no member named 'fsize'    main.c    /F7_SD_SPI_szymonw/Core/Src    line 105    C/C++ Problem

w linii

f_lseek(&fil, fil.fsize);

W ff.h mam taką deklarację funkcji f_lseek

FRESULT f_lseek (FIL* fp, FSIZE_t ofs);								/* Move file pointer of the file object */

@szymonw, czy mógłbyś mi przesłać swoje pliki ff.h oraz ff.c?

Edytowano przez radek04
Link do komentarza
Share on other sites

(edytowany)

Nic nie szkodzi, zauważyłem to. Ale to jednak nie rozwiązuje problemu z błędem.
Poszukam, gdzieś chyba mam starsze pliki do FatFs.

 

Edit: Jednak nie mam ff.h. Mam ffconf.h, fatfs_platform.h itp., ale samego ff.h nie mam...

Edytowano przez radek04
Link do komentarza
Share on other sites

Jeśli płyta nucleo stm32f746GZ to u mnie po skonfigurowaniu i wygenerowaniu kodu i pierwszej kompilacji  błędów nie ma.Nie dodałem bibliotek ani kodu w main.

   text       data        bss        dec        hex    filename
   7040         40       1688       8768       2240    SD746.elf
Finished building: default.size.stdout
 Finished building: SD746.list
23:01:57 Build Finished. 0 errors, 0 warnings. (took 5s.413ms)

 
Finished building: SD746.list

Najlepiej stwórz nowy projekt i tylko pod kjartę SD.Czsami coś jest nie tak z STM32cubeide.Miałem ze dwa razy taką sytuację . Odinstalowałem i zainstalowałem na nawo i było oraz jest ok.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ta funkcja jest nieprawidłowo napisana.Podpowiem ale nie napiszę jak powinien wyglądać zapis.Jak zaczniesz wpisywać w wyszukiwarce f_lseek  ,tylko powoli by widzieć co proponuje wyszukiwarka w podpowiedzi po wprowadzeniu kolejnego znaku, to znajdziesz odpowiedź co źle napisałeś.Google podpowie.Nie mogę Cię pozbawić przyjemności odkrywania meandrów programowania bo się niczego nie nauczysz. Warto poczytać co opisał STM w UM1721 User manual Developing applications on STM32Cube™ with FatFs.

Link do komentarza
Share on other sites

Dnia 12.11.2022 o 10:09, radek04 napisał:

Niedawno próbowałem zrobić zapis na USB właśnie zgodnie z tym tutorialem. No i niestety nie działa. Nie wiem, czy problem jest z z moimi pendrive'ami - mam dwa różne egzemplarze ze złączami micro USB, niby OTG (ale chyba nie jest jednoznaczne?), z Nucleo - F764ZG to jedyne z OTG, jakie posiadam - czy robię coś źle.

Właśnie wypróbowałem rozwiązanie zapisu na dysku USB to z Controllertech  .Sukces ,zadziałało od razu a zrobiłem to na stm32f401.Coś zrobiłeś niezgodnie z procedurą zaproponowaną przez autora.

Link do komentarza
Share on other sites

Fakt, żaden ze mnie mistrz programowania mikrokontrolerów. Z "ogólnymi" fragmentami kodu radzę sobie lepiej niż z tymi stricte dotyczącymi sprzętu. Jednak jestem uważny i potrafię dokładnie odtworzyć instrukcję. Skoro coś działa mi na Arduino, działa na Nucleo F1, a analogiczny program nie działa na F7, to podejrzewam, że coś nie tak jest właśnie z tym F7. Przerobilem mnóstwo przykładów użycia karty SD, zarówno przez SPI, jak i przez MMC (SDIO). Sprawdzę jeszcze tylko ten program na F4. Jeśli tam zadziała, to chyba się poddam. Jestem za słaby, by wszystko od nowa napisać bez użycia HAL, a czas mnie mocno goni. Was też już głupio mi prosić o pomoc, bo wygląda na to, że macie do czynienia ze średnio ogarniętym amatorem. Tak więc albo to uruchomię do końca tygodnia, albo porzucam pomysł zapisu na kartę z F7.

Link do komentarza
Share on other sites

(edytowany)

Testy ostatniej szansy...
SD poprzez SPI działa na F4.
SD poprzez SPI na F7 - TEŻ DZIAŁA.

Korzystałem z tutoriala https://01001000.xyz/2020-08-09-Tutorial-STM32CubeIDE-SD-card/.
Prawdopodobne wcześniejsze problemy:
- zbyt szybki zegar na SPI - jeszcze to sprawdzę
- karta SD 1 GB, która za pierwszym razem mi zadziałała na F1 była przeze mnie uważana za "wzorcową", bo zadziałała. Okazało się, że raz działa, raz nie. Wziąłem inną32 GB i problem zniknął. Jednakże zwykle testowałem kilka kart przy różnych kodach, więc to chyba nie była przyczyna wcześniejszych niepowodzeń, aczkolwiek ręki nie dam sobie uciąć, że inne karty sprawdzałem zawsze.

Edit 1: Szybki zegar też działa.

Edit 2: Znaleziona przyczyna problemów - zwiększenie MAX_SS.
Działa tylko przy wartości 512. W każdym przykładzie (poza tym dzisiejszym) autorzy zwiększali ten parametr. Czy ktoś wie, dlaczego po jego zwiększeniu nie działa u mnie komunikacja z kartą SD?

Edytowano przez radek04
  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.