https://obrazki.elektroda.pl/2553827400_... Cześć, pod tą niecodzienną nazwą tematu prezentuję projekt małego, automatycznego odtwarzacza muzyki do umilania posiedzeń na toalecie. Oczywiście to jedno zastosowanie, w innych sytuacjach pewnie też może się przydać ;) Głównym założeniem była niewielka złożoność, banalny interfejs, bezobsługowość...
https://obrazki.elektroda.pl/3252078300_... Poniższy artykuł przedstawia – krok po kroku – wykonanie niewielkiego, kieszonkowego oscyloskopu cyfrowego. Nie jest on tak dobry jak zwykły warsztatowy oscyloskop, ale z drugiej strony można zabrać go niemalże wszędzie. Poza tym – nie wszystkie projekty DIY muszą mieć sens....
Czy użycie pinu UART jako GPIO wymaga pewnych ustawień? Bezpośrednia odpowiedź: Tak, użycie pinu UART jako GPIO zazwyczaj wymaga pewnej konfiguracji. Wynika to z faktu, że piny UART są zwykle domyślnie skonfigurowane do komunikacji szeregowej i należy je ponownie skonfigurować, aby działały jako piny wejścia/wyjścia ogólnego przeznaczenia (GPIO). Szczegółowa...
U mnie w kodzie nie ma ...... /* * sterownik dla Margas * wersja dla NUCLEO STM32F446RE * działa dzieki życzliwości i zaangarzowaniu członków forum ELEKTRODA * wspomagających moją skromną wiedzą programistyczną * za co jestem im bardzo a to bardzo wdzęczny * data xx-xx-2024 */ #include "STM32TimerInterrupt.h" #include "STM32_ISR_Timer.h"...
Najwięcej szukaj w manualu. Ja też nie wiedziałem o tych funkcjach i z manualem sam do tego doszedłem jak się wyłącza przerwania (doszedłem to dość sporo powiedziane - tam to poprostu jest napisane).
Trzeba wyłączyć przerwanie/przerwania, to chyba oczywiste... 4\/3!!
Ja też uważam, że problem nie wynika z zapisu do pamięci FLASH. Gdybym to ja miał szukać rozwiązania, to najpierw spróbowałbym wyłączyć większość funkcjonalności programu, żeby doprowadzić do sytuacji gdy problem zniknie (w skrajnym przypadku zostanie Ci tylko obsługa Modbus RTU :). Wtedy po kolei zacząłbym włączać poszczególne moduły programu, tak...
Witam, Naciąłem się na problem z przerwaniami z którymi nie mogę sobie jak na razie poradzić. Jeśli w bootloader'ze nie wykorzystam przerwać, to po skoku do aplikacji wszystko działa ok, jeśli natomiast zostanie tam wykorzystane, to aplikacja już ich nie wykonuje. Wydaje mi się że ma to związek z wskaźnikiem przerwania, ale nie mogę znaleźć rejestru...
mam ustawione przerwanie zewnętrzne ustawione na wyzwalanie zboczem opadającym i narastającym w funkcji obsługi przewania zapisuję sobie do bufora: void EXTI0_IRQHandler(void) { //Check if EXTI_Line0 is asserted if(EXTI_GetITStatus(EXTI_Line0... != RESET) { Buffer[iWriteIdx] = 'I'; GoToNextElement(&iWriteIdx);...
Czesc, mam problem z konfiguracja przerwan zewnetrznych. Sprawdzalem kilka przykladow znalezionych w necie i zaden (prawie) nie dziala. Jedynym przykladem ktory dziala jest gotowiec z Atollic studio, i generowanie przerwan na porcie PA0. Niestety zadne modyfikacje na inne porty nie dzialaja. Oto moj kod: Inicjalizacja GPIO na porcie PB12: [syntax=c]void...
Programiści wykorzystujący STM32 z serii L najczęściej korzystają z biblioteki HAL do obsługi tego typu przerwań. Chciałbym skonfigurować przerwanie które resetowałoby procesor po rozłączeniu zasilania bez jej wykorzystania. Układ zaprojektowany mam tak aby na pinie PA2 pojawiła się jedynka w momencie odcięcia zasilania. Według dokumentacji załączonej...
Witam, próbuję zrobić projekt, w którym używam przerwań zewnętrznych, na razie staram się chociaż jedno uruchomić, ale po wejściu w przerwanie mikrokontroler się zawiesza. Jedno zadanie włącza LCD, drugie miga sobie diodkami, a gdy naciskam przycisk to diodki się zatrzymują i nic już do resetu się nie dzieje. Jestem początkujący w tym temacie więc za...
Witam, Szukałem na forum i nie znalazłem... Mam taki oto problem, przerwania są skonfigurowane w następujący sposób: [syntax=c] NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); NVIC_PriorityGroupConfig(NVIC_PriorityGr... NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp...
Witam, Jestem poczatkujacy jesli chodzi o programowanie pod architekture Cortex. Posiadam zestaw ewaluacyjny STM32 Butterfly. Probuje skonfigurowac przerwanie, aby wykonało się po naciśnięciu przycisku. Debugujac program widac, ze po nacisnieciu przycisku flagi sa ustawiane, ale funkcja obslugujaca przerwanie nie jest wywolywana. tak wyglada moj kod...
Witam. Walczę z przerwaniami zewnętrznymi od kilku dni i niestety przegrywam walkę... Jeżeli konfiguruję po jednym zdarzeniu dla każdego przerwania (np. PA0, PA1, PA2) jest wszystko ok. Problem się zaczyna jak chcę skonfigurować kilka zdarzeń od jednego przerwania ( w moim przypadku: PA1, PB1 i PC1). Przerwania PA1 i PB1 nie działają w ogóle, natomiast...
Witam, Mam problem z realizacją przerwania z USART3 na STM32L152RBxx. W momencie wywołania przerwania debugger zatrzymuje się na funkcji default_handler(). Poniżej umieszczam kod: main: #include "stm32l1xx.h" #include "stm32l1xx_conf.h" #include <string.h> void GPIO_Conf(void); void RCC_Conf(void); void NVIC_Conf(void);...
Robię program składający się głównie z przerwań. Program steruje 6 silnikami krokowymi. Uruchomiłem więc 6 timerów dla kazdego silnika w trybie PWM, wypełnienie zawsze 50%, sterowanie częstotliwością. Żeby każdy silnik mógł wykonać zadaną ilość kroków (a zalezności miedzy silnikami są skomplikowane i nieprzewidywalne), każdy timer po wykonaniu impulsu...
[syntax=c] RCC_APB2ENR_ADC1EN_bb = 1; ADC1->CR2 |= ADC_CR2_ADON; // adc1 calibration ADC1->CR2 |= ADC_CR2_RSTCAL; while (ADC1->CR2 & ADC_CR2_RSTCAL); ADC1->CR2 |= ADC_CR2_CAL; while (ADC1->CR2 & ADC_CR2_CAL); // setting adc channels ADC1->SQR3 |= 8; ADC1->CR1 |= ADC_CR1_EOCIE; NVIC_EnableIRQ(ADC1_2_IRQn); //... while (1)...
Witam, chciałbym mieć przerwanie zewnętrzne na PE0 a cały czas cokolwike bym nie zrobił, przełączył, zmienił itd jest na PA0, moglby ktos rzucic okiem na kod i powiedziec co jest zle... wydaje mi sie ze w tym syscfg jest cos zrabane, albo nie chce sie ustawic etc... swoje wnioski opieram na tym ze PA0..2 normalnie smiga tylko nie mogeprzejsc jakby na...
Cześć. Chcę skonfigurować linie PB8 i PB9 jako źródło przerwań żeby reagowało na zbocza narastające i opadające [syntax=c]RCC->APB2ENR |= RCC_APB2ENR_IOPBEN | RCC_APB2ENR_AFIOEN; gpio_pin_cfg(GPIOB, 8, gpio_mode_input_floating); gpio_pin_cfg(GPIOB, 9, gpio_mode_input_floating); AFIO->EXTICR[2] = AFIO_EXTICR3_EXTI8_PB; //PB8 tu wybieramy porty przerwań...
Witam. Za mną cały dzień ślęczenia nad tym nieszczęsnym prockiem i problem dalej nie rozwiązany. Potrzebuję oprogramować przerwania EXTI z przycisków/krańcówek itd. Z kodem zszedłem już do poziomu migania diodą, żeby tylko uruchomić sukcesywnie te przerwania, a tu dalej klapa. Program w momencie przerwania przechodzi od razu do pętli Reset_Handler i...
Witam, Piszę program do obsługi klawisza podłączonego do płytki nucleo - do pinu PC13 za pomocą przerwań. Klawisz ten po wciśnięciu zwiera do masy. Napisałem kod, który po wgraniu cały czas powoduje wywołanie przerwania EXTI15_10_IRQHandler(void). [syntax=c] #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include <stm32f10x_spi.h>...
Zaczynam zabawę z stm32. Chciałbym obsłużyć USART przez przerwania. Większość przykładów opiera się na stdperiph lib, chciałbym uniknąć stosowania tej biblioteki. Używam tylko nagłówka stm32f10x. Wydaje się że włączyłem przerwanie przez NVIC_EnableIRQ(USART1_IRQn) bit w rejestrze USART1->CR1 również został ustawiony i w zasadzie na tym utknąłem. Prosiłbym...
Witam, przy ustawionym preskalerze np na 80 przerwanie zostaje wywołane, ale gdy zmniejsze preskaler to przerwanie się nie wykonuje. #include "stm32f10x.h" void RCC_Conf(void); void Show(int); void GPIO_Conf(void); void NVIC_Conf(void); void TIM_Conf(void); . . . int main(void) { #ifdef...
choć myślałem, że kiedy nie ruszam niczego co ma związek z CC to on nie porównuje.. To źle myślisz. Włączenie CC to tak naprawdę włączenie tego co dalej. Czyli sterowania kierunkiem liczenia reakcje wyjścia OC itp itd. Porównanie działa nawet gdy CC jest wyłączone.
Tu też nie trzeba nic robić w przerwaniach - wystarczy zaprogramować timer. Jeśli trzeby wygenerować określoną liczbę impulsów - trzeba odliczyć je w przerwaniu timera i po kolejnym przerwaniu wyłączyć timer albo ustawić wypełnienie na 0.
Rzecz w tym, Panowie, że te bramki tam są i robią ten OR czy AND, chociaż oczywiście robią go szybciej niż procesor. Ciekawe byłoby porównanie czasu wykonania sekwencji kilkudziesięciu zapisów słów 32-bitowych i kilkudziesięciu zapisów BitBand, przy założeniu, że procesor wykonuje w obu przypadkach wyłączenie instrukcje STR, bez obsługi pętli i modyfikacji...
W jakimś przerwaniu timera migasz diodą. w trakciemigania sprawdza jakąs flagę czy ma migać a jak nie to wylacza diodę. W pętli jak klawisz sie nacisnie (zakładamy tylko jeden stan - wyłaczenie - a właczenie migania następuje poprzez inny magiczny przycisk = reset) ustawiasz flagę na niemiganie. Jezeni wyłaczenie ma nastapić natychmiast (a nie przy...
Od pewnego czasu walczę z chińską płytką (blue-pill) z STM32F103 na pokładzie Przeczytaj ten wątek i kup sobie inną płytkę. https://www.elektroda.pl/rtvforum/topic3... Jeśli koniecznie chcesz się męczyć z chińskimi podróbkami, to na mojej stronie ( http://www.freddiechopin.info/ > Download > ARM > Przykłady > stm32_blink_led) znajdziesz szablon...
1. Dla SysTicka nie włączasz NVIC, bo to przerwanie jest w NVIC zawsze włączone (w ogóle nie da się go wyłączyć inaczej niż wyłączając globalne zezwolenie na jakiekolwiek przerwania). 2. Generowanie przerwania włączasz w SysTicku [; Reasumując: - SysTick->LOAD - wartość "przeładowania" - SysTick->CTRL - dla takiego działania jak chcesz ustawiasz tam...
jeśli chodzi o inne przerwania od układów peryferyjnych to poza ustawieniem rejestrów tego układu muszę włączyć to przerwanie i czy tu wystarczy funkcja z core_cm3 np. NVIC_EnableIRQ( RTC_IRQn ); tak I dlaczego nie musiałem włączyć globalnych przerwań żeby SysTick działał?;] Przerwanie SysTick jest w grupie exceptions, ich się nie da wyłączyć w NVIC....
Akturat w tym momęcie ten overhead HAL-a ma zbawienne znaczenie. Poza kolejny bzdura,. W AN w przykładzie do pollingu w ustawienie bitu STOP jest zrealizowane z sekcji krytycznej (przy wyłączonych przerwaniach).
A uwzględniłeś czas w przerwaniach? Spróbuj wykonać każdy z testów z wyłączonymi przerwaniami, powiedzmy kilkaset razy i dopiero wtedy wylicz czas poszczególnego testu. Jeżeli różnice będą występować to jedyne wytłumaczenie, które przychodzi mi do głowy to takie, że być może część danych jest w innym segmencie pamięci. Wtedy przypadkowo możliwe że operacje...
Ewentualnie jak ładnie i zdrowo wyłączyć i włączyć wszystkie przerwania w Cortex-M3 STM32F103. Jeśli korzystasz z FreeRTOSa to po prostu wrzuć tam portENTER_CRITICAL() i po sprawie. Jeśli nie, to użyj funkcji z nagłówków CMSIS (__enable_irq() i __disable_irq()). 4\/3!!
Zwiększ rozmiar stosów, bo przerwania mogą po prostu przepełniać stos. No i jeśli ich nie potrzebujesz, to wyłącz możliwość przerwań zagnieżdżonych. 4\/3!!
(at)_lazor_ Reset Handler Raczej ciężko nazwać to przerwaniem. Stany wyjątkowe, jakim jest NMI i RESET, to przerwania o ujemnym priorytecie. Przerwań tych nie można wyłączyć. w ARM RESET jest przerwaniem.
Czy mnasz jakieś przerwania które mogą być wywoływane w trakcie odczytu rejestrów? Jeśli tak to podczas odczytu rejestrów spróbuj wyłączyć przerwania i zobacz czy dalej wywala.
(at)tadzik85 - dziękuję za skrót różnic między nagłówkami :) Ale... no bez jaj. Czyli bit "Global Interrupt Enable" (czy jak on się tam zwał) w AVR, decyduje o tym na jakim poziomie pracuje procesor? ISR z "odblokowanymi" przerwaniami to poziom wątku, a "main" z "wyłączonymi" przerwaniami to poziom przerwań? A całe to "włączanie/wyłączanie" przerwań...
Tzn, że program może działać dalej poprawnie a debuger wskazuje na to, że jesteśmy w np HardFaultHandlerze ? Mógłbyś nieco rozwinąć myśl ? Czasem może być jakiś problem sprzętowy/programowy/systemowy, który może spowodować wywalenie się debuggera, który będzie np. uparcie twierdził, że jesteśmy wciąż w jakiejś linii, choć mikrokontroler sobie wtedy...
Postaram się to zrobić. Czy drogą jest tu wyłączenie przerwania od TIM2 (on włącza diodę), wyłączenie portu PD0, czy cokolwiek innego? I dlaczego ta pętla while(GPIOD->IDR) nie działa?
Bez taktowania nic nie będzie działać. Funkcja zapisuje dane pod adresy które są wyłączone, więc możesz tam wpisywać co chcesz. 4\/3!!
Timery i dokładne odmierzanie czasu w różnych miejscach kodu. Zamiast korzystać z kilku timerów, można w różnych blokach kodu konfigurować 1 timer i wstrzykiwać odpowiednią funkcję przerwania. Oczywiście pod warunkiem, że nie będziemy musieli odmierzać czasu dla dwóch bloków jednocześnie. Wygląda na to, że potrzebujesz po prostu callbacka w jednym...
Czy hardfault wystepuje gdy wyłączysz przerwania i zbliżysz palca do układu? Włącz systick - to mniej lub bardziej pozwoli zweryfikować, gdzie masz zonk; jak systick będzie ci działał i od zbliżania palca nie będzie hardfaulta, to trzeba od początku powoli i spokojnie przekopać się przez EXTI.
Skoro zerujesz ręcznie piny to czego się spodziewasz jeśli nie wyzwolenia przerwania od zbocza opadającego? Moduł EXTI działa niezależnie od tego czy ma włączone przerwania czy nie - jeśli są wyłączone to po prostu nic się nie wywoła, ale flagi zostaną sprawdzone. Jeśli włączysz przerwanie, a flaga była ustawiona, to przerwanie zostanie aktywowane najszybciej...
Ściągnąłem ten sprintf_ ale przy kompilacji co chwila o coś woła jakieś usarty i inne.. A wystarczyło zajrzeć do pliku nagłówkowego i wyłączyć "printf", no ale co kto lubi. Nikt nie powiedział, że to bezobsługowe. 4\/3!!
Timeouty właśnie mam zaimplementowane, po obu stronach. Co ciekawe, jeśli slave zostanie wyłączony na masterze dostaję przerwania NACK i STOP, co ma sens. Po ponownym włączeniu slave, do slave przychodzi ADDR zaś NACK i STOP w masterze ustają. Nie przychodzą jednak przerwania od TX i RX (po żadnej ze stron).
Warunkiem koniecznym do rozpoczęcia kolejnego transferu jest skasowanie flag przerwań/stanu w rejestrze DMA. Nie tylko - kluczowe jest też WYŁĄCZENIE danego kanału DMA przed ponowny włączeniem go. Przykładowo w STM32F1: DMA1_Channel4->CCR = 0; // disable channel DMA1_Channel4->CMAR = (uint32_t)&...; DMA1_Channel4->CPAR = (uint32_t)&SPIx->DR;...
Jak mogę obsłużyć przerwanie tak, aby sygnał wykonywał się zadaną ilość impulsów. Np 10 impulsów i sygnał kończy gnerowanie Liczyć w przerwaniu do 10 i np wyłączyć je (znam dwa sposoby, przez NVIC lub wyłączyć timer). Można też w przerwaniu przestać robić to co robiłeś czyli "tachlować" GPIO i skończy się "gnerowanie" impulsów. Do liczenia użyj zmiennej...
Freddie, w tym wątku mowa jest nie o Twoim Genialnym DestroyRTOS, a o stosie USB od ST w typowej konfiguracji, gdzie obsługa USB jest nie w zadaniu RTOS, a w przerwaniu USB. Tak się składa, że sam peryferial USB w ST ma parę rejestrów, w których poszczególne bity są związane z różnymi endpointami. Co dalej - zapewne sam wiesz - kiedy dwa kawałki kodu...
Sprawdziłem: 1. Najpierw zmieniłem kolejność konfiguracji rejestrów na taką jak funkcja - działa wszystko dobrze: nie działa 3. Zmieniłem kolejność konfiguracji, najpierw SCL, potem SDA - o dziwo działa ; 4. Zmieniłem kolejność inicjalizacji za pomocą funkcji: działa . Wniosek: Istotna jest kolejność konfiguracji, zaznaczam, że w momencie inicjalizacji...
No dokładnie tak robię. Tylko że najszybszy i najłatwiejszy sposób na to to wyłączenie przerwania i ponowne jego załączone po czasie przez timer. Mylisz się co do tego, że bardzo szybka obsługa przerwań nie będzie miała na nic wpływu. Problem z Twoimi radami jest taki, że podajesz dużo ogólników i żadnych konkretów. Nie oczekuję gotowego rozwiązania,...
Nie bardzo rozumiem. Jak to zrobić? Cache jest przy core. DMA zapisuje w SRAM. Jezeli DMA zapisze coś a akurat core ma to cache to core tego nie będzie widział. Tak samo jak procesor cos zapisze w pamięci (ale jeszcze to nie "wyszło" z cache to DMA odczytując dane zobaczy tylko to co jest naprawdę w SRAM). DMA pisze i czyta ze SRAM ale nie aktualizuje...
I musiałby wyłączyć przerwania albo zatrzymać schedulera. Edit: task od LCD lepiej wyglada tak: [syntax=c] for(;;) { if(xQueueReceive(xLCDQueue, &LCD_Screen[lcd_line%2], (portTickType) portMAX_DELAY)){ lcd_line++; LCD_GoTo(0,0); LCD_WriteText(LCD_Screen[0]); LCD_GoTo(0,1); LCD_WriteText(LCD_Screen[1]); } } [/syntax]
GrzegorzKostka Dzięki za uwagę! Wyłączenie przerwań i ponowne ustawienie wektora przerwań na początku głównej aplikacji [syntax=c]NVIC_SetVectorTable(... 0x2000);[/syntax] rozwiązało problem. Teraz tylko zaczęły się problemy z debuggerem ( Open OCD + st link V2 ), może połączyć się z MCU tylko wtedy jak działa bootloader. Co trzeba...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Obsługa UARTa z przerwaniami jest dużo bardziej skomplikowana niż to co pokazałeś. Szczególnie nadawanie jest problematyczne, ponieważ nie można mieć non-stop włączonego przerwania, chyba że naprawdę chcesz NON-STOP wysyłać znaki. Zwykle trzeba to zrobić tak, że jak masz do wysłania paczkę, to pierwszy bajt wysyłasz "ręcznie" i dopiero wtedy włączasz...
Do testów przeskoku próbuje wgrać soft pod 0x08020000 i skoczyć do niego z apki 1. Ustawienia tej 2 mam takie: http://obrazki.elektroda.pl/6219459500_1... http://obrazki.elektroda.pl/1881766200_1... http://obrazki.elektroda.pl/1327810400_1... Po wykonaniu skoku ląduje tu: http://obrazki.elektroda.pl/8961576900_1...
Witam, piszę program na STM32 F100RB(Discovery), który ma za zadanie dane odebrane od GPS(USART2) wysłać przez moduł radiowy(USART1). Nie wiem dlaczego, ale po przyjściu przerwania od odbioru USART2 program ucieka do przerwania HardFault_Handler(void) . W debuggerze całość działa poprawnie, natomiast w trybie "run" problem ten sie pojawia. Dodatkowo...
memcpy nie ma prawa blokować jakiegokolwiek timera. To jest zwykła funkcja biblioteczna, i na pewno nie sprawdza ktory akurat timer masz włączony i również nie ma kodu aby go wyłączyć. Memcpy jest najpewniej napisany w assemblerze i został odpowiednio zoptymalizowany. Kopiowanie duzej tablicy bajtów w pętli spowoduje kopiowanie się bajtu po bajcie,...
W CCR2 też są. W moim przypadku ten kanał podpięty jest pod wejście TI2. Fakt, że inną sprawą jest to, że nie musiałem go włączać i mogę odczytywać z CNT. Już wiem jak to działa, nawet logiczne. Żeby wyzerować CCR2 trzeba wyłączyć CC2E w CCER oraz CC2S w CCMR, czyli odciąć jakby takt dla tego rejestru. Choć w zwykłym trybie liczenia z taktem wewnętrznym...
Generalnie wszystkie operacje jakie robisz w przerwaniach są jak dla mnie zbędne. 1. Wyłączasz to samo SPI w obydwóch przerwaniach... po co? Przecież może sobie zostać włączone. Gdy jest wyłączone np mogą się pojawiać niechciane stany na pinach zegara czy CSa. 2. Wyłączasz kanał DMA, choć on się wyłącza sam. 3. Kasujesz flagi, choć one kasują się same....
Przesyłam sobie dane przez RS485. Na linii są dwa urządzenia i oba mają mieć możliwość nadawania. W związku z tym, gdy jedno skończy nadawać, powinno wyłączyć układ sterujący linią. Niestety jest problem przy transmisji USARTem przez DMA. Przerwanie transfer complete generowane jest wtedy, gdy DMA skończy swoją pracę, natomiast jeszcze nie wszystko...
Przycisk już zmieniłem i w sumie to się pogorszyło. Przed zmianą przycisku na nowy głośnik i procek włączał się tylko czasami, bardzo któtko i tylko przy włączaniu, a nie tak jak teraz również przy wyłączaniu. Ten projekt to lampka z trzema stanami: - wyłączony - zwykła lampka - miganie lampki do dźwięku Zależało mi na tym aby w stanie "Wyłączenia"...
kardynalny błąd -> oczekiwanie na co, na TC==1 ? Oczekiwanie na cokolwiek w przerwaniu jest kardynalnym błędem. Przeciez w notce katalogowej zalecają poczekać po zakonczeniu transmisji na TC. Czy aby napewno piszą to w kontexcie przerwań, czy może poczekania przez wyłączeniem danego modułu peryferyjnego? Poza tym nie odpowiedziałeś na moje pytanie,...
A jak to możliwe, że echo idzie równocześnie z przesyłanymi danymi? Pokaż kompletny kod, który wysyła i odbiera dane. Jednak tak ten RN-171 działa, że w czasie rzeczywistym nadaje to samo co otrzymuje (można to wyłączyć). Tak czy owak problem tkwił w odbieraniu danych, użyłem: if(USART_GetITStatus(UART5, USART_IT_RXNE) != RESET) a powinienem:...
Witam Ten kod jest zakręcony jak świński ogon, i jeszcze te biblioteki. Za komentuj USB_Istr();[syntax=c]void USB_LP_CAN1_RX0_IRQHandler(void) { GPIO_ResetBits(GPIOB, GPIO_Pin_8); GPIO_SetBits(GPIOB, GPIO_Pin_10); //USB_Istr(); }[/syntax] i zobaczy czy to na pewno od tej funkcji jest te błąd. Jak myślisz że to problem z przerwaniami to wyłącz na chwilkę...
Na koniec argumentacja typu "ludzie to lubią" to już poniżej krytyki. Fiata 125p też lubią co nie czyni z niego auta nowoczesnego ani dobrego. Z jakiegoś powodu najpopularniejsze Arduino to UNO. W przeciwieństwie do PRL teraz jest wybór ale z jakiegoś powodu widzę potwory w postaci 2 x UNO zamiast MEGA. Z czego to wynika? Trzeba zapoznać się z projektami....
stm32 przerwań globalne wyłączenie przerwań wyłączenie przerwań przerwaniu
rozdzielnica pionowa kopiować eeprom mnożenie liczb
lodówka simens lodówka samsung wyświetlacz temperatury
NAC 500 Series – lokalizacja śrub mocowania silnika do obudowy, typy i dostęp Citroën Berlingo II 1.6 HDi 2013 – lokalizacja przekaźnika ogrzewania tylnej szyby BSI R8