Nie znam tej biblioteki, pół minuty temu pobrałem jej źródła, ale z tego co patrzę, to struktura FILINFO zadeklarowana jakoś tak: [syntax=C]// FatFS R0.08b, ff.h typedef struct { DWORDfsize; /* File size */ WORDfdate; /* Last modified date */ WORDftime; /* Last modified time */ BYTEfattrib; /* Attribute */ TCHARfname[13]; /* Short file name (8.3 format)...
Tę tablicę alokujesz na stosie, a jego rozmiar jest zapewne nie za duży. Albo alokuj statycznie, albo powiększ stos w ustawieniach projektu.
W funkcji xmit_spi_multi() masz błąd. 4\/3!!
(at)bartosz.tarnowski Na pierwszy rzut oka przekazujesz niezainicjalizowany wskaźnik do funkcji f_opendir . Prawdopodobnie przekazujesz również niezainicjalizowany wskaźnik do f_mount .
typedef char t_Ramka[6] t_Ramka RamkaA[85] albo zdefiniuj jako unia
Dzięki. Możliwe że bingo. Kanały Timer'a1 są akurat dzielone z interfejsem SPI2. Jeszcze dzisiaj to sprawdzę. [Edit] Miałeś rację. Kanał OC1 Timera1 kolidował z spi2. Skorzystałem z OC4 i fatfs ładnie działa we wszystkich konfiguracjach. dzięki Pozdrawiam
(at) piotrva Dzięki za podpowiedź. Skróciłem przewody, mają <10cm. Dodałem dwa kondensatory filtrujące blisko karty (220uF + 100nF). Napięcie zasilania 3V (na oscylogramach widać wahania maks. +/- 25mV). Obniżyłem prędkość SPI z 4MHz do 250kHz (zmierzone). Objawy nadal te same. Karta 2GB nie współpracuje w ogóle. Pozostałe dwie kary startują raz...
Witam, staram sie wykorzystac karte SD do przechowywania danych uzywanych przez wyswietlacz (bitmapy etc). Korzystam z biblioteki FATfs i komunikacja SPI. Aby moc tego dokonac modul FATfs korzysta z sygnalu zegarowego, ktory co 10ms bedzie wywolywal funkcje [syntax=c]disk_timerproc()[/syntax] Do cyklicznego wywolania tej powyzszej funkcji staram sie...
Polecam zostawienie przykładów z książki w spokoju, ponieważ oparte są na starej wersji biblioteki, przez co jest bardzo dużo z tym problemów. Polecam http://www.siwawi.arubi.uni-kl.de/avr_pr... skorzystanie z tego przykładu - w tym rozwiązaniu jest zaimplementowany terminal z większością funkcji...
A co to jest BOOL? Toto jest przed rcvr_datablock i nie podoba się kompilatorowi, co Ci wyraźnie pisze. Albert
Witam, Usiłuję dodać obsługę karty SD do mojego projektu lecz bezskutecznie. Problem jest dość dziwny bo nawet na "czystym" projekcie wygenerowanym przez CubeMX nie chce działać o ile korzystam z SW4STM32. Jeśli zmieniam toolchain na MDK-ARM v5 to na czystym projekcie wszystko działa jak należy. Jakieś pomysły?
Wszystko zależy od konfiguracji fatfs. Nie możesz po prostu zrobić: [syntax=c]fr = f_open(&fil, "filea.txt", FA_CREATE_ALWAYS | FA_WRITE);[/syntax]
Dwa bufory uzupełniane danymi naprzemiennie najlepiej o rozmiarze będącym wielokrotnością jednego sektora SD ( chyba 512B ). Bufory muszą być na tyle duże aby w czasie zapisu na SD mieściły wszystkie dane z czujników. Coś więcej: [url=http://elm-chan.org/fsw/ff/en/appno... -> Using Mutiple-Sector Write Uwaga, karta SD szczególnie większych...
To że generowane jest przerwanie i kod się zawiesza nie jest winą OpenOCD tylko kodu... sub.w sp, sp, #24576 ; 0x6000 sub sp, #32 w tym miejscu funkcja alokuje sobie na stosie 24576 + 32 bajtów - nie sądzę aby twój stos to przeżył... 4\/3!!
spróbuj może zmniejszyć freq na spi
A w funkcji print(); nie wykonujesz przypadkowo jakiś zapisów pod wskaźnik? Co jest w temp zaraz przed zapisem na kartę?
Zgadza się, są rozbieżności w tej bibliotece z dokumentacją. Ten FatFS pochodzi z CubeMX. Już sobie to ogarnąłem za pomocą wskaźnika na bufor LFN. Wykorzystałem wskaźnik znajdujący się w strukturze opisującej katalog, tylko czemu wskaźnik bufora LFN podpina do struktury katalogu zamiast do struktury samego pliku? Trochę dziwne. Poniżej struktura katalogu...
A jak doszedłeś do ciał funkcji inicjalizacji i całej reszty??
Problem rozwiązany. Wystarczyło dodać do projektu grupę FatFs z plikami "sd_stm32.c" i "ff.c".
Witam , czy uruchomił ktoś kiedyś fatfs z stm32 w TrueStudio ? Próbuje juz 2 tygodnie (oczywiście nie non stop :) ) i nic , co chwile jakieś błędy wywala mi kompilator , modyfikuje i modyfikuje kod i sam w końcu się pętlę . Prosze o wypowiedzi. A co za różnica czy to jest TrueStudio, eclipse czy notatnik.... Załóż nowy temat (ten jest o PetitFat)....
To nie zadziała w ten sposób... W swoim main() używasz bezpośrednio funkcji z biblioteki FatFs - np. f_open() (zwróć uwagę na podkreślenie). Potem - wewnątrz funkcji VS1003PlayFile() używasz standardowej funkcji fread() (zwróć uwagę na BRAK podkreślenia), a do tego jeszcze zamiast standardowego FILE do funkcji przekazujesz FIL z FatFs... Proponowałbym...
Witam, chciałbym stworzyć prosty układ pomiarowy, który by miał za zadanie pobrać w krótkim czasie sporą liczbę pomiarów (np 1000 pomiarów w ciągu sekundy przy 12 bitowym przetworniku adc) i jednocześnie zapisać te pomiary na kartę sd ( system plików fatfs ) po to aby móc swobodnie w dłuższym czasie przesłać otrzymane dane poprzez port rs232 na PC ....
Witam Chciałbym zmieniać nazwę tworzonych przeze mnie plików na karcie SD, lecz z tego co zdążyłem zaobserwować to mogę użyć tylko 8 znaków i nie mogę używać "-",".". W plikach tych rejestruje dane. Do tej pory w moich plikach nazwy były numerem kolejnej rejestracji i nie było z tym problemu. Teraz potrzebuję zmieniać nazwy plików na format: "stały_tekst_datarozpoczecia-godzinarozp...
Niestety to nie pomogło. Przepisałem nawet wszystko z artykułu z EP pt. "Obsługa karty SD i FatFs", ale ciągle efekt mam ten sam.
Cześć, mam problem z obsługa karty SD wykorzystując STM32, CUBEMX, bibliotekę FATFS. Na wstępie chce powiedzieć, że bez DMA działa wszystko ( żeby uniknąć pytań o schematy i dobre połączenie... ). Także problem pojawia się gdy w cubemx ustawie USE DMA TEMPLATE na enable ( czyli tak jak jest z default'a w tej bibliotece) ... Program wtedy nie jest w...
OK. Ja też jestem w pracy i nie zawsze mogę o tej porze coś robić. Ale dalej: Do testowego używania UARTA przyda się "podmienienie" standardowej obsługi funkcji printf na taką, która wysyła dane przez UARTA do naszej Windowsowej konsoli. Możesz to wpisac standardowo przed obsługą assert_failed() /** * (at)brief Retargets the C library printf function...
Skompiluj sobie nowszą wersję OpenOCD (wprost z repozytorium). 4\/3!!
Dzięki Panowie za szybką odpowiedź :) bonczi7 LinkDriver użyłem niestety nic nie dało :( Marek_Skalski - nigdzie nie znalazłem nic na temat uruchamiania LSE do SD, a myślę że o SD przejrzałem cały User Manual od HAL jednak dla pewności uruchomiłem LSE jednak problem pozostał :( załączam zdjęcia po uruchomieniu LSE, Dla pewności użyłem programu od HAL-a...
Spróbuję zrozumieć ten kod, może uda się. Tam tak naprawdę nie ma czego rozumieć. To jest minimalnie zmodyfikowany FatFS - bardzo znana biblioteka, powszechnie wykorzystywana z mikrokontrolerami. Polecałbym nawet, żeby zamiast zajmować się analizowaniem kodu mojego projektu, zacząć od dużo lepszej dokumentacji samej biblioteki, na stronie jej autora....
Ja mam...na LPC2103 ,STM32 i LPC1754 ...ale to chyba nie będzie Ci pasować :wink:.
Właśnie teraz testuję sobie transfer z/do pena na STM32. Kod obsługi pena USB jest mocno oparty na firmware od ST do STM32F4 DISCOVERY. DO tego FatFS. Praktyczna (czyli już w systemie plików) prędkość zapisu/odczytu pliku to 720KB/s. Bez DMA.
Otrzymuję wtedy takie wyniki: f_mount(&ff, "", 1) = 3 f_open (&File,"plik.txt", FA_CREATE_ALWAYS) = 1 f_close (&File) = 9 Jak powtórzę te czynności (bez restartu mikrokontrolera) to zmienia się tylko: f_mount(&ff, "", 1) = 1 ----------------------------------- Przy okazji zauważyłem, że gdy wyjmę kartę to wyniki są identyczne, z wyjątkiem: SDSPI_Init(&hspi3)...
https://obrazki.elektroda.pl/6678526600_... https://filmy.elektroda.pl/59_1553290096... https://obrazki.elektroda.pl/6296500900_... https://obrazki.elektroda.pl/9260337200_... Zapewne nic odkrywczego ale wolnej chwili udało się połączyć parę projektów i wyszło takie coś. Jeśli chodzi o hardware to...
Ja korzystam z tego http://cba.si/stuff/fatfs_diskio_sdcard_... Ok ale w jaki sposób mogę skorzystać z tej biblioteki? f_mount i f_open są w bibliotece fatfs.
Cześć! Dostałem mocno bojowe zadanie napisania programu dla STM32F429-Discovery w którym będę odczytywał pliki .mp3 z kart SD. Niestety po moich usilnych staraniach dotarłem do punktu z którym nie mogę sobie poradzić. CubeMx nie wspiera z "palca" SPI przy FatFs, a sam nie mam na tyle doświadczenia z tymi płytkami (co najwyżej Arduino, ale wstyd mi porównać...
Załączam kawałek działającego kodu. Folder SDCard zawiera przykładowy kod zestawu ewaluacyjnego od firmy ST. Jest nieco zmodyfikowany od oryginału, niestety nie pamiętam źródła (możliwa płyta z przykładami do HY-Mini). W folderze FatFs biblioteka ChaNa w wersji 0.09a. Plik diskio.c uzupełniony o potrzebny kod.
FAT na karcie SD nie wymaga ściągania "znienawidzonych bibliotek producenta". Odwiedź stronę twórcy biblioteki. Wystarczy edytować funkcję oznaczone jako Platform dependent. Przeglądnij przykład dla LPC17xx.
Cześć. Siedze już 2 dni nad kodem, prześledziłem wszystkie rejestry i nie wiem już co jest źle. Mam problem z komunikacją z kartą SD już na samym początku kiedy wysyłamy komendę CMD0 - przejście w tryb sterowania po SPI. Oto dołączam mój kod: Biblioteka SPI: PLIK Spi.h [syntax=c] /* * Biblioteka obslugi SPI */ #ifndef SPI_H #define SPI_H #include "stm32f37x.h"...
Ściągnąłem najnowsze biblioteki fatfs, kompiluje i mam problem z sdcard.h oraz atadrive.h skąd je wziąć ? Poprawiam pisownię...
Straszne dziadostwo ten STM32 Jeśli już to nie STM32 ale biblioteki HAL. Nie pokazałeś kodu tylko jakieś fragmenty schematu też nie więc nie wiadomo czy problem jest w HAL czy w dziadowski kodzie lub złym schemacie. Stawiam na dziadowski kod lub schemat, bo obsługiwałem TFT i kartę SD w kilku projektach z F1 i wszystko działało.
Witam, Od jakiegoś czasu pracuję nad obsługą karty SD oraz FatFS. Bazuję na przykładach dołączonych do książki "Mikrokontrolery STM32 w praktyce". Podczas debuggowania doszedłem do momentu w programie, który powoduje niepoprawne działanie. Otóż w funkcji disk_initialize( BYTE) znajduje się następująca linia: [syntax=c] if (send_cmd(CMD0, 0) == 1) [/syntax]...
Witam, Konfiguruje bibliotekę FatFS i przy kompilacji projektu wyskakują mi 2 błędy: FatFS/sd_stm32.c:413:9: error: conflicting types for 'disk_read' In file included from FatFS/sd_stm32.c:8:0: FatFS/src/diskio.h:37:9: note: previous declaration of 'disk_read' was here FatFS/sd_stm32.c:455:9: error: conflicting types for 'disk_write' In file included...
(at)conkerkh Z tego co pamiętam to fatfs nie zapewnia tego, że dane przekazywane do diskio_write są wyrównane do 4 bajtów. Na wszelki wypadek sprawdzałbym to. [syntax=c]if ((size_t)buff & 3) { //OMG }[/syntax]
Nie podoba mi się układ kodu generowanego przez ten system, a przede wszystkim konieczność pisania w zdefiniowanych miejscach pliku. Nie musisz całkowicie rezygnować z CubeMX, bo jest dość pożyteczny. Ale możesz go użyć raz, jako "generatora" poprawnej aplikacji a później przerobić według uznania projekt, powyrzucać te specyficzne komentarze i inne...
No właśnie tak myślałem, że im bardziej rozbudowany program (ma więcej co robić), to trzeba zwiększać częstotliwość przełączania kontekstu, więc i narzut rośnie. No, ale skoro nawet przy 1000 nie jest duży, to OK :-) Od jakiegoś czasu przymierzam się do przejścia na jakiś RTOS, bo te moje maszyny stanów działają, owszem, ale im więcej zadań, tym bardziej...
a obsługę peryferi dopisuje sobie programista używający RTOS'a? Dokładnie tak. RTOS może być na różne ARM (STM32, NXP i wiele, wiele innych), AVRmega, Xmega i inne uC, więc nierealne jest aby zapewniał wszystkie możliwe drivery, chyba, że to byłyby uC z GB pamięci. Podobnie FatFS, samą komunikację z kartą trzeba zapewnić samemu, jam w CPM.
Witam Próbuję utworzyć plik txt na karcie sd korzystając z biblioteki FatFs zaimplementowanej na moim procku STM32F3 discovery. Niestety nie udaje mi się stworzyć takiego pliku, karta jest pusta a zmienna fresult wynosi 9 czyli FR_INVALID_OBJECT. W związku z tym wszystkim mam pare pytań odnośnie współpracy STM32 z kartą microSD. 1. Jak należy przygotować...
Chodzilo mi o utworzenie dodatkowego urzadzenia z dwoma kanalami do komunikacji. Potrzebuje dostep z komputera do pamieci na karcie sd, tak samo uC tez musi miec dostep do tych danych. Udalo mi sie to osiagnac. Dodatkowo musze miec mozliwosc sterowania procesem, wysylac proste polecenia. Wszystko po jednym kablu, konkretnie USB. Chcialem komunikacje...
Cześć, Korzystam z płytki STM32VLDiscovery (z programatorem ST-LINK), Keil uVision. Po raz kolejny wziąłem się za ARMy. I wszystko pięknie szło do czasu, aż zamarzyłem o fatfs. Bibliotekę dołączyłem, przepisałem kod tak, żeby nie korzystał z biblioteki stm32 standard peripherials. Uruchomiłem debugowanie - 17KB ma kod i... właśnie - w debugerze jak...
http://obrazki.elektroda.pl/2247266700_1... Witam. W Internecie można znaleźć dużo przykładów, jak odtwarzać przez mikrokontroler dźwięk takimi sposobami, jak PWM czy DAC na interfejsie I²S. Niestety, ale jakość dźwięku PWM-a mnie nie zadowala, a zewnętrzny DAC nie wchodził w grę, ponieważ mój mikrokontroler nie ma wspomnianego...
No jak tak za każdym razem będziesz musiał to powodzenia. A jak jakiś FATfs albo LWIP to zajmie Ci to trochę. Pamiętaj, że generujac projekt musisz mieć wybrany sw4stm32 oraz aby przekopiować pliki do workspace. Tu masz instrukcję http://www.openstm32.org/Importing+a+STC...
https://obrazki.elektroda.pl/2759406900_... 8-bitowe mikrokontrolery nadal można znaleźć w wielu projektach, ale dzięki nowemu, niedrogiemu 32-bitowemu z rdzeniem AMR Cortex-M0+ taktowanym 48 MHz — STM32C0 — firma STMicroelectronics dąży do wyparcia 8-bitowych jednostek. Co może się odbyć wskutek: „ograniczonego wpływu...
1. ~64kB 00-FFów to około 1/3 sekundy ciszy, sprawdziłem w edytorze audio, wszystko się zgadza Mierzyłeś czas odtwarzania i porównywałeś z oryginałem? Masz może próbkę dźwięku jak to słychać?
mkochniarczyk(at)ensyst.pl Kartę mam na SPI1, lecz i tak korzystam z FatFs i inicjalizacji SD zawartym w bibliotece. Jak pisałem wyżej też próbowałem odpalić przykłady ST...ale się nie udało. Gdyby Twoje biblioteki ruszyły skłonny Ci jestem za nie nawet zapłacić (a punkty swoją drogą) :wink:.
Dlatego, żeby to zrozumieć chcę wiedzieć, czy pod gołego Eclipsa skonfigurowanego pod STM32 można podpiąć tylko obsługę samego HALa? Oczywiście. Przepraszam za te pytania, ale zniechęciłem się do CubeMX i wolałbym pisać programy przez konfiguracje na poziomie rejestrów. Chcę też obsłużyć karty SD, ale znalazłem tylko biblioteki pod HALa (FATfs) i dlatego...
Ciekawy problem... FatFS powinien działać bez problemu na takiej pamięci. Trzeba tylko zaimplementować funkcje dostępu do klastrów i stworzyć system plików. Zrobiłem szybki reaserch i w sumie nie znalazłem żadnych konkretów jak to zrobić. Poczytaj jak wygląda tablica plików i wgraj pustą do pamięci. FatFs powinien zaskoczyć. Nawet jak coś zrobisz nie...
Też tak uważam. I też tak uważa Martin Thomas, autor pliku sd_spi_stm32.c, który mam w pakiecie z FatFs. To znaczy żeby ktoś sobie nie pomyślał - tak czy siak będzie czytać kartę. Różnica jest w tym czy linia SCK po zakończonej transmisji powinna być w stanie niskim czy wysokim. Wydaje mi się że bezpieczniej jak jest w stanie niskim czyli w tym zaproponowanym...
Pakiet występujący dawniej pod nazwą ThreadX nazywa się teraz Azure RTOS ThreadX i jest już port na niektóre STM32. Pierwszy pakiet zostanie udostępniony dla STM32H7 w 21Q1. Kolejne będą L4 i F4 (21Q2), F7, G4, L5 (21Q3), G0, WB i WL (21Q4). Pozostałe linie nie będą wspierane, ponieważ nie są w żaden sposób rozwijane. Po uzupełnieniu o dodatkowe moduły...
Witam, mam problem z uruchomieniem karty SD przed SDIO w trybie "SD 4 bits Wide Bus" w tym trybie (przez FATFS) dostaję błąd "FR_DISK_ERR". Gdy ustawiłem tryb "SD 1 bit" to wszystko działa jak powinno. Wszystkie linie danych jak i linię CMD podciągnąłem rezystorami 47kohm. Czy jest coś co muszę dodatkowo zrobić po zmianie trybu z 1 bit na 4 bits? (oczywiście...
tak, ale nie ma powtarzalności w tym co piszę - raz tablica jest ok, a w innym miejscu tak samo zadeklarowana tablica ma wpisane jakies "smieci". Robie o 2-3 elementy więcej niż wymaga tego zastosowanie ale czasami i tak jest niedobrze. Poza tym, zastosowanie biblioteki FATFS blokuje mi działanie USART-a 4tego. Zainicjalizowanie biblioteki nic złego...
Odczytaj sektor o numerze: 0x00000800 (sector_read(0x00000800)) i pokaz jego zawartość. Jeżeli tam nic nie ma to znaczy że nie masz utworzonej żadnej partycji i musisz ją stworzyć.
Sam main.c raczej nic nie da ale proszę. /** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * This notice applies to any and all portions of this file * that are not between comment...
Specyfikacja kart SD mówi że zapis pojedynczego bloku może trwać do 250ms a wielu bloków (tak jak w Twoim przypadku) 500ms. Ja osobiście rozwiązuję to w ten sposób, że tworzę cache bloków i w systemie wielowątkowym w jednym zadaniu cyklicznie wykonuję operację flush na cache. Wtedy większość operacji na pliku nie blokuje programu. FATFS takiego mechanizmu...
(at)maksym92 Być może masz problem z funkcją, która zapisuje blok. Nie sprawdzasz statusów zwracanych przez funkcję. Radzę uruchomić debugger i sprawdzić czy przykładowo nie masz timeoutu np tutaj: [syntax=c] wait = 0x7fff; // Recommended timeout is 250ms (500ms for SDXC) FIXME: 0x7fff is set by sight, need calculate more adequate value do { cmdres...
U mnie na płytce dołączonej do zestawu były takie przykładowe programy: • FATFS V0.08A-SD Card (obsługa systemu FAT na karcie pamięci - tym odczytujesz pliki), • GLCD (biblioteka do obsługi LCD - tym wyświetlasz odczytane dane). Możesz je połączyć razem i może coś z tego wyjdzie. Dodatkowo w programie demo jest wyświetlanie obrazków z użyciem...
używasz biblioteki FatFs? Czy ona nie działa po SPI? Wg schematu do Twojej płytki, końcówki które masz podłączone do czytnika SD nie są dedykowane do SPI. Wg tego co widzę to SPI1 masz poprowadzone do TouchPanel a SPI2 do AudioCodec. Przejrzyj Pinouts and pin descriptions w dokumentacji STM32. Zobacz co jakim pinem możesz obsługiwać.
Nie jest to możliwe - należy "zresetować" index i doczytać do tej pozycji która Cię interesuje. When a null pointer is given to the fno, the read index of the directory object will be rewinded. http://elm-chan.org/fsw/ff/en/readdir.ht... 4\/3!!
Obrazki zmieniłem. Winą jest linker. Dodam na końcu 2 linkery których używam, dobry i zły. Dobry jest starym linkerem, który nie ma HEAP'a (Freedie chyba wiesz o co chodzi) drugi jest z HEAP'em z przykłady migających LEDów ze strony Freddiego. Chodzi o to, że po wywołani funkcji np. f_open (FatFS) na początku tej funkcji w assemblerze jest instrukcja...
Witam, posiadam STM32F429 na którym chcę uruchomić klienta http używając lwIP Raw Api. Problem jest taki że program działa kiedy używam debuggera, bez niego funkcja tcp_connect() zwraca błąd -4: /** Routing problem. */ ERR_RTE = -4, void tcp_client_init(void) { /* 1. create new tcp pcb */ struct tcp_pcb *tpcb; tpcb = tcp_new();...
Walczę dalej. Aktualnie udało mi się zmodyfikować projekt w sposób generujący najmniej błędów przy kompilacji. Całą bibliotekę przerzuciłem to innego folderu w drzewie projektu i wprowadziłem zalecane przez was zmiany tylko dla niego. Mój główny program korzysta jedynie z plików nagłówkowych z rejestrami ( #include <stm32f10x.h> ) i wydaje mi...
Usiłuję uruchomić pewien projekt oparty na FreeRTOS i procesorze STM32. Jest napisany w Keil uVision 4. Niestety pech chciał, że rozmiar kodu już przekroczył magiczne 32kB i nie mogę go skompilować w wersji Demo (na pełną na razie mnie nie stać, bo kosztuje majątek). Starałem się poobcinać biblioteki z niepotrzebnych rzeczy (GLCD, FATFS). Zrobiło się...
Zrobiłem coś takiego: - buforuję transmisję do STM32 (10 ramek * 400B = 4KB) i wtedy wykonuję zapis Niestety zapis na kartę 4KB trwa więcej niż 1 sekundę (raz na kilka minut) i mam overrun transmisji do STM32. A nie myślałeś, żeby łączyć się z kartą przez DMA? Wówczas odpalasz transfer tych 4KB i o nim zapominasz, idzie sobie asynchronicznie do programu....
Dochodzę do wniosku, że nie zdziałam za dużo opierając się na gotowej bibliotece do obsługi systemu plików. Ja dochodzę do wniosku, że Ty dochodzisz do błędnego wniosku [; FatFS, poprawnie skonfigurowany, jest w stanie zmielić dane z wystarczającą prędkością. Nawet zrobiony mega tępo działa całkiem szybko... Mam taki projekt, w który jest system operacyjny,...
jak wyłączyć funkcję _sbrk_r()? Zajrzałeś choć do tego pliku syscalls.c? Co do meritum - u mnie to co chcesz osiągnąć "po prostu działa" i nie było z tym nigdy żadnego problemu. Tyle że ja nie używam plugina który generuje Makefile - mam swój plik Makefile, stworzony "ręcznie". Z drugiej strony u mnie kompilacja wygląda podobnie: 97) [0.248s]...
Witam, Mam problem - mam za zadanie zrobić coś w stylu skanera 3D na STM32. Na razie nie mogę opanować samej obsługi kamery w konfiguracji STM32F103VE+ wyśw. SSD1963 7" (zestaw EB-STM32_08_LCD7) i kamera OV7725 . Do zestawu dostałem przykładowe projekty w keilu. Bazując na projekcie do sprawdzania kamery z wyświetlaczem 4.3' wkleiłem działające biblioteki...
Cześć, Może nie do końca do DIY, ale temat bardzo związany. Akurat tak się złożyło, że również uruchamiam analogiczną rzecz, tyle że na stm32f205, o ile sama biblioteka od usb zdaje się u mnie działać i osobno od karty sd, o tyle razem mają niejaki problem. Po uporządkowaniu całej konfiguracji, utknąłem w momencie gdzie windows widzi poprawnie urządzenie...
Rozumiem i widzę, że każdemu to wpajasz ale spójrz na kod który zamieściłem i jeśli możesz to wyprowadź mnie z błedu bo ja to widzę tak. Funkcja odbioru [syntax=c]void xmit_spi (BYTE Data) // Wyslanie bajtu do SD { while( !( SPI2->SR & SPI_SR_TXE )); SPI2->DR = Data; } static BYTE rcvr_spi (void) // Odebranie bajtu z SD { u8 Data = 0; while( !( SPI2->SR...
Jedyne co mogę doradzić, to aby przed każdą re-konfiguracją DMA wyjątkowo dokładnie dany kanał wyłączyć. Gdy używałem DMA w STM32F1, to często coś nie chciało działać jeśli przed re-konfiguracją nie wyzerowałem całkowicie rejestru CCR (jest w nim bit "enable") - może sprawdź u siebie coś takiego? U Ciebie może to nic nie dać, bo widzę że ten akurat...
Czy mógłby mi ktoś wyoślić , jak w C można uzyskać nałożenie małej grafiki na większą pełnoekranową w wyświetlaczu LCD-TFT ? Telegraficzny skrót problemu: -na LCD z karty SD wczytuję obrazek (na cały ekran , 320X240 , kolor, grafika "bazowa") , używam bibliotek GLDC , FatFS.Wrzucam plik odczytany z SD do zadeklarowanej tablicy i potem pętlą wczytywane...
Problem udało się rozwiązać, temat uważam za zamknięty
IMHO dużo zależy od tego ile standardowej biblioteki wykorzystasz i co dokładnie z niej weźmiesz - wiadomo że taki printf() czy funkcje zmiennoprzecinkowe trochę zajmują. U mnie rozpiętość jest spora - niektóre całkiem rozbudowane programy mają np zaledwie 10kB, niektóre większe - ze zmiennym przecinkiem w dużych ilościach - koło 30kB, a ostatnimi czasy,...
witam ponownie, po dłuższym czasie walczenia z uruchomieniem mikrofonu i odtworzeniem nagranego dźwięku niestety nie udało mi się osiągnąć zamierzonego celu. Po poszukiwaniach w internecie znalazłem pomoc na forum ST pewnego użytkownika jednak również po jego instrukcjach występuje kilka błędów. Instrukacja zgodnie z którą próbowałem uruchomić mikrofon...
Działa. Wystarczyło zmienić szukany znak z backslasha na '\n'. Ostatecznie modyfikacja wygląda nastepująco: if (character == '\n') { __fputc_('\n', stream); __fputc_('\r', stream); continue; } Dopracowałem rownież funkcje usart_put_char, zamiast wprowadzać delaya sprawdzam flage czy UART zakończył poprzednią transmisję....
Osobiście nie zastanawiałem się nad tym długo, szukałem zestawu który ma chyba wszystko na pokładzie: Ethernet, Can, RS232, USB-RS, 485, pamięci Flash, Sram, Kartę muzyczną, Usb Host OTG, LCD + dotyk, złącze na karty SD i wiele innych... W polsce ktoś sprzedaje RedDragon za ~350zł ja zamówiłem to w chinach przez ebay i zapłaciłem z presyłką ~180zł uważam...
Ok jest postęp. Dałem rezystory pullup 4k7 i zaczęło prawie działać. Czemu prawie? Ano mam taki przykładowy kod: [syntax=c]BYTE res = 0; FATFS fs; FIL file; UINT len; char bufor[16]; memset(bufor, 0, 16); res = disk_initialize(0); res = f_mount(0, &fs); res = f_open(&file, "test.txt", FA_READ); if(res == 3) { HD44780_writeText(0, 0, "Error"); while(1);...
Witam, Mam problem z podłączeniem karty SD do mikrokontrolera. Skorzystałem z programu który znalazłem w przykładowych projektach dla płytki z procesorem STM32F373 (FatfsuSD dla dla STM32F303RE-Nucleo ). Program się kompiluje i uruchamia poprawnie ale niestety na karcie SD nic sie nie zapisuje. Mogłby ktoś zerknac na projekt i wskazać mi co jest źle....
Nie przesadzajmy - nie jest to znowu taki wielki problem. Co do sterowników urządzeń, to przy prostym założeniu można sprawę zredukować do zwyczajnego kodu jaki każdy tworzy bez RTOSów - to założenie to "danego urządzenia używa tylko jeden wątek". To pozornie wielkie ograniczenie w większości wypadków jest całkowicie słuszne, bo np. jak by wyglądał...
Do "SRCS_DIRS" katalog dodajesz normalnie. Jeśli folder lib jest w głównym folderze projektu (tam gdzie Makefile), to po prostu dopisz tam "lib" - bez cudzysłowów lub z nimi - to raczej bez znaczenia - cudzysłowy będą konieczne, gdyby folder zawierał spacje lub inne dziwne znaki, więc lepiej darować sobie zawsze dziwne znaki i cudzysłowy. W przypadku...
Witam, Mam problem z uruchomieniem prostego kodu "echo" z wykorzystaniem bibliotek STMCube oraz interfejsu CDC. W standardowym pakiecie bibliotek od ST nie ma przykładu virtual com port na płytkę STM32F407 discovery. Skorzystałem więc z generatora kodu CodeMX. Wygenerowany kod przykładu USB Device CDC działa tylko po części. Załączam treść pliku c gdzie...
Cze, Od jakiegoś czasu rozwijam swoją konstrukcję sterownika do stacji pogodowej. Projekt robi się coraz większy i większy i w końcu dotarłem do etapu, w ktorym rozważam użycie jakiegoś RTOSa. Mam dużą bibliotekę własnego kodu obejmującą takie rzeczy jak kompleksowa obsługa komunikacji po USART czy I2C, mam pełną obsługę konsoli tekstowej. Do tego używam...
Z tym że select() jest nazwą standardowej funkcji http://pubs.opengroup.org/onlinepubs/969... Wybierz sobie inną nazwę i problem z głowy.
Cześć, w moim kodzie dodałem te poprawki https://github.com/DISTORTEC/STM32F7xx_H... i po intensywnych testach polegających na intensywnym wkładaniu i wyjmowaniu (:]) pendrive w losowych momentach, znalazłem jeszcze jedne problem, mianowicie funkcja USBH_HandleEnum() z usbh_core.c ignoruje błędy...
Cześć, Przed uruchomieniem planisty vTaskStartScheduler(); działa moja funkcja, która obsługuje przerwanie od SysTicka. Po jego włączeniu podejrzewam, że freeRtos sobie jakoś zmienia ten wektor, tylko nie mogę zlokaliwoć jak to robi i gdziej est nowa funkcja obsługi tego przerwania. SysTick jest mi potrzebny do taktowania fatFSa.... Jak to można rozwiązać?...
Eh... co do tego czy wiem czy nie wiem do czego to służy... Niech będzie że nie wiem, naprawdę nie robi to żadnej różnicy... Zasugerowałem się innym przykładem nt. I2S, ok był błędny lub nieadekwatny ale od momentu kiedy napisałeś żeby to wyrzucić nie używam tych linijek, ba! nawet napisałem, że kod niezależnie czy one są czy też nie i tak nie działa......
Tak to ja, dołączam kod - main.c: [syntax=c]#include "main.h" #include "fatfs.h" SPI_HandleTypeDef hspi2; TIM_HandleTypeDef htim2; UART_HandleTypeDef huart2; void send_string(char* s) { HAL_UART_Transmit(&huart2, (uint8_t*)s, strlen(s), 1000); } volatile uint16_t Timer1=0; uint8_t sect[512]; //char buffer1[512] ="Selection of VAM is set by the previous...
Witam. Zamierzam nauczyć się programowania mikrokontrolerów ARM - z rdzeniem ARM Cortex - M3 w języku wysokiego poziomu C. Nie ma dużego wyboru jeżeli chodzi o książki, zdecydowałem się na: "STM32. Aplikacje i ćwiczenia w języku C" M. Galewskiego (http://www.kamami.pl/index.php?ukey=pro... Zastanawiam się nad tym, jaki zestaw startowy...
Mam mikrokontroler STM32F411 (płytka Nucleo). Chciałbym zrealizować kopiowanie plików między pendrivem a kartą SD używając biblioteki FATFS. Nie znalazłem w niej funkcji kopiowania plików. Czy wykonanie takiej operacji poprzez otwarcie obu plików i przerzucanie danych przez bufor jest sensownym rozwiązaniem? A może są lepsze metody?
3... Coś jeszcze? EMC.
Mogę pomóc, lecz musisz pokazać kod do gadania z kartą oraz kod do usb...
Tu konfigurujesz PD8: [syntax=c]#elif SPI_CH == 2/* PB12:MMC_CS, PB13:MMC_SCLK, PB14:MMC_DO, PB15:MMC_DI, PD8:MMC_CD */ #define CS_HIGH()GPIOB_BSRR = _BV(12) #define CS_LOW()GPIOB_BSRR = _BV(12+16) #defineMMC_CD !(GPIOD_IDR & _BV(8))/* Card detect (yes:true, no:false, default:true) */ #defineMMC_WP 0 /* Write protected (yes:true, no:false, default:false)...
stm32 fatfs stm32 fatfs odczyt fatfs atmega32
czujnik filtr hydraulik wariuje klawiatura vectra błędy komputera
Problemy z podawaniem papieru w HP LaserJet Laser Link Welltech typ 20070 - starszy model transmisji AV