Czy można skopiować jakiś program bezpośrednio z jednego urządzenia na drugie (STM32F4 Discovery)? Trochę mało konkretne to pytanie. Jeśli przypadkiem Ci chodzi o skopiowanie programu z jednego Discovery do drugiego (tego samego typu), to nie ma problemu (jeśli akurat nie jest ustawiona opcja blokady odczytu). Programem ST-LINK odczytuje się i zrzuca...
Rzuć okiem na program srecord (srec).
Używam przerwań. To teraz zobacz co ciekawego możesz wyczytać w skrypcie linkera... 4\/3!!
Ja bym rozpoczął od używania katalogów w których nie ma polskich liter. 4\/3!!
Możesz wykorzystać zworkę z JP1 lub JP2 ze zdjęcia nr 2. Załóż ją między BOOT0 i VDD, tak jak na zdjęciu nr 3. Zworka może być po stronie napisów, wtedy na pewno się nie pomylisz. Możesz użyć dowolnego innego sposobu do uzyskania połączenia, to naprawdę nie ma znaczenia. I nie jestem żadnym Panem. Mam na imię Marek :) Pozdrawiam!
Moim zdaniem nie powinno być konfliktu. Dodatkowo licznik nie pracuje bardzo szybko TIM9->PSC = 799; Rozumiem. Przerwanie bardzo wolno, pętla główna bardzo szybko. Chodziło mi o to, czy nie za szybko. Bo w niej masz szybką sekwencję Read - Modify -Write. Test miał potwierdzić wyrabianie się szyny za corem. Ale skoro Twoim zdaniem jest inaczej to trudno...
Jedyne co zmieniłem to w Makefile'u toolchain na arm-linux-gnueabi (linaro). Jest to bardzo poważny błąd, bo to NIE JEST toolchain bare-metal! To MUSI być arm-none-eabi- i na stronie linaro jest też paczka dla linuxa https://launchpad.net/gcc-arm-embedded/4... openocd -f ~/Pulpit/stm32/openocd-0.6.1/tcl/interfa... -f ~/Pulpit/stm32/openocd-0.6.1/tcl/target/...
Zajrzyj na stm32f4-discovery.net.
Sprawdź działanie na mojej funkcji programowej w C. Tym sposobem wyeliminujesz ewentualne inne błędy gdzieś po drodze pomiędzy STMem a programem w Delphi.
W oknie debugera możesz zobaczyć ile czasu wykonują się poszczególne fragmenty programu.
Eclipse + Linaro + jeśli masz jtag to Open OCD (choć można i podpiąć i debugger z innych programów, np z True Studio)
SPL - Standard Peripherial Library od ST, producenta uC z serii STM32Fxxx to zestaw funkcji, które w założeniu miały ułatwić pisanie programów. Założenia były bardzo dobre, ale wykonanie, a chyba jeszcze bardziej sposób korzystania z funkcji dostępnych w pakiecie sprawia, że kod jest nieefektywny, nie daje pełnej kontroli nad układami i wcale nie jest...
Przesyłam gotowy program na PC i kod do STM32F4-Discovery na USB HID. Kto jest zainteresowany kodem wyślę na pocztę.
To niech teraz też będzie samo =, bo OR nie ma tu najmniejszego sensu a tylko może zaszkodzić. Tak samo OR nie ma najmniejszego sensu przy inicjalizacji rejestrów USARTa, bo niby po co chcesz zachowywać stare wartości? A jak tam jest właśnie jakimś sposobem ZŁA wartość? Wpisz po prostu do dwóćh rejestrów dwie gotowe wartości i tyle, bez żadnych ORów....
Niestety, 5 dzień się z tym zmagam - bez efektów. Zapytam inaczej, jest sens oszczędzania pamięci FLASH? Ile razy mogę teoretycznie ładować tam nowy program?
Wez pierwszy kod i popatrz na niego uważnie. To jest kilka linijek. Jeżeli nie znajdziesz błędu, to odpuść. Nie ma in nic wspólnego z procesorem, rejestrami itp.
To może lepiej zacznij trochę odwrotnie, mianowicie zacznij od takiego projektu jak "Template" i na jego podstawie modyfikuj program.
Wybierz we wspomnianej zakładce ST-Link Debugger, wejdź w jego ustawienia i dodaj do listy ustawienia Flasha procesora którego posiadasz czyli w tym przypadku STM32F4xx. Sprawdź czy w zakładce Debug masz ustawiony port jako SW a nie przypadkiem JTAG. Ma działać :)
Może nie przystoi tu na forum ale aż mam chęć napisania krótkiego: "LOL". :D Nie usuwaj żadnych plików, bo tylko szkody narobisz. Zegarów Ci nie ustawi "tak o", musi to być gdzieś w kodzie programu.
Męczę się nad sposobem zaproponowanym przez dziechu. Nie wiem jak zrealizować przesył danych Z DCMI. To ma być DMA_Circular czy Normal Mode? Chodzi mi o to, że chyba DCMI nie może zostać wyłączone w czasie działania programu
Zasadniczo nie jest to możliwe, tzn. funkcja wysyłająca wygląda dobrze, problem jest gdzieś indziej. Masz dokładnie taki program, jak pokazałeś? Jak odbierasz i wyświetlasz?
Ale Twój program nie działa bo nie masz włączonego taktowania dla GPIO.
Może zacznij od tego, aby zidentyfikować w KTÓREJ pętli program staje?
a do jakiego układu chciałbyś podpiąć ten wyświetlacz ?, jeśli np do stm32f407, to poszukaj na propix (tam gdzie kupiłeś LCD) takiego zestawu Open407V-D [url=http://propix.com.pl/pl/p/Open407V-... Tam jest schemat podłączenia wyświetlacza itp "gadżetów" oraz przykładowe programy
A jeśli zmniejszysz wartość tego paskudnego delay np do 40000 z odkomentowanymi liniami to jak się program zachowuje?
Ciężko coś powiedzieć, pokaż może funkcje main, sprawdziłbym dodatkowo jeszcze raz połączenia, jeśli jest to gotowy soft (całkowicie i nie modyfikowany przez Ciebie) to powinien działać, bo nikt w zasadzie nie udostępnia niedziałających projektów. Jeśli coś robiłeś sam to sprawdziłbym własne funkcje, a potem to debugging, może w jakimś konkretnym miejscu...
Brak. Bo kolega krru ma rację. Jak zmienna lokalna będzie miała volatile to każdy dostęp do tej zmiennej będzie wymagał LDR'a. Zresztą wygenerowanie listingu assemblerowego to dowodzi. Edit: SeerKaza, spróbuj porównac listingi przy różnych optymalizacjach. U mnie na O3 listingi są niemal identyczne i nie powinno być różnicy w szybkości wykonania programu.
Jakiego IDE używasz? Możesz wrzucić swój program tutaj?
Żebyś oduczył się korzystać z SPLa. Bo problemy z tak banalnym programem to.....
Facet czego się czepiasz, wyraźnie po raz 4 mówię kod sprawny!! działał na stmf103. wcześniej na avr. A dla zaspokojenie twej ciekawości adres obsługi przerwanie to : 0x80008f1 A kompilacja przebiega bez ani jednego warninga. przerwanie wywoływane jest poprawnie. Wstawienie pętli nieskończonej nawet na końcu powoduje zatrzymanie w niej programu.
Witam Skompilowałem przykładowe demo z tej strony [url=http://www.urel.feec.vutbr.cz/MIA/2... i po wgraniu program nie działa. Mam wrażenie jakby nie inicjował się tryb FSMC ale nie mam pewności. Obydwa oryginalne pliki bin dołączone do tej paczki po wgraniu działają. Kod źródłowy odnosi się do tego większego pliku bin. Sprzęt...
Udało mi się zmienić to w eclipse. Wystarczyło trochę pokombinować. Nie wiem w czym kombinować jak widoku debug w tabie memory masz to od razu: http://obrazki.elektroda.pl/1285527500_1... A plik zapisany sobie przekonwertuj krótkim programem
Witam, mam następujący problem: na samym początku programu inicjalizuję wyświetlacz a następnie touch panel. Podczas inicjalizacji touch panela powinienem odbierać pewne dane z układu sterującego po uarcie. Jednak dopiero po uruchomieniu scheduler'a zgłaszane są przerwania z lini rx. Przeglądając kod zauważyłem, że kiedy skomentuję dwie linijki kodu,...
Kanał pierwszy tego timera generuje mi przerwania więc timer działa, tutaj jest tylko część kodu, mogę wrzucić cały program ale chciałem żeby kod był czytelny, i rzeczywiście pominąłem jedną linijkę: RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); Ale u mnie w programie jest to wszystko zawarte w kilku funkcjach inicjujących. Po prostu spodziewałem...
Strzelam - nie twierdzę, że to akurat to , ale dawno temu męczyłem się z podobnym problemem... no właściwie to była funkcjonalność (jeżeli ktoś o niej wiedział). Otóż niektóre środowiska dla wersji "Debug" ( lub jeśli są włączone opcje debugowe ) dodają wstawkę, która czeka na podłączenie debugera. Ten, po podłączeniu kopie program do dalszego działania....
Witam, Mam taką sytuację, jak uruchamia się program w STM32F4 to działa poprawnie. Jak na krótki czas go usypiam i ponownie włącza go watchdog, to ten sam program w którymś miejscu ulega HardFault. Czy po restarcie od watchdoga zmienne na starcie mogą być niewyzerowane? A stos tak samo wygląda po restarcie od watchdoga jak i zwykłym uruchomieniu? Pozdrawiam.
Dodaj może jakieś sterowanie diodami to zobaczysz czy program działa cokolwiek ?
Rzeczywiście to był tryb uśpienia w programie. Wielkie dzięki!
Próbuję "klecić" od do zapisu daty i czasu RTC przez rejestry, ale coś mi nie idzie. No to może pokaż co masz, to zobaczymy co tam może "nie iść". Tylko wrzuć cały kod związany z RTC, włącznie z całym użyciem go w programie głównym.
Być może masz niewłaściwą wersję programu. Na płytkach STM32F4 Discovery montowane są akcelerometry LIS302DL lub LIS3DSH i nie są one kompatybilne.
Jeszcze pytanie o same procesory. Czy ten STM32F4 na rdzeniu Cortex-M4F jest dużo wydajniejszy od MKL25Z128VLK4, rdzeń Cortex-M0+? Oraz wyczytałem także, że ten Freescale jest wykrywany przez system jak zwykły pendrive i programowanie polega na przekopiowaniu na niego skompilowanego programu? To prawda? Czy proces wgrywania programu do STM32F4 DISCOVERY...
Nie o to chodzi, że się nie nadaje, tylko nie jest jakoś mega niezbędny. Na pewno łatwiej będzie napisać Ci program. Z resztą wynika to z wypowiedzi albera
Lepiej pomyśl, co robi Twój program po zainicjowaniu Bluetooth.
Heh nawet nie wiedziałem że są dwa programy Cube i CubeMX Edit : Ok już widzę zwykle cube to nie program tylko pakiet softu
Ja tam na listingu nie widzę nieskończonej pętli. To czy potrzebujesz przerwania zależy od Twojego pomysłu na program. Natomiast skoro już włączyłeś przerwanie w programie to musisz mieć procedurkę jego obsługi. W przeciwnym wypadku dzieje się to co obserwujesz :]
Do konfiguracji i "oglądania" taktowania bardzo dobrze nadaje się program CubeMX od ST.
Jeśli interesuje Cię kompilator C na PIC-a zerknij na [url=http://www.mikroe.com/mikroc/pic/]m... Darmowa wersja ma ograniczenie "2K of program words".
(at)wszim - zamiast "continue" w Run Commands wystarczy zaznaczyć Resume powyżej. (at)nasiono - program dla STM32F4 się robi, przez jakiś czas będzie można pobrać jego "zaczątek" z tego wątku http://www.elektroda.pl/rtvforum/topic22... . Generalnie jak chcesz sprawdzić czy wszystko jest OK, to ściągnij przykład dla STM32F1, wyłącz konfigurację...
Jeżeli jesteś początkujący tak jak ja to polecam System Workbench for STM32. Instalujesz i masz wszystko potrzebne, jeżeli będziesz pisał na rejestracjach to wywalasz hal i zostawiasz CMSIS. Można w ten sposób zaoszczędzić czas na środowisko a zacząć pisać programy.
No więc jak już pisałem, program do działania tylko w RAM musi być specjalnie skompilowany i tego nie przeskoczysz. To pierwszy krok i bez tego ani rusz dalej. 4\/3!!
Wygląda to na całkowicie losowe wartości. Całkowicie losowe one jednak nie są. Pionowe linie w pliku powyżej przebiegają tak: linia z tylko zielonym kolorem (lub jego brakiem), linia z czerwonym i/lub niebieskim kolorem (lub ich brakiem). Wygląda to tak: G, R+B, G, R+B, G, R+B itd. EDIT: Końcówka pliku wygląda na uciętą. Po doklejeniu szumu do końca...
Sorry, ale po pracy tutaj nie zaglądam ;-) Ciesze się że udało ci się rozwiązać problem. Te biblioteki zajmują spore ilości zasobów, kiedyś ćwiczyłem libjpeg i libpng na STM32F10x, działały nawet ok, ale zostawało niewiele na resztę programu - rozumiem, że na F4 masz tego więcej. Jak już się uporasz z działaniem biblioteki, polecam przebudowanie jej...
Akurat "zarządzanie pamięcią" pod Windows ma niewielki związek z programowaniem mikrokontrolerów, podobnie jak typowe struktury programów, które pisze się na komputery osobiste. Podszkol się lepiej z przerwań i pisania programów w konwencji automatów.
Witam, Jak interpretować informacje na temat tego ile zajmuję mi program pamięci w mikro kontrolerze stm32f4 jeśli używam CooCox CoIDE i po przebudowaniu programu mam takie podsumowanie : http://obrazki.elektroda.pl/9729074800_1...
Powinni pójśc dalej i zrobić graficzną wersję tej biblioteki - gdzie program pisze się klikając na ikonki i łącząc jedną ikonkę z drugą za pomocą "drutu" - trochę podobnie jak w programach do edycji PCB. Wtedy nie potrzeba byłoby już patrzyć do RM ;-) Wszystko byś sobie wyklikał - nawet pewnie powstałoby hasło reklamowe: "Wyklikaj sobie program swoich...
Dodam, że działanie w programie fliczba=1.234+2.457; działa prawidłowo.
Dzięki...pomogło. Zrobiłem tak: Tak z ciekawości, pod dołączeniu statycznej biblioteki "math", o ile pamięci programu zwiększa się Twój kod?
Ja mogę komuś przesłać obsługę klasy HID, ale w języku C++ napisaną w Visual C++ 2008. Program działa wyśmienicie z płytką STM32F4-Discovery... odczytuje temperaturę z termometru i wyświetla. Program jest napisany na podstawie książki Pana Andrzeja Daniluka, na pewno mój kod nie jest doskonały, ale działa.
Możesz też kupić np. którąś z płytek STM32 Discovery, wszystkie mają zintegrowany programator-debugger, niektóre z nich mają USB-OTG. Na przykład STM32F4 Discovery ma USB OTG i akcelerometr, fabryczny program demo udaje mysz komputerową przekładając odczyty z akcelerometru na ruch kursora. Niestety przykład napisany z użyciem badziewiastych bibliotek...
Ok. Dałem skrypt linkera i plik Startup z projektu do STM32F4. Program zatrzymuje mi się w tablicy wektorów przerwań. Na marginesie zaznaczę, że jeszcze nie modyfikowałem tej tablicy. Czy ewentualna modyfikacja tej tablicy może rozwiązać problem? http://obrazki.elektroda.pl/4579209200_1...
Ten bit można ustawić debuggerem tylko podczas resetu.
No dobra, nie upieram się przy 500kHz, ale z podobnych obliczeń, jak pokazałeś wychodzi: 168MHz/4096=41015Hz, czyli 41kHz, dobre i to i lepsze niż 5kHz :) Tylko teraz jak to użyć w programie? Wiem, że DAC lepszy, ale umiejętność napisania programu na FastPWM się przyda.
Nie używam asemblera, a program staram się pisać by był jak najprostszy.
Witam, Napisałem program do obsługi ADC w STM32F4. Mam podciągnięte Uref z MAX6106 (+ zestaw kondensatorów). Jednak odczyt z ADC jest niestabilny, nawet jak zrobię zwarcie masy do ADC to odczyt skacze nawet do kilkunastu, w porywach do dwudziestu pare poziomów. Zakładałem że przynajmniej dla 0V będzie stabilny =0. Co może być przyczyną? Pozdrawiam.
Witam, zacząłem naukę z mikrokontrolerami STM32f4. Posiadam zestaw STM32F4Discovery, i mam probelm z bibliotekami. Otóż chciałem sobie wgrać ten oto program: http://eliaselectronics.com/stm32f4-tuto... lecz nie wiem gdzie zamieścić biblioteki. Ciągle wywala mi jakieś błędy że czegoś nie widzi czy coś:/ Bazuję na programie Blinky...
Ja robiłem to samo ćwiczenie na STM32F0Discovery i w ogóle nie włączałem taktowania dla BKP. Na początku konfigurujesz IWDG, przed główną pętlą sprawdzasz bit RCC_CSR_IWDGRSTF w rejestrze RCC->CSR , a w głównej pętli odświeżasz rejestr IWDG->KR . Do tego tworzysz dodatkową pętlę, w którą jak wpadniesz to rejestr KR nie jest odświeżany, więc program...
Temat zamykam, wszystko "jasne".
Tu wrzuć tutaj loga kompilacji (może być trochę skrócony). Kiedyś do LTO trzeba było do linkowania dodać opcję -fwhole-program czy coś takiego 4\/3!!
OCD kompilowałem sam I tutaj pewnie jest błąd, bo komunikat świadczy o tym, że program który skompilowałeś nie obsługuje żadnych typów JTAGa (obsługa wszystkiego jest wyłączona). Powodem takiej sytuacji jest brak odpowiednich bibliotek w Twoim systemie i/lub błędna kompilacja/konfiguracja.
Ok, dzięki w takim razie zacznę pisać programy nie korzystając z gotowych funkcji, ale mam jeszcze jedno pytanie o role plików _write.c i _inictialize_hardware.c które dodawane są do moich projektów nie zależnie czy wybrałem projekt z dodanym przykładowym programem na świecenie diodami czy nie, o ile widzę w drugim pliku inicjalizacje PLL to pierwszy...
Generalnie to wygląda to trochę tak jakby po wejściu do funkcji xTaskCreate program się zawieszał i z niej nie wychodził.
Tak naprawdę to wymaga jeszcze: 1. Kabla USB z wtyczką mini, aby móc go programować. (koszt ok. 5zł) 2. Kabla USB z wtyczką mikro, aby móc wykorzystać sprzętowy USB OTG do komunikacji z innymi urządzeniami; może pracować w trybie device, host, dual role. (koszt ok. 5zł, pewnie masz taki do komórki) Zasilanie jest z USB, więc nie potrzebujesz żadnego...
To poczytaj sobie o pisaniu bootloaderów. Tu tematów było kilka. Po co marnować aż 512kB na bootloader? 1. start programu (jest lub nie) przy takiej wersji bootloadera zakładam ze będzie wgrywany razem z jakąś wersją aplikacji. 2. aplikacja na jakieś polecenie reaguje i wywołuje bootloader mający swoją tablice wektorów. 3. aktualizacja oprogramowania....
Teraz JLink. Poprzednio miałem STLink V1. Natomiast firma ST zrobiła brzydki numer bo STLink w wersji V2 nie jest kompatybilny z wersją V1. Wobec tego Keil dla nowych wersji oprogramowania przestał wspierać V1 i musiałem kombinować ze starymi driverami - koszmar. Poza tym w V1 nie było resetu tak jak pisałem wcześniej (a w każdym razie nie udało mi...
Patrzę i naprawdę nie wiem co to ma być... Co to niby jest to: _fb_base1 = 0x20000000; _fb_base = 0xD0F001F4; _second_ram_start = 0x2000C350; _second_ram_start1 = 0xD1889A68; Ręcznie sobie "zaalokowałeś" zmienne i teraz się dziwisz, ze nie działa? Przecież to cud, że ten program w ogóle startuje... 4\/3!!
Dla danych do których dostęp jest nie tylko z poziomu programu, lecz realizowany także przez sprzęt, w tym przypadku DMA, volatile jest obowiązkowe, bo kompilator nie wie, że tablica dane jest gdzieś jeszcze wykorzystywana, więc z punktu widzenia optymalizacji zapis do niej w pętli, po wywołaniu HAL_UART_Transmit_DMA nic nie robi, więc optymalizator...
ok dzięki za odpowiedzi
Mam STM32F4 DISC1 (z programem napisanym w C#.NETMF), który odbiera dane z aplikacji Windowsa (napisanej w C#.NET). Aplikacja wysyła zadany przebieg czasowy a STM32 go odczytuje i zapisuje w tablicy. Następnie zgodnie z zadanym przebiegiem czasowym ma sterować procesem. STM32 jest widziany jako wirtualny port COM. Prędkość transmisji - próbowałem 9600...
Ależ owszem istnieje: https://cortex-m.com/arm-cortex-m-instru... Tyle że to nie jest "lista rozkazów dla STM32F410, inna niż lista rozkazów dla STM32F1", tylko lista instrukcji assemblerowych dla rdzenia ARM Cortex-M, który akurat jest z grubsza identyczny w jednym i drugim układzie. I doskonale wiem co to jest 0x15, jak byś czytał to byś wiedział,...
Podłączenie to mały pikuś. Nawet jeśli napiszemy to co z programem do mikrokontrolera ? Też mamy pisać ?
Nie pomogło, bo nie zainstalowałeś dobrych sterowników. Jak zainstalujesz libusb-win32, to ST-LINK GDB serwer przestanie działać, a OpenOCD zacznie. Obydwa te programy NIE MOGĄ działać na tych samych sterownikach. 4\/3!!
Ta, jest SWD: http://obrazki.elektroda.pl/3455478100_1... Jak załaduje przykładowy projekt STM32F4 Discovery to wgrywa się program więc to chyba jakieś ustawienia Keila...
Witam. Zakupiłem płytkę STM32F4-Discovery z procesorem ARM. Mam zrobić projekt ale nie mogę sobie poradzić z podpięciem płytki z kompem i zaprogramowaniem jej. Czy ma ktoś jakiś poradnik od podstaw? Jaki kompilator użyć i jak krok po kroku wgrać pierwszy program?
Ok już nieco rozumiem ocb z tymi adresami. Nie wiem do końca jak to działa (jak przenoszone są dane) ale idąc dalej. Czy poprawnie zrobiłem własną sekcje? Umieściłem ją za sekcja stosu: Dodano po 16 Wydaje mi się że działa stworzyłem w pliku jedną zmienną: volatile uint32_t count_max __attribute__((section(".graf"))); Tylko nie wiem czemu w wyniku kompilacji...
Witam Na tej stronie [url=http://www.st.com/web/en/catalog/to... jest paczka zip z wieloma przykładami. Jest też demo obsługujące w/w układy (program automatycznie wykrywa, który układ jest zamontowany). Program sprawdzałem i u mnie działa (płytka STM32F4-DISCOVERY z wersją akcelerometru LIS3DSH) PS. Jak skonfigurować by po włączeniu...
Witam udało mi się zainstalować i skonfigurować CooCox + linaro + STM32F4 Discover Board. Wiem, że najpierw tworzy się nowy projekt, wybiera procesor i można w zakładce repository zaznaczyć co będziemy używać np. GPIO. I to działa bez problemu. Nie rozumiem tylko gdzie w takim przykładzie jest plik makefile. A co w przypadku, gdy np. chcę skompilować...
Dzięki, jest tam coś więcej, w dodatku Tutorial jak zainstalować to na Eclipse. Kolega polecił mi także CooCox, który uderzająco podobny jest do Eclipsa. Odkąd jak nie chcę żenić ARM i AVR pod jednym eclipsowym dachem, jest mi obojętne, na jakim IDE będę pisał programy. Co sądzicie o tym CooCox?
Freddie - ciekaw jestem Twojego zdania na ten ostatni temat. No ale nad czym tu debatować? (; Programiści pracujący dla firmy ST od lat udowadniają nam, że nie znają się na tym co robią. Ewentualnie po prostu firma ST zatrudnia studentów. Moim ulubionym przykładem jest jednak całkowite ignorowanie tzw. const-correctness, przez co programy tworzone...
Jak się bawisz Keilem, to prześledź sobie działanie programu w symulatorze jak nie masz debuggera. Zobacz też czy masz zdefiniowane przerwanie od systick i co ono robi, jak nie grzebałeś nic w pliku konfiguracyjnym, to z automatu on jest włączany na wartości domyślne.
Moim zdaniem ma to znaczenie dla kompilacji całego programu, bo powinno się tez dołączyć do projektu pliki z bibliotekami STDPERIPH, a nie wiemy, czy Autor to zrobił. Niemniej jednak ten konkretny błąd, jak słusznie zauważasz, nie jest przez to spowodowany.
To jakiś cud, biorąc pod uwagę, że pokazany program nic przez UART nie wysyła. Czy zweryfikowałeś częstotliwość zegara procesora (np. miganie diodą w przerwaniu timera)? Na rejestrach BSRR i BRR nie wykonuje się operacji logicznych, bo nie ma to żadnego sensu.
Na początek proponuję nie różnicować priorytetów, czyli ich nie ruszać. Uruchom parę programów z "płaskimi" przerwaniami, a potem dopiero grzeb w priorytetach, jeśli naprawdę musisz.
Inne rozwiązanie: Robimy bootloader zajmujący do 32 KiB, zostawiamy dwa sektory po 16 KiB na DataFlash, właściwy program umieszczamy pod adresem 0x10000 i mamy rozwiązany problem bez skryptów linkera
[syntax=c] RCC->APB1RSTR |= RCC_APB1RSTR_TIM2RST; //* [/syntax] ..... [syntax=c] NVIC->ICPR[0]=TIM2_IRQn; // * NVIC->ISER[0]=TIM2_IRQn; [/syntax] od tego jest CMSIS i jest całkowicie źle. [syntax=c]TIM2->SR &= ~TIM_SR_UIF; [/syntax] Nigdy na końcu przerwań. Unikałbym operacji read-modify przy zerowaniu flag. A to, że program niby nie...
Znalazłem gotowy projekt z tym plikiem svd - projekt działa. Ale nie mam pojęcia jak przerobić swój projekt żeby działał we właściwy sposób. Tak to jest jak korzysta się egzotyków w dodatku wersji beta, i to gdzie tworzone jest to on nowa. Plugin sobie zainstaluj czy coś. Stronę programu przejrzyj mają forum itp
Witam, jestem początkującym użytkownikiem atollica i mam z nim problem. Posiadam płytkę stm32f4discovery i próbuje podłączyć niego wyświetlacz hd44780, ale jest pewien problem. Tworząc nowy projekt w atol licu automatycznie mam tworzone pliki: Main.c Startup_stm32f4xx.s inne systemowe, oraz stm32f4_discovery. Przy kompilacji wszystko jest ok, ale pobrałem...
Wysyłanie jest poprzez I2C3 osobna funkcja inicjująca I2C1 zawiera konfiguracje. Bit startu jest wysyłany ale podczas wysyłania adresu jest jakiś błąd while(!(I2C3->SR1&I2C_SR1_SB)); //wait until start bit apppear I2C3->DR=adress; while(!(I2C3->SR1&I2C_SR1_ADDR)); program nie wychodzi z drugiej pętli
Witam, Czy jest możliwe dogrywanie pojedynczych funkcji do działającego programu na mikrokontrolerze?. Przykładowo mam funkcję odpowiedzialną za działania matematyczne tj. dodawanie, odejmowanie itp. [syntax=c]float Oblicz(float v1,float v2){ // wykonaj rożne obliczenia i zwróć wynik } [/syntax][/code] Chciałbym zmieniać tylko to co jest wewnątrz funkcji...
Tą funkcją chcę zapisać jakąś wartość (v) do danego rejestru, w tym konkretnym przypadku chodzi o konfigurację akcelerometru do pracy. Rzeczywiście akurat w tym przypadku trochę nielogiczne jest sprawdzanie flagi RXNE przed zapisem danych ale nie w tym problem, bo w funkcji do odczytu danych mam dokładnie ten sam kłopot (tam już sprawdzenie bitu RXNE...
Witam, Nie rozumie pewnej części programu na STM32f4 którą własnie analizuję. Związane jest to z ADC Poniżej inicjalizacja wejścia ADC na PB1: [syntax=c] static void ADC_Configuration(void) { ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* Enable ADC1 clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AD...
wgrywanie stm32f4 stm32f4 przetwornik stm32f4 discovery
hyundai obrazu komputer naczep radio honda civic radio
sterownik movera sterownik movera
Brak klikania kierunkowskazów w samochodzie - przyczyny i rozwiązania Jak wprowadzić +48 na telefonie Philips D260?