a spróbuj przy odpiętym debuggerze, chyba że jest odpięty?
Niemożliwe żeby nie działało, masz przecież bibliotekę, która wszystko ułatwia i rozwiązuje wszystkie problemy. RCC_ APB1 PeriphClockCmd(RCC_ APB2 Periph_SPI1, ENABLE); 4\/3!!
No cóż, najlepiej od razu zaprzyjaźnić się z takim podstawowym zestawem: -datasheet + errata - TIMx_CR1 strona 310, klepiesz TIM1->CR1. Chcesz ustawić bit ARPE i pierwszy bit CMS, to będzie wyglądać tak: TIM1->CR1 = TIM_CR1_ARPE | TIM_CR1_CMS_0; I to patrząc na samo RM0008 (; W razie wątpliwości zajrzyj do "stm32f10x.h".
Tez złożyłem wg Freddiego, ale programy już są w nowszych wersjach (Eclipse) i mimo ustawień wszystkiego wg opisu (niektórych opcji nie ma, inne doszły), nie widzi toolchaina (jest prawidłowo zainstalowany i sprawdzony). Przejrzyj po prostu temat na forum elektrody o tym toolchainie zwracając uwagę głównie na moje posty - są tam opisane zmiany czy...
Witam, Niestety natrafiłeś na ogólnie znany problem :-) I2C w stm32f103 jest po prostu ... nie działa najlepiej. Jeżeli dobrze pamiętam przy próbie odczytu nie ustawia mu flagi IV5 i można tak czekać i czekać. Jeżeli masz nowe biblioteki to spróbuj zmienić prędkość transmisji na 50kB. Jeżeli to nie pomoże to zostaje ci bitbanging :)
Tę tablicę alokujesz na stosie, a jego rozmiar jest zapewne nie za duży. Albo alokuj statycznie, albo powiększ stos w ustawieniach projektu.
Ja nie wiem co tu kogo dziwi. Tablicę do której formatujesz dane masz na stosie w przerwaniu. Tablicę tą przekazujesz do nieblokującej funkcji, która rozpoczyna transfer przez UART. Następnie wychodzisz z przerwania, tablica przestaje istnieć, a UART sobie dalej z niej odczytuje dane... Dodano po 30 Nie wiemy nic o typie uC. Jeśli nie jest to Cortex-M4,...
Z kodu wynika pewna ciekawa rzecz... Otóż z tego co widzę stos znajduje się... w środku sekcji .bss - nie wiem czy to normalne, ale nie sądzę... 4\/3!!
Oczywiście, że tak. Mam stanowisko skonfigurowane według Lucjana Bryndzy
Do linkowania (do którego używasz -gcc a nie -ld) też trzeba podawać opcje cpu i -mthumb. Ewentualnie zastosuj SPRAWDZONE toolchainy - np codesourcery. 4\/3!!
https://www.elektroda.pl/rtvforum/topic2...
A z jakiego to powodu używasz starej wersji oprogramowania ze znanymi usterkami zamiast aktualnej, wolnej od tych usterek? ściągnij STM32CubeIDE, a prawdopodobnie większość problemów z debugowaniem zniknie, tak to przynajmniej wynika z moich doświadczeń. Aha, no i zawsze możesz kliknąć w Pauzę lub Stop, które nie są na szaro. Może w konfiguracji debugowania...
Ja natomiast obstawiam, że nazwa "EXTI0_1IRQHandler" jest po prostu błędna... Osobiście obstawiam, że powinna brzmieć "EXTI0_1_IRQHandler".
Chcę móc dynamicznie alokować pamięć, której rozmiar jest z góry znany, a nie ograniczony stosem. Oczywiście coś jest nie tak, bo nigdy nie dostaję NULL, a przy większej liczbie alokowanych liczb procek się zawiesza (A mój debuger ma dziś fochy i nie odpala ;-( ) W skrypcie linkera za sekcją bss mam: [syntax=c] _heap_size = 256; SECTIONS { ... . = ALIGN(4);...
no wlasnie nie mam JTAGa i z kazda chwila coraz bardziej tego zaluje :P
żywam STM32F103ZE (512KByte FLASH, 64KByte RAM) a nie stm32f100 - mój błąd przepraszam, źle napisałem co do funkcji w której wisi: [syntax=c]/* * ----------------------------------------... * The Idle task. * ----------------------------------------... * * The portTASK_FUNCTION() macro is used to allow port/compiler specific...
Po utworzeniu semafora wywołanie SemaphoreTake zawsze zwraca pdTRUE, nawet jeżeli nie została wywołana funkcja SemaphoreGive. W związku z tym zaraz po utworzeniu należało by go "wziąć"(oczywiście trzeba to wykonać przed włączeniem taska/przerwania które coś sygnalizuje tym semaforem). Problem ten pojawiał się jakiś czas temu na portach STM32 oraz SAM7S...
Tak mam, całe mnóstwo, jak wyłączę i wywalę printfy to jest ok, niemniej nie mogę poświęcić całego procka dla odczytu i2c :) Pozdrawiam Krzysiek
syscalls....
Wyświetlam sobie wyniki pomiaru w terminalu przez usart i są one poprawne także nie wiem, wydaje mi się, że mi się nie wydaje. A reszta konfiguracji jest poprawna? Konstrukcja jakiej użyłeś w celu realizacji opóźnienia nie ma prawa działać przy zadnych sensownych opcjach kompilacji. Rzuć okiem na kod wynikowy - idę o zakład, że jeśli nie masz tam -O0,...
Kiedyś też korzystałem z tych libów i w zasadzie tylko jedna z opcji (polling, irq-s, dma) mi działała całkowicie - chyba irq-s. Czemu tak się działo nie wiem, niektóre pozwalały tylko na odczyt danych a nie na zapis.
Zapomniałem. STM32F411
Dalej męcze to I2C. Powiem tak, ogólnie to coś działa, ale np. jak wykonam coś większego w pętli głównej programu while(1) to zawiesza. Czy ma ktoś gotową bibliotekę I2C stm32?
Dziękuję wszystkim za pomoc a w szczególności Samurajowi - Twój kod działa. Teraz w końcu mam działający przykład na którym mogę ćwiczyć i uczyć się dalej programowania na STM32. Pozdrawiam
Pod 64bitowymi windowsami bardzo dobrze sprawuje się chiński j-link, do kupienia za stówkę na allegro. Mam taki, i chodzi dokładnie tak samo jak oryginalny j-link (ktorego tez mam). Tak samo stabilnie będą chodzić wszystkie debuggery Ulink (1,2,pro)
Witam, Próbuje uruchomić przykład oparty na bibliotekach ST (obsługa karty SD przez SDIO), niestety przykład nie do końca działa. Wszystko jest ok do momentu wejścia do funkcji: SD_Error FindSCR(uint16_t rca, uint32_t *pscr) w której program zawiesza się na następującym elemencie: [syntax=c] while (!(SDIO->STA & (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL...
Problem został rozwiązany. Leżał on w wywołaniu funkcji putch(), która wysyłała dane na USART'a. Zamiast niej z rozpędu pisałem putchar(), która jest procedurą systemową. Jednakże dlaczego program się wykrzaczał już na samym początku? Powinien dojść do wywołania tej funkcji.
Jeśli tam jest while(1) to się zawiesi dlaczego ma się zawieszać?
a plik startowy masz dla dobrej lini STM?
Witam, mam problem z komunikacją z czujnikiem ciśnienia HP02S. Szukałem swojego problemu na forum, ale nie znalazłem. Udało mi się bez problemu odczytać dane z EEPROMu. Udało mi się też skomunikować z czujnikiem, ale do czasu. Sekwencja odczytu ciśnienia wygląda następująco (pseudokod): [syntax=c] i2c_start(); i2c_write(0xEE); i2c_write(0xFF); i2c_write(0xF0);...
Witajcie, Mam problem z uC STM32F103RB, na którym próbuję implementować tryb VirtualComport_Loopback z biblioteki STM32 USB-FS-Device library. Sam przykładowy projekt działa, zarówno w środowisku TrueSTUDIO, jak i przeportowany do CooCox, wszystko jest fajnie, dopóki kabel USB jest wpięty do PC. Pętla główna: http://obrazki.elektroda.pl/9979175400_1...
mam problem z funkcja printf(); Po wywołaniu tej funkcji procesor się zawiesza http://www.openstm32.org/forumthread1346...
Nie pracuję w jakimś noisy environmencie :) timeouty próbowałem różne z resetem i dalej mam w kółko slave mode z zajętą linią :| Chyba, że pullup jest za mocny, ale coś nie wydaje mi się. A sprawdzałeś napięcie na linii? Start condition Setting the START bit causes the interface to generate a Start condition and to switch to Master mode (M/SL bit set)...
Pokaż jak masz skonfigurowaną sesję debuggowania - zakładki Main, Debugger i Startup. 4\/3!!
a czemu nie czekasz na koniec startu? [syntax=c]I2C1->CR1 |= I2C_CR1_START; while(I2C1->CR1 & I2C_CR1_START);[/syntax]
Korzystam z SW4STM32 (System Workbench for STM32). Próbowałem najpierw skopiować "na głupiego" kod z drugiego linku, niestety zawieszał się w EE_Init();. Popróbuję jeszcze jutro na spokojnie i to przetrawię :) bo takie kopiowanie nigdy się nie sprawdza. Dzięki za wszystkie pomysły, dam jutro znać.
Odczytaj w debuggerze wszystkie rejestry flash (szczególnie SR i CR), to zobaczysz co może być źle.
W przypadku F103 jest jeszcze problem z zawieszaniem interfejsu. Jest o tym nasmarowane w erracie i internetach.
Wyczytałem że wszystkie piny w STM32F0... są +5 tollerant więc pomyślałem, spoko, nie będę nic zmieniał. Proponuję czytać datasheet a nie "gdzieś". 4\/3!!
if( EXTI_GetITStatus( EXTI_Line5 != RESET ) ) Przyjrzyj się dobrze. 4\/3!!
Kurcze, rowniez o tym myslalem szczegolnie ze inaczej sie zachowuje gdy ustawiam zbocze np rosnace -reakcja po puszczeniu guzika. Probowalem dolozyc maly kondesator ale nic sie nie zmienilo w zasadzie, poza tym bardzo mi podpada to iz jesli wstawilem w f. obslugi przerwania taka mala 'pulapke' czyli while(1); lub for(;;); to program tez sie w tym miejscu...
Prawidłowe kasowanie flagi w przerwaniu: TIM3->SR = ~TIM_SR_UIF; Prawidłowe używanie rejestrów BSRR: GPIOC->BSRR = GPIO_BSRR_BR13; Piszesz że "NVIC_EnableIRQ(TIM3_IRQn);" zawiesza układ. Używasz debuggera czy wnioskujesz to po tym, że nie zapala się żadna dioda? Jeśli używasz debuggera, to raczej powinieneś widzieć na czym dokładnie się zawiesza. Jeśli...
Ta funkcja musi działać. Albo podajesz błędne adresy albo hardwarowo jest coś nie tak. Przypadkiem nie ustawiaj podglądu rejestrów I2C do poglądu w debugu.
Dzięki Piotrus, tym razem z przyciskiem nakierowałeś mnie swoją uwagą żeby poszperać pod tymi hasłami i widzę, że nie powinno się używać przycisków w przerwaniach tylko obsłużyć je w przerwaniach od timera, więc spróbuję to po powrocie z pracy. Akurat w tym przypadku nie ma to znaczenia dla głównego problemu - detekcja naciśnięcia przycisku działałaby...
znaczy nie da sie programować? szczerze to 1 raz spotykam się z STM8 i STM32 i muszę określić czy będzie to odpowiedni produkt dla nas
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!!
Dzięki nsvinc . Napisałem krótki kod tylko do odczytu ID pamięci NAND na wskaźnikach, wszystko się skompilowało bez problemu tylko nie mogę wgrać kodu do uC. Otóż uruchamiam OpenOCD wszystko łączy elegancko ale gdy próbuję odpalić debugger to eclipse się wiesza a za chwilę pokazuję się okienko że zamknięto aplikację openocd.exe. Dzieję się tak tylko...
By jednak się definitywnie upewnić czy niedziałanie programu wynika z zatrzaśnięcia stanu wysokiego z pinu BOOT0 podczas resetu, moim zdaniem warto by było, do egzemplarza płytki, który nie działa, spróbować "zagadać" z programu "STM32 Flash loader demonstrator" poprzez USART1, Jeśli Boot0 jest w stanie wysokim to ważne jest w jakim stanie jest Boot1,...
Dawno już nie było mojego ulubionego problemu zaczynającego się na literę fał. Czy robię jakiś podstawowy błąd? Tak - napisałeś taki program że to po prostu masakra... 4\/3!!
Skoro nie zawiesza Ci się na pierwszej pętli związanej z I2C, to zapewne nie pomoże Ci nic software-owy reset który opisywałem w podlinkowanym temacie. Ponieważ nie używam bzdurnych bibliotek od ST więcej nie jestem w stanie pomóc. 4\/3!!
Powoduje wyrzucenie na serial port samych spacji. coś jeszcze może tu być źle źle? Kiedyś mówiło się, że problem jest typu "PEBKAC", ale teraz chyba nie wolno... Wiesz w ogóle jak działa funkcja printf() czy po prostu wklejasz na ślepo jakieś fragmenty znalezione z netu? Czego spodziewasz się podając do funkcji printf() adres zmiennej w której jest...
Może to jest przyczyną zawieszania się? The DCMI_VSYNC alternate function on PG9 is only available on silicon revision 3. Kamera wystawia sygnał VSYNC, ale DCMI w uC nie potrafi go wyczuć i stąd brak dalszej reakcji. TFT przypiąłbym tak normalnie przez FMC, dzięki temu znacznie łatwiej będzie przesyłać dane.
Musisz w swojej aplikacji dodać gdzieś swoją własną funkcje HAL_Delay(), która po prostu będzie wywoływała task-delay z FreeRTOSa.
Moje pytanie dla upewnienia się. Rozumiem, że ustawiając priorytety przerwań od peryferiów należy stosować wartości z przedziału 5-15, mniejsze wartości zarezerwowane są dla systemu? Z grubsza tak. Dla przerwań możesz używać dowolnych priorytetów, ale te powyżej skonfigurowanej granicy NIE mogą używać funkcji FreeRTOSa (czyli semaforów, kolejek, ...)...
Nie jestem inżynierem elektronikiem tylko samoukiem amatorem więc zrobiłem jak potrafiłem, obojętnie czy to będzie XMEGA o czy STM32 to sam tego na pewno tego projektu nie skończę mając talent do zawieszania procesora ...... i projektowania tak okropnych PCB :-) ....na dodatek po ostatniej aktualizacji wysypał się Windows 11 co oznacza ze wszystko co...
Nic nie można wykluczyć chociaż nie bardzo rozumiem jak kwarc od zegarka RTC mógłby zawieszać program bo z tego co piszesz program przy konfiguracji zegara RTC po prostu staje. Popraw mnie jeżeli źle myślę: w przypadku kiedy wyrzucisz z main() funkcję RTC_konfiguracja() dioda na pinie 14 portu E Ci mruga, w przypadku kiedy ta funkcja znajduje się w...
Pomogło dodanie małego opóźnienia przed odebraniem ostatniego bajtu. Linia SDA już nie zawiesza się w stanie niskim, ale uwidocznił się problem ze szpilkami pojawiającymi się na liniach SDA i SCLK. Szpilki powodują przekłamania danych. Są one niezależne od prędkości, ale pojawiają się na linii SDA w momencie przejścia linii SCLK ze stanu wysokiego na...
Providera? Nie rozumiem. Zawsze używałem Zylin, odkąd przeczytałem o tym w tutorialu Freddiego. ;) Program na pewno wgrywa się prawidłowo. Sprawdziłem ST-LINK Utility na Windows. Chyba masz rację z tymi symbolami debugowania. Ale to jest dziwne bo mam -g przy kompilacji: /home/(...)/arm/gcc-arm-none-eab... -mcpu=cortex-m3...
Czy spotkaliście się może z takim problemem? Teraz zrobiłem test i jest tak jak piszesz. Akurat mam pod ręką Nucleo (jako programator) i osobną płytkę z osobnym procesorem (F0 ale to chyba nie jest ważne) to widzę że po ustawieniu zabezpieczenia Level1, faktycznie poprzez odłączanie i załączanie Nucleo do USB, procesor nie startuje. Nie pomaga reset...
Sygnał REF_CLK powinien być generowany przez cały czas, gdy chcesz mieć aktywny interfejs Ethernet. Najpierw konfigurujesz układ MAC (zegary, typ interfejsu MII/RMII), następnie aktywujesz taktowanie PHY za pomocą REF_CLK. Gdy zamienisz kolejność (najpierw taktowanie PHY, później ustawiasz w STM interfejs MII/RMII) to program zawiesi się w pętli: [syntax=c]...
Ale dlaczego w trybie debug się nie zawiesza? Może za krótko czekasz po włączeniu zasilania i próbujesz komunikować się/inicjalizować zewnętrzne urządzenie zanim zdąży zakończyć sekwencję POR. Mogę tylko gdybać bo nie wiem co masz do tego uC podłączone, ale widać że jakieś magistrale szeregowe masz wyprowadzone.
zrobiłem za Ciebie prace domowa http://obrazki.elektroda.pl/5253621500_1... Swoją drogą - używasz innego układu do projektowania i nawet nie sprawdzisz pinout-ów. Lekko szkujace. Ja robie to taka metodą jak na załaczniku.
1. Ac6 STM32 MCU GCC czyli w sumie arm-none-eabi w wersji 5.2.1 2. Procesor ląduje w UsageFault_Handler() w linijce this->a = (duty_max - duty_min)/(kat_max-kat_min);
Nie wiem, nie znam się, ale przebieg wygląda jakoś dziwnie, jakby się w nakładały dwa. Podstawa czasu jest odpowiednia? I2C w STM32 jest, jak dla mnie, strasznie kapryśny. Ja sam miałem spore problemy z jego uruchomieniem na F103. Pomogło dopiero przestawienie kolejności inicjacji pinów i modułu w kodzie HAL i jakieś czary włączaniem/wyłączaniem. A...
screenshot? Uwierz nie ma sensu. Próbuję w ten sposób wysłać dane: #define PCF8574_ADDR 0x40 void PCF8574_RegWrite(uint8_t reg, uint8_t data) { while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)); I2C_GenerateSTART(I2C1, ENABLE); I2C_TransferHandling(I2C1, PCF8574_ADDR, 1, I2C_Reload_Mode, I2C_Generate_Start_Write); //while(I2C_GetFlagStatus(I2C1, I2C_ISR_TXIS)...
Od jakiegoś czasu zmagam się z problemem wysłania danych przez UART co określone chwile czasowe. Dokładnie chodzi o to iż jeśli wywołuje funkcje: void uart1WriteByte (t_int8u byte) { while (!(USART1->SR & USART_FLAG_TXE)); USART1->DR = byte; } w pętli głównej programu while(1) { uart1WriteByte(0x77);...
Witam, A tablica z wektorami się zgadza ? Pozdrawiam
Trzeba cyklicznie mierzyć napięcie za pomocą ADC i porównywać wartości. Niektóre mikrokontrolery potrafią to realizować automatycznie („ADC analog watchdog” w STM32). Jeśli to mają być dwa progi dla tego samego sygnału, to można też zmieniać napięcie progowe, np. poprzez przełączanie dzielnika. Poniżej przykład dla 1/3 i 2/3 Vcc. http://obrazki.elektroda.pl/9762146100_1...
Dzięki wielkie za odpowidzi. O jakie rejestry sprawdzić i jakie wartości w nich powinny być? Przemapoania nie robię ale ten kawałek kodu pozostał z innych prób. Ale przy SPI nic nie robiłem. SPI jest cały czas PA4, PA5, PA6, PA7. podczas debudowania kontroler nie zawiesza się w momencie while((SPI1->SR & (1<<1))==0); ale nic nie wysyła...
Witam. Dostałem płytkę STM32 discovery (tą z STM32F100BR) i chciałem zacząć to programować pod uVision korzystając z ST-Linka. Próbuje załadować tam kod demo dostarczony od ST wraz z bibliotekami. Wszystko się kompiluje i gdy klikam Flash->Download w okienku Build Output pojawia się: Load "D:\\Elektronika\\STM Discovery\\stm32vldiscovery_package\\an3...
Ale wciąż czekam na opinie! kogoś kto zrobil coś duzego na tych bibliotekach! Ale co według Ciebie znaczy "duże"? Ja robiłem może nie coś ogromnego w sensie objętości we Flashu, ale ze skomplikowanymi zależnościami czasowymi na STM32F103VD/VE. Używałem przerwań i robiłem rekonfigurację różnych bloków układu w tych przerwaniach. I to działało z użyciem...
co rowniez niewiele zmienia : moja tajemnicza_funkcja(p) zawiesza sie przy wartosci parametru 3456 ale tylko o pełnej godzinie w dni parzyste. Dlaczego?
Witam Mam problem z odpaleniem ADC na STM32F205ZG. Potrzebuje uruchomic przetwornik na 1 pomiar i w wygenerowanym przez ten przetwornik przerwaniu EOC odczytac pomiar. Czy ktos bylby w stanie podzielic sie kodem robiactym taka wydawaloby sie banalna rzecz? Moj kod niestety nie dziala. Probowalem zarowno z biblioteka ST (kod ponizej) jak i bez niej....
No tak ma być, przy prawidłowej inicjalizacji systemu nie powrotu z tej funkcji. vTaskStartScheduler() will only return if there is insufficient RTOS heap available to create the idle or timer daemon tasks.
Witam. Od pewnego czasu walczę bezskutecznie z ciągle zawieszającym się programem. Zadaniem aplikacji jest jedynie sprawdzanie stanu portu i usypianie procesora na 2 sekundy. Niestety cyklicznie co ok 10 wybudzeń procesora program zawiesza się podczas czekania na synchronizacje z APB ( RTC_WaitForSynchro() ) Cała konfiguracja oczywiście wzięta z przykładu...
Sprawdzałem TeraTerm, PuTTY oraz terminal z Arduino. Wszystkie odczytują poprawnie (z DMA). Mój się zawiesza. Przy wysyłaniu bez DMA jest OK.
Zgodnie z nazwą ten problem da się rozwiązać jedynie poprzez dynamiczną alokację pamięci (; Niemniej jednak nie musi to być koniecznie malloc() czy new, wystarczy np. jeden wielki bufor, z którego w swoim programie "odcinasz" potrzebne Ci kawałki - to po prostu byłaby Twoja sterta. Niemniej jednak zbyt wiele nie zyskasz tak czy siak... Może prościej...
Problem występuje wyłącznie kiedy Keilem debuguje kod wypluty z STM32CubeMX i nie występuje od razu, występuje w trakcie debugowania, Keil przeleci kilka instrukcji i po kilku dopiero zwraca błąd jak w temacie, poczym STLink się zawiesza, musze odpiąć zasilanie całkowicie i podpiąć ponownie. Pytanie zasadnicze czy ktoś ma doświadczenie z CubeMX i widział...
To zapodaj kod tej funkcji, bo nie widzę jej powyżej
Dane wpisane do tego skryptu zakładają, że nie korzystasz z ŻADNYCH wyjątków. Musisz sobie je ustawić w zależności od swoich potrzeb. __irq_stack_size = 0; Czyli po wejściu w przerwania mam dostępne 0 pamięci ram na zminne? W skrócie: Funkcji ustawiającej stosy przekazane jest 0 dla trybu XXX, a więc (w zależności od kolejności) dany stos będzie pokrywał...
Zainteresowałeś mnie tym opisem. Sprawdzamy dokumentację, a tam jest zapis: After reset the VOS register is set to scale 2. When the PLL is OFF, the voltage regulator is set to scale 3 independently of the VOS register content. The VOS register content is only taken into account once the PLL is activated and the HSI or HSE is selected as clock source....
Ustawienie pozycji tez nie ma sensu akurat tu powtarzać bo liniję wyżej było LCD_INIT. Jakby to miało jakieś znaczenie to wieszało by się nie prze pierwszej próbie czyszczenia LCD tylko przy którejś z kolei a tak zawieszanie następuje bezpośrednio podczas pierwszego podejścia do czyszczenia LCD więc dane sa akurat w tym przypadku wpisywane pod (0,0).
siedziałem nad tym kilka dni.. przyczyną okazała się nowa biblioteka, w której dodano funkcję "FSMC_AsynchronousWait".. niby standardowo jest disabled, ale po włączeniu program się zawieszał na zapisywaniu do pamięci :) podczas konfiguracji w strukturze należy dodać FSMC_NORSRAMInitStructure.FSMC_Asynchron... = FSMC_AsynchronousWait_Disable;
Można pomóc tak jak opisałem: podając przykładowy kod jeżeli ktoś takowy zna. Ale coś czuję że z tym będzie ciężko. Nawet do SDADC jest bardzo mało jakichkolwiek kodów. EDIT. Mały upgrade. Był błąd w linii: [syntax=c]SDADC1->CR1 = ~SDADC_CR1_INIT; //Wyjscie z trybu konfiguracji[/syntax] Powinno być: [syntax=c]SDADC1->CR1 = 0; //Wyjscie z trybu konfiguracji[/syntax]...
udało się zmienić nazwę, ale jak to zwykle bywa kolejny problem się urodził ... mianowicie, gdy tworzę plik z długą nazwą po raz pierwszy to zapis do pliku jest przeprowadzany bezproblemowo, natomiast, gdy chcę przeprowadzić tę operację po raz drugi (na karcie istnieje plik o długiej nazwie) to zawiesza mi cały system i nic nie daje znaku życia :(
Witam, jestem w trakcie wykonywania ćwiczeń z książki Mikrokontrolery STM32 w sieci Ethernet na zestawie uruchomieniowym ZL29ARM, z programatorem j-link edu, w środowisku eclipse (a konkretniej System Workbench for STM32 z pluginem do obsługi j-link). Aktualnie zawiesiłem się dłuższy czas na konfigurowaniu budzików biblioteki lwip (dla posiadających...
Korzystam z funkcji i bibliotek STM32: [syntax=c]void PB_LED_Init (void) { /* Enable GPIOx Clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_PW... ENABLE); /* Disable JTRST on PB.04 */ AFIO->MAPR = 0x01000000;// why does it not work??? GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTR... ENABLE); /* Initialise LEDs [0-5] in on state */ LEDInit(LED0);LEDInit(LED1);...
Odkopię temat, bo ostatnio próbowałem sobie kupić zapasowy ST-LINK v2 (klon oczywiście), kupiłem dwa i w obu siedział APM32F103CBT6 tylko w jednym sygnowany przez APEXMIC, a w drugim przez GEEHY. O ile z ST-LINK Utility te programatory działały, to z STM32 Cube Programmer - nie chciały. Niby je widział, ale w polu SERIAL NUMBER była pojedyncza litera,...
Witam Urządzenie jest zasilanie z USB, ale to jest tylko procesor + jedna kości ramu, 500mA nie ma. Wziąłem nawet oryginalny program z STM, MassStorage, ale to samo. Tzn wszystko działa ale ciekawy jestem czy tak powinno być, że tyle razy mam sygnał reset z USB. Z tego co piszesz to chyba nie. Spróbuję zasilać z zewnętrznego zasilacza Co dziwne mam...
Zwóć uwagę na flage RXNE której w Twoim kodzie nie ma. Próby z RXNE zamiast TXE też były - działanie bez zmian. A co piszą na temat timingów w pdf'ie do tego wyświetlacza? Dokladnie tak samo zachowuje się przy zegarze 72MHz, jak i przy 8MHz. Czy to SDO/SDI w kodzie powyżej to jest zdefiniowane od strony wyświetlacza czy procesora (lub błąd w komentarzu)...
Dane przesyłane do tej kolejki są z funkcji TickHook, a wygląda to tak: [syntax=c]char *pcMessage = "Status: PASS"; xHigherPriorityTaskWoken = pdFALSE; xQueueSendFromISR( xLCDQueue, &pcMessage, &xHigherPriorityTaskWoken );[/syntax] Funkcja TickHook jest wykonywana z każdego przerwania systemowego, natomiast dane przesyłane kolejka są raz na określona...
Cześć, Od niedawna zapoznaję się z zestawem STM32F769I-DISCO. Chciałem napisać prosty program migający diodami z użyciem FreeRTOSa, ale napotkałem na problem z funkcją vTaskDelay() . Dioda w założeniu miała migać co 0,5s, ale tylko się zaświeca i nic dalej się nie dzieje. main.c led_task.c System Workbench for STM32 . Męczę się z tym już parę godzin...
Witam ! Od miesiąca walczę z okrutnym problemem i w końcu postanawiam się go pozbyć. Nie wiem co może być przyczyną. Wyjaśniam problem: Komputer najzwyczajniej w świecie się resetuje, jak nie reset to zawiecha że muszę zresetować. 3 albo 4 razy pojawił się blue screen. Problem najczęściej pojawia się podczas grania, ale gdy przeglądam fb, i inne strony...
Witam Po jednodniowej radości związanej z prawidłową pracą klona amonteca od Freddiego nadszedł kryzys... Aktualnie IAR nie jest w stanie wgrać nawet programu do flasha. W oknie konsoli IAR-a głownie jest Verify error at address.. W gdb: http://obrazki.elektroda.net/3_126701690... Wyrocznia podpowiada: "...I suspect some interrupt routine or...
No właśnie ja mam ten sam problem. Nijak nie da sie uruchomić wyświetlacza. Działą tylko juz skompilowany program od mrh (Dzieki!) ale nie mogę wprowadzić żadnej zmiany w program bo się nie kompiluje i błąd "make: [clean] Error 127 (ignored)F0_lcd3310 C/C++ Problem" Wymiękam. Dalej nie mogę skompilować tego programu tak żeby działał. Przesiadłem się...
Pierwsze, na szybko to bym spróbował jednak z maksymalną wielkością danych. 255 w tym wypadku. Bo być może fizyczny transfer odbywa się po zapełnieniu bufora lub timeoucie. Niestety, ale dalej to samo - gubi dane i się zawiesza... Dałem nawet bufor 256 bajtów (w dokumentacji jest napisane, że jako pierwsza jest wysyłana komenda) - nic nie pomogło...
Witam, Czy wie ktoś, jak zwiększyć pojemność stosu? Jestem w trakcie pisania kodu źródłowego wykorzystującego dość dużo obszernych operacji matemtycznych, m.in. na macierzach (lib CMSIS). Problem przejawia się w taki sposób, że podczas debuggowania program ląduje w handler fault, procek się zawiesza...podejrzewam, że brakuje mu pamieci w stosie... Może...
zdania doprowadzają do jedynej IMO słusznej konkluzji w tym wypadku: Arduino. Arduino to ślepa uliczka. W mojej ocenie, Arduino traktuje uC jak Z-8 (CPU + GPIO) czy 8051 gdzie ze sprzętu to głównie proste timery i UART. ZERO wykorzystania sprzętu! Bo co wspierają biblioteki Arduino? UART z malutkim buforem w RAM, I2C to samo. SPI bez bufora, bez przerwań....
Witam, Napisałem program który wysyła kolejno bajty przez USART do drugiego urządzenia i jednocześnie odbiera bajty (taki powiedzmy full-duplex :)) . W zasadzie nic specjalnego program wygląda następująco: https://obrazki.elektroda.pl/5185361200_... . Czy przyczyną są drgania styków? Wcześniej tą komunikacje realizowałem za pomocą DMA...
Ok udało mi się utworzyć komunikację z pomiędzy NRF-ami. Zabrakowało linii: [syntax=c] SPI_RxFIFOThresholdConfig(SPI2, SPI_RxFIFOThreshold_QF); //ustawienie RNXE po 1/4 ramki czyli po 8 bitach - domyślnie po 16 bitach Threshold_HF SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF); [/syntax] Dzięki temu uC nie zawiesza się już w oczekiwaniu na...
stm32 usart zawiesza zawiesza delonghi zawiesza lenovo
maszyna mechaniczna zawora odpowietrzać zbiornik paliwo prosty bezpiecznik elektroniczny
Brak sterowników do soundbara Lark - co robić? Jak usunąć kod PIN z Samsung GT-S5530?