Mam kłopot z przerwaniami. W CubeMX ustawiam płytkę STM32F0 Discovery. Piny ustawiam jako przerwania. Generuję program. Program nie reaguje na przerwania. Kod piszę w HAL. Jaka może być przyczyna?
Witam. Mam taki dziwny problem - odpalam sobie przerwanie co 10ms, w nim chciałem zrobić coś w stylu bufora dla danych wejściowych, ponieważ mam przerwanie z innego timera, które trwa dość długo (odczyt temp, ustawienie na podstawie tej wartości stanu wyjść, wypisanie temp. na lcd). Na to przerwanie dałem wyższy priorytet, i po prostu sprawdzam stan...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
A masz jakieś przerwania? Bo na Cortex-M3 mogą być DWA stosy i to że jeden się nie przepełnia jeszcze o niczym nie świadczy... 4\/3!!
Próbuję uruchomić USART2 w STM32F0-Discovery, chodzi mi tylko o odebranie danych za pomocą przerwania i gdy wyślę z komputera jaką literkę to natychmiast ląduje w Default_Handler. Próbowałem różnych konfiguracji i nic. Konfigurację mam taką: [syntax=c]RCC->APB1ENR |= RCC_APB1ENR_USART2EN; RCC->AHBENR |= RCC_AHBENR_GPIOAEN; gpio_pin_cfg( GPIOA, 15, GPIO_AF1_PP_10MHz_PULL_UP...
Witajcie, od dwóch dni próbuję ogarnąć przerwania EXTI. Już na to patrzeć nie umie... Gdy naciskam przycisk wszystko się zacina. Działanie programu (docelowe jakie ma być): dioda mruga co sekundę, po wciśnięciu przycisku gaśnie, po ponownym wciśnięciu zaczyna mrugać i tak w kółko. Działa: mruga, po wciśnięciu zostaje w stanie w jakim była podczas wciskania...
Zaczynam zabawę z STM32F0 Discovery. Zacząłem od manuala i analizy różnych przykładów z sieci. Niestety każdy konstruuje projekty na swój sposób i przebrnięcie przez niektóre przykłady doprowadza niemal do szału. Każdy gdzie indziej obsługuje przerwania, konfiguruje przerwania i peryferia,... Do tego jedne przykłady są z użyciem SPL, inne bez, inne...
Ja mam zestaw z STM32F0 wygrany w konkursie organizowanym przez kamami. Wcześniej programowałem już ARM'y ATMELa. W przykładzie jak powyżej wykorzystywany jest System timer tick. U atmela normalnie ustawiałem zezwolenie na przerwania od SysTick, a tutaj tego nie widzę. W RM od tego procesora µC w tabeli wektorów przerwań nie widzę, żeby SysTick...
Witam Mam następujący problem przy płytce STM32F0Discovery. Celem programu jest na poziomie obsługi przerwania ustawienie globalnej zmiennej, a następnie po powrocie do maina sprawdzenie zmiennej i wykonanie instrukcji. Kod pliku main.c [syntax=c] #include "stm32f0xx.h" #include "setup.h" volatile bool new_data = false; int main (void){ setup(); while(1){...
Jeśli korzystasz z stm32f4 discovery, to sprawdź czy masz dobrze ustawionego st-linka. Musisz mieć zainstalowany w systemie sterownik do niego, Keil nawet zaktualizuje w nim soft jeśli zajdzie taka potrzeba. Jeżeli chodzi o konfigurację st linka w Keilu, wszystko znajdziesz w dokumentacji u ST na stronie. Nie wiem też czy dobrze się zrozumieliśmy. Debug...
Witam forumowiczów, posiadam płytkę Discovery F3, na której eksperymentowałem dzisiaj i coś poszło nie tak, bo płytka całkowicie zgasła i straciłem z nią łączność. Teraz gdy ją podłączam do komputera przez st link to grzeje się układ oznaczony przez U1 chyba jakiś stabilizator. Czy da się to jeszcze uratować czy złom?
Użytkuję płytkę STM32F429-Discovery, środowisko budowałem w oparciu o poradnik od Freddiego, makefile oraz skrypt linkera także od Freddiego, tak słowem wstępu. Problem który napotykam jest związany z powrotem z przerwania EXTI0. Jeżeli przerwanie zostanie wyzwolone, w tym przypadku pojawi się zbocze narastające na PA0 do którego mam podpięty przycisk,...
Witam, dziś rano bawiłem się powyższym prockiem, zegary, przerwania, nic wymyślnego. Jednak od pewnego czasu nie mogę wgrać żadnego programu do uC, wszystko się kompiluje, ale po wgraniu efektów na uC nie widać żadnych, cały czas świeci się jednia z diód (GIPOG,13), wygląda to tak, jakby siedział tam jakiś stary program i nie chciał się nadpisać. Wiem,...
Witam, Bawię się zestawem STM32F3 Discovery i konfiguruję przerwanie od PC0. Po skonfigurowaniu nie działa przerwanie od PC0 tylko od PA0 (user button). [syntax=c] RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO... ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO... ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO... ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8...
Witajcie, mam standardowy problem, który już nieraz dawał mi w kość. Mianowicie: mikrokontroler świeży, nowy, dopiero co polutowany nie odpowiada. Próbuję połączyć się z nim za pomocą STM32 ST-LINK Utility. Tak samo próbowałem z poziomu System Workbech or STM32 (czasem to przechodziło gdy Utility wymiękał). Zawsze mam taki problem przy pierwszy wgraniu...
Witam, Bawie sie płytka STM32F0Discovery, napotkalem na dziwne zachwowanie prostej funkcji opozniajacej. Od razu mówie ze docelowo bedzie ona i tak uruchomiona na timerze, a to co ponizej traktuje jako swego rodzaju ciekawostke. Mianowicie zmienna timer_cnt schodzi do 0, a petla while sie nie chce zakonczyc. W tym czasie przerwania, DMA i Systick działa...
Witam Posiadam płytkę STM32F3DISCOVERY i napisałem już jakiś program, który działa i tak dalej, ale nagle nie mogę się połączyć przez JTAG tak jakby się zawieszał, albo coś. Jeszcze najpierw po podłączeniu usb do ST-Link'a tak jakby dostawał za małe napięcie, tj. niebieska dioda tak jasno nie świeciła, następnie sprawdziłem na wyjściu 5V miałem 2.5V(tzn...
Witajcie. Od jakiegoś czasu zapoznaję się z mikrokontrolerami STM32, wcześniej okiełznałem rodzinę AT91 od Atmela. Do rzeczy: Chcę zmusić procesor wchodzący w skład zestawu STM32F0Discovery do generowania przerwania w chwili wciśnięcia przycisku znajdującego się na nóżce PA0. Program: [syntax=c]/* * main.c * * Created on: 14-05-2013 * Author: Mariusz...
Witam, Wczoraj przyszedł mój niedawno zakupiony STM32F4Discovery. Do programowania wybrałem CooCoxa 1.7.5 (ToolChaina oczywiście załadowałem). Zabawę zacząłem od napisania prostego programu migającym naprzemiennie diodami: #include <stm32f4xx_rcc.h> #include <stm32f4xx_gpio.h> void Delay(void) { volatile uint32_t i; for (i...
Hej, Wróciłem po dość długim czasie do STM i chcę stworzyć na początek kilka prostych programów. Natrafiłem jednak na problem, z którym nie mogę sobie od paru godzin poradzić, a wydaje mi się dość trywialny - może będzie ktoś w stanie wskazać co robię źle. Program ma być prosty: po naciśnięciu przycisku chcę, by dioda kilkukrotnie zamrugała. Chcę do...
Witam, Właśnie jestem w drugiej lekcji kursu EP 32 bity jak najprościej i jestem przy Blink 1. Mam problem z częstotliwością. Ustawiłem, aby przerwanie wywoływało sie co 1kHz a mam 3kHz. http://obrazki.elektroda.pl/9026530800_1... Wykorzystuję środowisko Atollic TrueSTUDIO for ARM Lite 3.2.0 Jak bawiłem się tym zestawem rok temu tym...
Mam płytkę ZL27ARM oraz STM32F0Discovery. Chcę za pomocą ZL27ARM i komunikacji SPI sterować jasnością diody na płytce discovery. Wartość od 0 do 100 ma "przychodzić" poprzez SPI i ma być wpisywana do licznika TIM3, który za pomocą PWM steruje jasnością diody LED. Program się kompiluje, ale płytka discovery nie reaguje na dane z SPI. Przy debugowaniu...
Witam. Zacząłem niedawno przygodę z mikrokontrolerami STM32. Zaopatrzyłem się w zestaw Discovery F3 (taki z akcelerometrem i żyroskopem). Zacząłem bawić się STLinkiem-Utility. Ściągnąłem z niego podstawowy wsad z zestawu uruchomieniowego aby go nie stracić (miganie diod, wskazywanie północy, świecenie diodami zgodne ze wskazaniami żyroskopu) do pliku...
Witam. Na początku muszę zaznaczyć, że jestem raczej początkującym w temacie mikrokontrolerów i ogólnie elektroniki. Kupiłem sobie stm32f0 discovery oraz termometr ds18b20, podłączyłem wszystko jak trzeba - pin 1-wire do pc7, oraz piny zasilania odpowiednio do 3v i GND na płytce. Korzystam z IAR Embedded Workbench EWARM. Termometr działa, bo procedura...
Witajcie, Mam taki dziwny problem, chcę aby jeden SPI wysyłał dane (liczby, jako master) do drugiego SPI (slave, na tym samym DISCOVERY). Drugi SPI ma odsyłać sumę danych jakie otrzymał w pojedynczej ramce danych. Gdy NSS z SPI1 wisi w powietrzy to dane z SPI1 są wysyłane a pin NSS zachowuje się tak jak powinien. Gdy podepnę go do NSS w SPI2 lub do...
A korzystasz z przerwań czy z pollingu? 4\/3!!
Ktoś zliczał impulsy przerwać programowo? Jaką częstotliwość maksymalną można zliczyć?
Witam W ramach poszerzania wiedzy i umiejętności postanowiłem rozpocząć zabawę z architekturą ARM i natrafiłem na problem - nie potrafię poradzić sobie z transmisją UART przez kanał DMA, w trybie polling wszystko działa. Napisałem program w oparciu o CooCox IDE i HAL drivery. Transmisja w trybie poling śmiga, zaś próbując wysłać coś przez DMA - kiszka....
Przeszukiwania "internetów" oraz debugowania nic nie dało. Otóż natknąłem się na podobny problem jak tutaj w tym zamkniętym temacie: http://www.elektroda.pl/rtvforum/topic26... STM32f0 po przerobieniu projektu: http://www.tkjelectronics.dk/uploads/STM... na f0, poprawieniu rzeczy opisanych przez autora: -skonfigurowaniu pinów...
Witajcie, Chociaż STM'a używam od niedawna, wydawało mi się że temat przerwań udało mi się już ogarnąć. Wydawało, bo kiedy przyszła potrzeba wywołania przerwania od innego GPIO już PA0, okazało się że mam z tym problem. Mianowicie, moim celem jest wywołanie przerwania od rising edge, więc w tym celu ustawiłem sobie toggling LED'a w przerwaniu od timera...
Witam Zaczynam się bawić z moim stm32 discovery i mam problem z konfiguracją przerwania. [syntax=c] #include "stm32f0xx.h" #define zapal GPIOC->BSRR|=(1<<9);//zapal diode #define zgas GPIOC->BSRR|=(1<<25);//zgas diode int main(void) { RCC->AHBENR |=(1<<19);//wlacz port C RCC->AHBENR |=(1<<17);//wlacz port A GPIOC->MODER...
Niestety nie wiem, jak skonfigurować przerwanie zewnętrzne, gdyż nie mogę nigdzie znaleźć pod która linie EXTI jest ono podłączone. Manual, rozdział 26.5 RTC interrupts .
Tak więc migacz diodą z distortosem da się realnie "skompresować" do czegoś w rejonie 8 kB flash + ~4.3 kB RAM (w tym 1 kB na stos dla main, 1 kB na stos dla przerwań i 256 B na stos dla idle). To w dzisiejszych czasach chyba najmniejszy problem? Wystarczy spojrzeć na ceny np. STM32G0 czy STM32F0. Nie kosztują niewiadomo ile a dostajemy już sprzęt...
Nie wiemy o który z rodziny STM32 pytasz, może to się okazać istotne. Nie zadbałeś o uruchomienie USART. Opierając się na SPL (brr) zapoznaj się z poniższym przykładem (dla F0): [syntax=c] #include "stm32f0xx.h" #include "stm32f0_discovery.h" int main(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO...
brak dwóch przerwań typowych dla M4.
Audio Serial Data Bus Supports I2S
arm.com: Cortex-M4 Technical Reference Manual ARMv7-M Architecture Reference Manual Co do timera: prawdopodobnie chodzi o opóźnienie kasowania zgłoszenia przerwania. Jeśli skasujesz pod koniec procedury, to po jej zakończeniu znacznik będzie jeszcze ustawiony i spowoduje powtórne zgłoszenie przerwania. Do sterowania NVIC proponowałbym jednak użyć pseudofunkcji...
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.
Dla enkoderów ze stykami mechanicznymi, jeśli nie podłączasz go do uC za pomocą prostego filtru RC, wykorzystywanie timera czy przerwań to ślepa uliczka. Z racji, że takie enkodery nie generują impulsów o dużej częstotliwości, to najlepiej zrealizować odczyt programowo, np. cyklicznie w systicku sprawdzać czy mamy stan wysoki przez minimalny czas i...
1. Deinicjalizujesz RCC, PLL i pozostałe zegary 2. Resetujesz i wyłączasz Systick 3. Wyłączasz przerwania wcześniej zerując flagi 4. Ustawiasz wskaźnik stosu na początek pamięci bootloadera 4. Skaczesz do adresu pamięci bootloadera +4 Wszystko jest analogiczne do poniższego przykładu dla F4: https://stm32f4-discovery.net/2017/04/tu...
/* Setup SysTick Timer for 1 µsec interrupts */ Następny... Czy naprawdę uważasz, że przerwanie co jedną MIKROsekundę to jest dobry pomysł? Twój program się "zatrzymuje", bo po prostu w kółko wchodzi i wychodzi do przerwania (które zresztą nie jest nikomu do niczego potrzebne, ale...). Jeśli do tego próbujesz pracy krokowej, to już w ogóle Twój...
https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
W każdym razie poza samym włączeniem przerwań TXa trzeba pierwszy znak wysłać ręcznie. ... Nie prawda..... Na tym nie robiłem jeszcze. W innych prockach trzeba było. To napisz jak się wyzwala tutaj. Nadal nie wiem czy NVIC mam włączać skoro się przy tym zawiesza to chyba nie ale po coś to zrobili i działa, będę chciał to przerobić jak mi zaskoczy przerwanie...
[syntax=c]//============================... // TIM3 Interrupt Handler //======================================... void TIM3_IRQHandler(void){ if(TIM3->SR & TIM_SR_UIF) // if UIF flag is set { TIM3->SR &= ~TIM_SR_UIF; // clear UIF flag } }[/syntax] AND zbyteczny az prosi...
Witajcie, stworzyłem analizator w oparciu o wzór na DFT. Niby wszystko fajnie, ale problem jest taki, że jak puszczam to w ruch to na każdym "widmie" mam to samo ;/ Sprawdzałem na dwóch prążkach (różne konfiguracje) i ciągle skaczą w taki sam sposób. Kod main.c: [syntax=c]/** ****************************************...
No ale co nie działa? Nie miga dioda, nie wchodzi do przerwania, wiesza się, ... ? Włączyłeś GPIO w RCC? 4\/3!!
Widzę dane chcesz pobierać jak przyjdzie przerwanie z memsa. Niestety mam ten sam problem. Ten akcelerometr nie chce wysyłać przerwań. Zobacz na razie zrób odczyt wyzwalany timerem wtedy będziesz wiedział czy komunikacja działa. Bo z tymi przerwaniami coś jest nie tak.
Witam, Chcę obsłużyć przycisk USER za pomocą przerwania. Myślę, że wcale tego nie chcesz. Przycisk obsługiwany przez przerwanie nadaje się do jednego - do wybudzania procesora z głębokiego uśpienia. Do wszystkich innych celów dużo łatwiej jest użyć do obsługi przycisków przerwania timera.
Wejście w procedurę obsługi przerwania, wykonanie paru instrukcji i powrót - to min. 50..60 cykli procesora. Przerwania zgłaszasz tak często, że procesor zajmuje się wyłączueni ich obsługą i obsługuje je wolniej, niż są one powtarzane. Proste? Zamiast odlicczać prpgramowo dwa miliony przerwań, przeprogramuj timer np. na 1000 Hz i odliczaj 1000 lub 500...
(at)JarekC 1. Ponieważ po wyłączeniu trybu debuggera, żadne przerwania zewnętrzne, wejścia nie odpowiadają, podczas debuggingu wszystko fajnie działa. 2. Nie, nie ma żadnych pułapek. A czy to nie jest spowodowane wyczyszczeniem pamięci flash, bo kiedyś to robiłem poprzez ST-Link, może jakieś rejestry się wyczyściły czy coś?
Dziwi mnie trochę, że konfigurujesz linię RX jako wyjście. Twoje funkcje fgetc i fputc wraz z procedurą przerwania mają błąd w obsłudze (zresztą całkowicie zbędnych i szkodliwych) liczników bajtów - od czasu do czasu będą głupiały - gubienie danych, zawieszanie itp.
Sam sprawdź. Masz funkcje do odbioru. Odbierz odpowiedzi modułu na komendy AT i przeczytaj. Po pierwsze: Skoro nie wywołuje się funkcja przerwania USART1, to żadne dane nie zostaną na pewno odebrane, o ile dobrze rozumiem (w funkcji przerwania dopisałem zapalenie diody, która w żadnym wypadku się nie zapala). Nie wiem dlaczego nie jest nigdy wywoływana...
Czyli z taktowaniem mam problem. Próbuję zrobić tak jak tutaj http://stm32f4-discovery.com/2014/04/lib... U mnie jest: Core Clock = ((HSE_VALUE / PLL_M) * PLL_N) / PLL_P Niestety po takiej konfiguracji STM wariuje, nawet USART wysyła śmiecie. Jak prawidłowo skonfigurować...
Super, dzięki... Nie dość, że ten atollic nie chce zbudować ani debugować tego projektu, to jeszcze przez niego zepsuło mi się obecne środowisko (oba są na eclipsie, może ma to jakiś związek). Żeby nie było, skopiowałem cały projekt do innej lokalizacji i stamtąd go zaimportowałem. Teraz w SW4STM32 mimo, że zmieniam coś w kodzie w projekcie w pierwotnej...
Nie należy odliczać na timerze sprzętowo 5 sekund, bo i tak musisz odliczać na timerze czasy krótsze do innych celów - 5 s odliczysz programowo w przerwaniu timera zgłaszanym np. z częstotliwością 100 lub 1000 Hz. Preskaler wygodnie jest ustawić tak, żeby okres zegara wejściowego timera wynosił np. 1 us lub 10 us - wtedy łatwo liczy się i programuje...
Tool chain editor used tools: Cross GCC Compiler Cross G++ Compiler Cross GCC Linker Cross G++ Linker Cross GCC Archiver Cross GCC Assembler A w zakładce discovery option compiler invocation command to arm-none-eabi-gcc wiec chyba korzystam z C Dodano po 1 EDIT: A tak w ogóle to jak przerabiasz przykład (zakładam że ten dla STM32F4), to poprawiłeś już...
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...
Witam wszystkich serdecznie. Wraz z kolegą od kilku dni głowimy się nad pewnym problemem i nie potrafimy znaleźć idealnego rozwiązania. Naszym zadaniem jest zaprogramować układ STM32F4 Discovery tak, aby działał jak alarm. Otóż wymyślona przez nas zasada działania mówi, że po wykryciu ruchu (wciśnięciu przycisku) układ powinien odliczać 10 sekund dając...
Tylko pytanko - czy wystarczy opcja : ./configure --enable-stlink przy konfiguracji? Raczej niezbyt. Konieczne jest jeszcze włączenie trybu "maintainer-mode" przy kompilacji źródeł z repozytorium. Jak z obslugą USB? ? EDIT: Rozwiązanie zostało znalezione, oczywiście błąd u mnie - nie czytać tego co pisze niżej! (; Ja natomiast mam pytanie do was, dotyczące...
Witam, od paru dni mam przyjemność kodzić STM32F4 discovery, jednak mam problem z ustawieniem właściwie tim2/3. Miałem już do czynienia z AVRami, napisałem kilka małych programów / projektów. a oto co udało mi się posklejać z internetu: [syntax=cpp]#include "stm32f4xx.h" int main(){ RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; RCC->APB1RSTR |= RCC_APB1RSTR_TIM2RST;...
ja nie korzystam z bibliotek od ST więc wszystkie operacje wykonywane są na rejestrach I badzo dobrze. Na jakim sterowniku jest ten wyświetlacz? ILI9341? Bardzo mnie bawią takie teksty, tak te liby może nie są wskazane w przerwaniach, ale np. po 5 miesiącach nie zaglądania w projekt i pisania na inną platformę nawet z obszernymi komentarzami trzeba...
Witam, Próbuje skonfigurować timer w mikrokontrolerze STM32F3 Discovery: [syntax=c] RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI... ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Prescaler = 8000 - 1; TIM_TimeBaseStructure.TIM_Period = 20000; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_RepetitionCoun...
Bazowałem właśnie na tym samplu tworząc swój projekt. Z racji braku czasu dopiero teraz powróciłem do tego tematu. Doszedłem do przyczyny lądowania procesora w Hard Fault, otóż w pliku ethernetif.c zdefiniowałem globalny wskaźnik do struktury netif i widzę, że zaraz po inicjalizacji stosu dane z pod tego adresu ulegają uszkodzeniu. Następnie funkcja...
stm32f0 discovery discovery stm32f0 stm32f0 discovery przerwać
usterka nawiewu nagłośnienie najlepsze firmy front zmywarka whirlpool
bateria kuchenna mikrokomputer cobra1
Jak wyłączyć tryb programowania godzinowego w urządzeniach elektronicznych? Jak sprawdzić, czy mam dekoder DVB-T2?