A co na to debugger? Wchodzisz w przerwanie UART? Wiesz, że bez zbędnych wywołań SPL/HAL program byłby z 5 razy krótszy? Np. zamiast: [syntax=c]NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp... = 0x00; NVIC_InitStructure.NVIC_IRQChannelSubPri... = 0; NVIC_InitStructure.NVIC_IRQChannelCmd...
Zdecyduj się na coś - albo wysyłasz znak po znaku bez DMA, albo cały ciąg znaków używając DMA.
Ale na pewno bufor nie ma 2 bajtów. Ma - jeden bajt od razu jest ładowany do "shift register", a drugi czeka w rejestrze USART->DR. Dopiero trzeci i kolejne się nie mieszczą i muszą czekać na zakończenie wysyłania poprzednich.
USART1->CR1 |= USART_CR1_UE; //włączenie usart USART6->CR1 |= USART_CR1_UE; //włączenie usart To daj po całej konfiguracji a potem wysyłaj i odbieraj.
Witam od dwóch dni mam problem z USART na stm32f4discovery. Otóż napisałem sobie prosty programik na bazie tego przykładu pod stm32f4discovery ze strony Freddiego Chopina, tyle że sam napisałem sobie konfigurację zegarów itd. Zrobiłem konfigurację USART 6, napisałem funkcję do wysyłania jednego bajtu oraz całego słowa i wrzuciłem sobie wysyłanie bajtu,...
Do BT wysyłasz komendy AT (jeśli moduł jest w trybie komend) lub dane (gdy jest "przeźroczysty") po USART. Poszukaj przykładów dla Arduino.
Witam serdecznie. Zgodnie z tym: https://obrazki.elektroda.pl/7983727200_... i tym: https://obrazki.elektroda.pl/4593564900_... przy pomocy tego programu: https://obrazki.elektroda.pl/2810590300_... Próbuję wysyłać dane z mikrokontrolera do termiana, ale ten niczego nie odbiera. Proszę o wskazówkę....
Wiem że ma wysyłać liczby i w terminalu przełączam się na kod dziesiętny i widzę że liczby nie są po kolei. Po prostu przesył jest błędny. Czy kod ustawiający piny GPIO i USART jest poprawny?
Zmieniłem program, uwzględniając wcześniejsze uwagi. Na początku skupiam się tylko na wysyłaniu danych. Na początku załączam taktowanie portu PD: Następnie konfiguruję wyprowadzenia PD5 i PD6 - linie TX i RX: Później konfiguruję przerwania - kontroler NVIC: Następnie konfiguruję USART: i w pętli głównej wywołuję funkcję: Dodano po 1 Zmieniłem USART2...
Przecież masz w kodzie: [syntax=c] void USART1_puts(volatile char* s) { while(*s) { while(!(USART1->SR & 0x00000040)){} USART_SendData(USART1,*s); *s++; } } [/syntax] Pierwszy while "jedzie" po ciągu znakowym, drugi zapewnia oczekiwanie na prawidłowe wysłanie znaku. Tak więc ta funkcja powinna wysyłać ciąg znaków.
Witam, Potrzebuję odebrać dane, które wysyłam za pomocą aplikacji bez bluetooth do uC STM32F4. Dane chcę odbierać przy pomocy przerwania usart. Dane z aplikacji wysyłane są w następującej postaci: Lx , x - liczba całkowita z zakresu <0;100>, np. L25, L100. Nie do końca wiem jak pobrać tą wartość chodzi mi w tym przykładzie o liczbę 25 , chcę ją...
Witam Mam mały problem z USARTem. W założeniu program przy naciśnięciu przycisku miał wysyłać H na terminal w komputerze (miał to być pierwszy krok ćwiczeń z usartem) Jednak coś nie działa zamiast H czyli 0x48 wysyła także zaraz za H dodatkowo 0x7F i nie wiem za bardzo co jest źle zrobione. Kod został dobudowany do przykładu Freddiego. Dlatego wklejam...
Procesor to konkretnie STM32F439IGT6. Mam taki kod w mainie: https://obrazki.elektroda.pl/2215514800_... A powinno być tak: https://obrazki.elektroda.pl/3426620100_... Najciekawsze wnioski są jednak po dodaniu tych linii: https://obrazki.elektroda.pl/6540612300_... A tu dla wersji która inicjalizuje...
Ja tu nie widzę żadnego wysyłania... Nie wiem też czy dobrze skonfigurowałeś piny, jednak to nie wygląda zbyt dobrze: GPIOB->MODER &= ( GPIO_MODER_MODER6_1 | GPIO_MODER_MODER7_1 ) ; Dlatego właśnie osobiście do konfigurowania pinów mam swoją funkcję, która jest czytelna i działa. W zasadzie mógłbyś ją zastosować wprost - jest w moim szablonie/przykładzie...
Witam, Mam problem z baudrate'm na płytce STM32F4-discovery. Mianowicie jestem pewien, że konfiguracja zegarów taktujących jest w porządku jednak terminal wywala mi tzw. "krzaki". Poniżej zamieszczam kod oraz screen z HTerm'a. Mam na celu wysyłać znak kiedy pojawia się przerwanie od TIM2, w tym samym czasie przełączam stan diody, co na płytce działa...
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?
Witam Zastanawiam się jak można oszacować wydajność systemu DMA. Chcę użyć trzech kanałów DMA a nie chce mi się kontrolować i prawidłowo reagować gdy transmisja DMA się nie wykona. Chcę: - odbierać dane przez USART 20 bajtów co 20 [ms] (ramka z wykrywacza) - wysyłać dane przez SPI 2*504 bajtów co 50 [ms] (obsługa dwu wyświetlaczy z nokii 3310) - generować...
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ć...
Witajcie, Potrzebuję pomocy przy STM32F429. Moje pierwsze podejście do rozwiązania docelowego zadania było oparte o biblioteki HAL i była to moja pierwsza styczność z STM. Pomysł fajnie się spisywał, ale później miałem jakąś totalną masakrę, żeby zaimplementować jakiekolwiek klasy. Wyszło tak, że przerzuciłem się na rejestry i nie wygląda to najgorzej....
Niemniej jednak idea użycia printf w przerwaniu i to jeszcze z liczbami zmiennoprzecinkowymi... Jak będę wysyłać sam jeden znak, powiedzmy: [syntax=c]void ADC_IRQHandler() { ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); uint16_t conv_result; conv_result = ADC_GetConversionValue(ADC1); conv_buffer[index] = conv_result; send_char('c'); }[/syntax] to dalej...
1. W jaki sposób piszecie kod do obsługi peryferiów występujących pojedyńczo w mikrokontrolerze? Np RTC, LCD, RNG, czy CRC. Najzupełniej normalnie, czyli jako zwyczajną klasę. Jeśli jest tylko jeden taki układ peryferyjny, to w projekcie po prostu mam jeden taki obiekt. Z pewnością nie bawię się w żadne singletony czy klasę w której wszystko jest statyczne....
Witam Od wczoraj próbuję uruchomić transmisję danych przy pomocy DMA. Funkcja wysyłająca jest wywoływana z częstotliwością 200 [Hz]. Tylko pierwsze wywołanie funkcji wysyła dane do portu (widzę je w podłączonym terminalu). Jeżeli dane zapisuję bezpośrednio do USARTx->DR jest ok (fakt, że to tylko 1 bajt a nie 4). Cała transmisja 4 bajtów trwa ok 0.34...
Witam od kilku dni pisze na płytce ewaluacyjnej stm32f4discovery. Niestety nie mogę sobie poradzić z uruchomieniem USART`u odbieram dane jednakże nie takie jakie wysyłam więc pewnie chodzi o wartośc w rejestrrze BRR odpowiedzialną za baudrate. Bazuję na dokumentacji i swoim poprzednim projekcie (http://www.elektroda.pl/rtvforum/topic2... jednakże...
Witam, Od paru dni piszę soft dla STM32F415 Bazę projektu generuję w Cube MX. Nie mogę sensownie skonfigurować DMA, jedynie prawidłowo działa tryb CIRCURAL oraz pojedyncze skorzystanie z DMA w trybie NORMAL. Pozosatałe kombinacje DMA działają różnie, czasem dziwnie czasem wogóle. Celem jest aby dwa przetworniki ADC2 i ADC3 zapisywały w przerwaniu (zrezygnowałem...
Witam, męczę się od jakiegoś czasu z komunikacją przez USART. Poniższy kod działa prawidłowo kiedy załaduję go do FLASH, ale nie chce działać poprawnie w RAM. 4 diody z poniższego kodu zapalają się w obu przypadkach, tylko uC nie wysyła danych jak program siedzi w RAM. Używam CoIDE. Proszę o pomoc. [syntax=c] #include "stm32f4xx.h" void init_RCC(void);...
Witam! Zacznę od tego, że jestem raczej laikiem z programowania STM-ów. Ale nie jestem też leniem, że znajduję gotowca, kopiuję i liczę na to, że będzie działać. A jak nie działa to lipa. Staram się to zrozumieć i znaleźć problem. ;) Niestety brak wiedzy sprawił, że wymiękłem i pomyślałem, żeby zapytać na forum. Co chcę zrobić: Podłączam bluetootha...
Hej, Chciałem uaktualnić swój stary projekt, w którym używałem Atmegi162. Układ ma łączyć się z zewnętrznym urządzeniem za pomocą magistrali UART, o parametrach 8b danych, 1b stopu, parzystość "even". Obecnie próbuję zrobić te same operacje wykorzystując płytkę z mikrokontrolerem ARM - STM32F407Z (na płytce CORE407). Po paru minutach udało mi się skonfigurować...
Witam, Próbuje skomunikować STM32F4-DISCOVER z modułem RN-171 po UART. RN-171 działa na 3,3V; STM32 na 3V. Masę mają wspólną. Generalnie wygląda, że działa, ale nie wiem co źle robię bo wygląda jakby STM32 był 'głuchy' na sygnał przychodzący. Na oscyloskopie wygląda to tak, że STM32 wysyła sygnał prawidłowo, a RN-171 na ten sygnał odpowiada mu tym samym...
http://obrazki.elektroda.pl/1208484300_1... Projekt OpenMV ma na celu stworzenie niedrogiego i łatwego w obsłudze modułu wizyjnego, który dałoby się oprogramowywać w języku Python. Docelowo OpenMV ma stać się "Arduino wśród modułów wizyjnych", jak opisuje autor przedstawiający aspiracje tego projektu. Realizacja projektu rozpoczęła...
Witam Zmagam się z problemem obliczania CRC na STM32F4. Problem polega na tym że mam ramkę danych 100 bajtową złożoną z 96 bajtów danych a na 4 ostatnich obliczona suma CRC za pomocą wbudowanego modułu. Dane wysyłane są poprzez DMA+USART. Również do obsługi CRC używane jest DMA. Chodzi o to że dane są wysyłane poprawnie i poprawne odbierane. Problem...
Witam, Głowię się od jakiegoś czasu jak rozwiązać następujący problem. Piszę program na procesor STM32F4, który miałby po RS232 wysyłać dane zawarte w strukturze: [syntax=c]struct rs232_data { int a; int b; int c; }; struct rs232_data dane; dane.a = 12; dane.b = 34; dane.c = 76;[/syntax] Póki co to przykładowa struktura, która ma na celu wyłącznie przetestowanie...
Chyba jednak mirkokontroler :P Byłem dziś u znajomego, ma inne sterowniki na laptopie i gdy dziś podłączyłem swoją płytkę z USARTem u niego to po chwili też pojawił się bluescreen. Czy powodem może być to, że jakiś czas temu spaliłem USARTa podpinając do niego zasilanie(3,3V) i masę z płytki, która z kolei była podłączona też do laptopa przez USB ?...
Cześć, skonfigurowałem DMA i 2 UARTY (właściwie jeden USART, jeden UART), tak żeby odbierać dane z GPSa na UART4 i poprzez DMA przesyłać dane na stringa, a następnie wysyłać do putty`ego przez USART2. Na pewno dobrze skonfigurowałem UARTy, dane odbieram, natomiast DMA nie działa. Pewnie popełniłem błąd gdzieś w konfiguracji, ale porównywałem ją z różnymi...
Dzięki za wskazówkę, wywalenie send_stringa z przerwań rozwiązało sprawę. Wysyłanie obsługuję w głównej pętli programu i wszystko działa prawidłowo.
USART to jeden z najprostszych układów peryferyjnych, zarówno w konfiguracji jak i w używaniu, natomiast ty masz tam natrzaskaną taką masakrę jakby to było nie wiem co, z jakimś włączaniem, wyłączaniem, resetowaniem, ciągłymi zmianami prędkości, oczekiwaniem do 500, ... Po co? Twoja funkcja od wysyłania powinna mieć może z 5 linijek, a ma 3x tyle.
Jeżeli z konwerterem usb sprzęgnięty jest UART1 to ja bym to widział tak. Potrzebna ci obsługa przerwania od odbioru z USART 1. W tym przerwaniu wysyłasz komendę przez UART6 do modułu. Z kolei informacja zwrotna z HC06 generuje w przerwanie od odbioru z UART6 w którym wysyłasz dane na UART1. Ewentualnie bez użycia przerwań ale przez DMA. Jeżeli jesteś...
Dzisiaj wszystko jeszcze raz uruchomiłem i o dziwo zaczęły przychodzić dane z kamery, a program się nie zawiesza. Dodałem w programie takie polecenia: [syntax=c]for (i = 0; i< 19200; i++) { bufor_RAM_danych_obrazka[i] = 0; } Delay(100); uruchom_kamere(); Delay(100); wykonaj_foto(); Delay(1000); for (i = 0; i< 19200; i++) { sprintf(textToWrite,"%d,...
Ja już nie wiem, jaki uC w końcu programujesz, bo na STM32F0 mi to nie wyglądało i nie wygląda nadal Panowie wybaczcie za mój skrajny głupi błąd. Niechcący korzystałem z manuala dla F3, a mam przecież STM32VLDiscovery na której siedzi F0. W wolnej chwili wprowadzę poprawki. I jeszcze pytanie? Czy do założeń tego co robie, czyli skanowanie 4 kanałów...
Dzieki wielkie za rady. Przepraszam że tak późno odpisuje ale mnie lekki wk**w złapał i musiałem to wszystko na kilka dni zostawić. Teraz wróciłem zrobiłem całe środowisko od nowa bo tak w starym namieszałem że już zupełnie nic nie działało. Na tworzenie nowego projektu zadziałało rename i clean z rebuild discovery option . Zmieniłem także kolejność...
Witam mam problem z nadawaniem po USART1 z użyciem DMA. Gdy dłuość ciągu znaków nie przekracza 20 to wszystko pięknie działa. Natomiast gdy jest nie wiele większa 22, 23 ... to wyśle parę paczek o tej długości i przestaje. Dla jeszcze większej długości paczki nie wysyła wcale. Po podejrzeniu flag DMA ustawia się TCIF, czyli ok ale również dodatkowo...
Zacznijmy od końca: Nie wysyłaj znaków na okrągło w pętli, bo odbiornik nie będzie miał się jak zasynchronizować. Musisz zrobić jakąś przerwę od czasu do czasu. W procedurze wysyłania sprawdzaj bit TXE przed wysłaniem znaku. Po wysłaniu nie musisz nic sprawdzać. Tu masz działającą sekwencję inicjującą UART - adresy rejestrów i ich wartości: [syntax=c]//...
Wszystko się wyjaśniło... problemem była rzeczywiście dioda D2, która działa jak bezpiecznik. Mam metalową obudowę od komputera i to na niej kładłem płytkę. Zrobiło się zwarcie i cóż...:P Na szczęście wystarczyło wymienić diodkę i szafa gra. Wielkie dzięki za wcześniejszą sugestię z diodą, to bardzo przyspieszyło sprawę!:) Teraz mam problem z wysyłaniem...
Na razie ważniejsze jest dla mnie włączenie obsługi USART2 więc proszę o pomoc w tej kwestii. Po zmianie kodu na ten: [syntax=c]RCC_AHBPeriphClockCmd(RCC_AHBP... ENABLE); RCC_APB2PeriphClockCmd(RCC_APB1Periph_US... ENABLE); void send_string(const char *str) { while (*str) { while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); USART_SendData(USART2,...
a czy software'owa implementacja ma w ogóle sens? Jaki baudrate chcesz uzyskać? I czy chcesz implementować wersję asynchroniczną czy synchroniczną? Zakładam, że asynchroniczną, skoro piszesz, że ma się toto komunikować z AVRami. Z szybkich obliczeń wychodzi mi, że w wersji asynchronicznej, dla baudrate=115200bps i tzw. trybu NORMAL, w którym trzeba...
Hej, Próbuje na płytce STM32F3 uruchomić komunikację z PC po USART. Działa mi TX bo w main-ie mam wysyłanie przykładowego tekstu i działa prawidłowo. Niestety problem jest gdy wysyłam dane z terminala do STM - brak efektu przerwania. Nie jest to problem kabelków bo je kilka razy zamieniałem i dalej brak reakcji. Prędkość jest dobra bo prawidłowo odczytuje...
Witam ponownie, Po sprawdzeniu stwierdzam, że inicjacja USB wszystko wiesza... Wziąłem dla pewności "surowy" przykład z ST, dodałem zwykłe miganie diody - Set,Reset GPIO + for jako delay - i tnie automatycznie diode. Nie chce się już z tym grzebać bo straciłem już na tą transmisje ponad miesiąc :/ Przerobiłem kod, dodałem obsługe USART i kod wygląda...
Witam, Próbuję przeportować projekt STM324xG-EVAL_USB_Host_HID na płytkę stm32f4-discovery bo tylko taką posiadam z tym procesorem. Potrzebuję wreszcie uruchomić hosta USB w moich projektach bo inaczej SBC na linuxie mnie niedługo wygryzą. Zmiany ograniczają się właściwie do: - usunięcia obsługi LCD, diod LED i przycisku, - zmiany pinu enable dla VBUS,...
Witam Chciałbym wykorzystać trzy strumienie DMA1. Strumień 3 wysyła dane przez USART do wyświetlacza 9 bajtów co 5 po załączeniu strumienia 6 strumień 5 przestaje działać (nie generuje 20kHz) , transmisja USART działa poprawnie. Czy kontroler DMA może obsłużyć tylko dwa strumienie ? Nie wiem czy to istotne ale strumienie 5 i 6 używają kanału 7. istotne...
Próbuję wysłać znak po USART2 z stm32f4 do terminala przez interfejs z Lock-Pick. Sprzętowo wszystko ok, na stm32f1 nie ma żadnych problemów. Funkcja, która ma skonfigurować USART i wysłać znak: *---------------------------------------... * SYSCLK(Hz) | 168000000 *---------------------------------------...
usart stm32f4 stm32f4 usart usart wysyłać
kontrolka pomarańczowy mondeo klimatyzator castorama podłączyć logitech komputer
pralka electrolux ew8tn3372p wlm20440pl rezystor
Skuter 2T – gaśnie po zdjęciu ręki z gaźnika, odpala tylko po zatkaniu wlotu powietrza Opel Vectra B 1997 – kontrolki poziomu i ciśnienia oleju: znaczenie, diagnostyka, typowe usterki