A to widziałeś? https://forbot.pl/blog/kurs-stm32l4-term... https://controllerstech.com/stm32-uart-7... https://deepbluembedded.com/stm32-1-wire...
Ja ostatnio rozwiązałem to tak do transmisji danych z 3 osiowego akcelerometru: [syntax=c] sprintf((char *)buforTx,"X%03iY%03iZ%03iE%1c%1c",Buffe... USART_ITConfig(USART1, USART_IT_TXE, ENABLE); //Przerwanie-transmisja [/syntax] Potem w programiku napisanym w C# wyłuskuję z ciągu interesujące mnie dane: http://www.youtube.com/watch?v=d-q6DuQH-...
Sprawdź czy jednak nie trzeba wysyła CR i LF. W dokumentacji jest taki przykład: “AT+SYNW=1234ABEF\r\n” Jak widać wysyłają zarówno CR i LF JarekC
Pytanie odnośnie otwartych środowisk do STM32 obsługujących ST-Link aktualne ;) http://stm32-discovery.nano-age.co.uk/op...
A więc działa. Gratulacje :) Docelowo chcę zrobić co innego: Muszę próbkować 4 kanały ADC1 w przemiataniu i wysyłać wartości po USART do komputera. Tylko, że kanał 4 DMA zajmuje się USART1 TX a kanał 1 ADC więc jeszcze nie mam pomysłu jak to połączyć. Kolizja DMA nie występuje, bo są różne kanały. Po prostu jeden poczeka na drugi. Jak najbardziej sensowne...
Może zbyt namieszałem. Zasadniczo chodzi po prostu o to jak stworzyć projekt w SW4STM, który nie zawierałby tych wszystkich śmieci z SPL i HAL i dało się pisać na rejestrach. Taki czysty podstawowy projekt pod rejestry z tylko niezbędnymi rzeczami jak w przypadku pisania na AVRy. Ja robię to tak: I. Potrzebne narzędzia: 1. System Workbench for STM32...
Czy Flash Loader Demonstrator obsługuje te układy? W dokumentacji tego nie widać. Ostatnia aktualizacja była 5 lat temu, kiedy jeszcze nie było G0, G4, L5. V2.8.0 - 01-September-2015 =============================== New Features ************ + Adding support of STM32L4x6xx devices + Adding support of STM32L0xx 192K of flash devices + Adding support of...
Resetuje komendą HAL_UART_Abort
(1 << 27) Tego nie będę rozszyfrowywał. I przy okazji nie mieszaj kodu HAL-a z rejestrami - w tch samych funkcjach - no chyba że dokładnie wiesz co te halowe robią na poziomie rejestrów (ja np poza kilkoma nie wiem i nie chce mi się grzebać) Procedurę masz opisaną w RM Reception using DMA DMA mode can be enabled for reception by setting the DMAR...
Rozwiązałem swój błąd wprowadzając: chwila = 0; while(!(USART2->SR & 0x80) && (chwila <= 2500000)) chwila++; chwila = 0; Dziękuję za pomoc. Jednocześnie mam pytanie w jaki sposób w locie zmienić baud rate mojego usart'a ? Czyli ustawiam częstotliwość br przykładowo na 4800, komunikuję się na tej częstotliwości z innym up, i nagle zachciewa...
Ten return w środku while(1) jest dosyć niezły... Dalej nawet nie patrzałem. Nie dziwne, że "Żadne rozwiązanie z innych tematów nie działa" jak się nie wie co się robi... 4\/3!!
1. Change R1 Value to 0 Ohm 2. Add GND connection to C14 3. Change R9 value to 4,7k or 10k Anyway, what about the Rx and Tx connectors? U meant to add pinouts from my MCU on PA9/10 for Usart Rx and Tx? If so, is it enough to just lead them out? Yes. Add an additional connector (3 pin) for GND, RX and TX from these pins (PA9/PA10). What about the rest...
Problem leży zapewne w odbiorze strumieni danych, a nie w ich nadawaniu - tam prawdopodobnie następuje gubienie danych. Twoje przerwanie DMa jest wzorcem, jak nie należy używać przerwań. Zamiast sprawdzać gdzieś indziej znacznik Datalink_DataSent_Flag możesz przecież równie dobrze sprawdzać znacznik sprzętowy zakończenia transmisji DMA - przerwanie...
Kanal nadal nie ustawiony, zły kierunek transmisji.
Wyłącz przerwanie od TXE skoro nie chcesz wysyłać. 4\/3!!
Zacznij od opisania formatu danych. Po czym odbiorca ma poznać, że zakończono przesyłanie liczby? Tego ne napisałeś powyżej. Odbiór łatwo zrobisz w przerwaniu, pisząc obsługę przerwania w konwencji automatu. Najpierw poczytaj, co oznacza poprzednie zdanie. Potem możesz zacząć pisać automat. Potrzebne tylko dwa stany: - oczekiwanie na 'L' - skanowanie...
No to masz 4-bajtowy znacznik początku ramki, w dodatku niejednoznaczny, tylko po co? Przy automacie masz zmienną - stan automatu, którą elegancko robi się jaku enum, a dalej switch zapewniający obsługę kolejnego bajtu i przejścia pomiędzy stanami. Do obsługi tego początku, jaki masz, potrzebujesz czterech stanów automatu (piąty stan to odbiór danych)...
Prawdopodobnie nie włączyłeś przerwania odbioru danych w USART - bit RXNEIE w rejestrze CR1. A poza tym . oczekiwanie w procedurze obsługi przerwania to nie jest dobry pomysł, a właśnie to robisz. Masz poniżej tablicę do zainicjowania USART z przerwaniem odbioru w STM32F0 - adresy rejestrów i ich zawartości - wychodzi to sporo krócej niż przy użyciu...
Witam Jak prawidłowo ustawić parametry USART w STM32F100 i STM32F103 dla transmisji: 8-bitów danych 1- bit parzystości EVEN 1-bit stopu Cały czas mam śmieci
Nie wiem jaki tam jest układ ale taki mam konwerter->http://allegro.pl/konwerter-p... A sterownik Profilic 3.3.2.105
Nie, no niewątpliwie masz rację, że jeśli chodzi o wydajność to szybciej jest bezpośrednio pisać po rejestrach ;) Tyle że tu chodzi zarówno o szybkość pojmowaną jako prędkość wykonywania kodu, jak i o prędkość pisania go - i tak musisz przeczytać manuala, a do tego jeszcze dokumentację biblioteki [; 4\/3!!
Czy kiedykolwiek zdarzyło Ci się użyć terminu UART tylko po to, by zostać poprawionym przez innego inżyniera, że nie jest to UART, ale USART? W pewnych przypadkach oba te terminy są zamienne, ale w wielu innych używanie ich wymiennie jest niepoprawne. Przyjrzyjmy się, czym dokładnie są USART i UART, a także jakie są pomiędzy nimi główne różnice. Większość...
Po 5 latach chyba kolega sobie poradził:) Temat do zamknięcia. PS.Do sterowania nadajnikiem MAX3485 w STM32 kluczem jest poszukanie w RMie informacji o fladze TC a następnie programowe sterowanie odpowiedniego GPIO w przerwaniu od UARTu.
Jednym z układów jest mikrokontroler STM32F407VGT6, który pełni rolę centralnego kontrolera lotu (Flight Control Unit – FCU). Podstawowe dane techniczne Rdzeń i wydajność CPU: ARM Cortex-M4F (z FPU – jednostką zmiennoprzecinkową) Częstotliwość: do 168 MHz DMIPS: ok. 210 DMIPS DSP: tak, rozbudowane instrukcje DSP Pamięć Flash: 1 MB SRAM: 192 KB (112...
He, he, he... Patrz na to: while (1); Nic, co jest dalej, nie ma szans się wykonać, więc kompilator eliminuje zbędny kod. ...A ponadto masz błąd w inkrementacji wskaźnika. idx = (idx + 1) % BUFSIZE; - to najprostszy poprawny zapis tego, co masz zrobić, chociaż nie zawsze daje optymalny kod.
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....
Witam, Próbowałem na podstawie książki "Mikokontrolery stm32 w praktyce" uruchomić na STM32F107 transmisję z wykorzystaniem USART-a. Połączyłem Rx i Tx ze sobą i próbuję wysyłać a następnie odczytywać wysłane dane. Poniżej jest mój kod: int main(void) { SetSysClockTo72(); EnablePerypherialClocks(); ConfigureNVIC();...
Rozwiązanie jest zupełnie gdzie indziej... Wystarczy sprawdzać bit TC, a nie TXE. Te (i inne) sekrety są w stosownym manualu. 4\/3!!
Witam! Próbuję zaprogramować mikrokontroler STM32F107, aby współpracował z siecią. Najpierw chciałbym skompilować kod z przykładowym projektem dostarczonym do STM32 jako EthernetDriver, czyli stm32_eth_lib. Przykład napisany jest z użyciem stosu TCP/IP uIP. Całość kompiluje się bez żadnych błędów (ew. warningi) z użyciem kompilatora CodeSourcery G++...
To co wpisujesz do rejestru MOAR to jest "adres adresu" (wskaźnik na wskaźnik) a raczej nie o to Ci chodzi... Tym bardziej że w tym kontekście tab to zmienna lokalna, więc i tak nie zadziała jak trzeba. DMA1_Stream6->M0AR = (uint32_t)&tab; 4\/3!!
Dziękuję za odpowiedzi. W moim wypadku chodzi o SPI / USART między STM32 i FPGA. Więc kłania się push-pull. Podejrzewam więc, że jeśli już zabezpieczać, to buforem. Czy to powszechna praktyka, czy jednak przesadzam i jestem wybitnym asekurantem? :D
Witam, mam taki problem, a mianowicie... Zrobiłem aplikację mobilną, która wysyła dane po UDP do ESP8266 Wi-Fi, a ten po USART do STM32, gdzie są zapisywane i obsługiwane. Czy jest sposób skonfigurowania ESP8266 (połączenie do sieci Wifi jak i połączenie z aplikacją po UDP) ? Dokładniej chodzi mi o to, gdy użytkownik dostanie całkiem nowe urządzenie...
Na 99% nie. Można kombinować z auto-reload i transmisją jednego bajtu, o ile uda się przekonać DMA, że docelowy UART jest pamięcią, a nie peryferialem i o ile będziesz miał pewność, że nigdy dane nie będą równocześnie nadchodziły w takim tempie, żeby zapchać nadajnik. Czyli: nawet gdyby się udało, to jest to rozwiązanie wysoce niepewne i zawodne. Co...
Dzień dobry, To mój pierwszy post tutaj (jeśli jest w złej kategorii to proszę powiedzieć). Z góry mówię że w elektronice jestem BARDZO początkujący więc jeśli ktoś zdecyduję się odpowiedzieć to poproszę BARDZO prostymi słowami. Mam następujący problem. Mam zrealizować następujące zadanie -> za pomocą płytki STM32 NUCLEO-F401RE mam dokonać pomiaru temperatury...
Globalne definicje przekazuje się przez kompilator, odpowiednimi parametrami. Powiem Ci w sekrecie, że wszelkie poszukiwania błędów w kompilatorze, szczególnie z takimi trywialnymi sprawami, są z góry skazane na śmieszność, tak więc to czy brnąć dalej w zaparte to już Twoja decyzja. Co z tego, że ty sobie w main.c zdefiniujesz, skoro pliki od UARTu...
Mógłbyś troche jasniej bo dopiero się uczę stm32
https://obrazki.elektroda.pl/2759406900_... 8-bitowe mikrokontrolery nadal można znaleźć w wielu projektach, ale dzięki nowemu, niedrogiemu 32-bitowemu z rdzeniem AMR Cortex-M0+ taktowanym 48 MHz — STM32C0 — firma STMicroelectronics dąży do wyparcia 8-bitowych jednostek. Co może się odbyć wskutek: „ograniczonego wpływu...
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,...
komunikacja pomiędzy dwoma STM32 poprzez RS485
https://obrazki.elektroda.pl/3578004800_... „Blue Pill” to popularna płytka rozwojowa układem STM32. Jej popularność wynika z jej niskiego kosztu - zaczyna się od zaledwie 1,50 dolar - oraz z kompatybilności z Arduino IDE dzięki projektowi STM32duino. Powstało wiele ciekawych projektów, opierających się na tym module. Jednym...
1. Tak. 2. Nie bezpośrednio, można kombinować np. tak: struct S { typ costam; typ tab[1000][16]; };
Dopiero się uczę, ale tu tak piszą: https://stm32.eu/2017/11/28/3-stm32cube-... PS: Gdy w powyższy sposób obsługuję USART to jest OK, ale dla UART mam właśnie powyższy problem. Czy to może mieć wpływ?
hm im not shure. What abaut the configuration wizard with stm32_init.c - it doesnt work? Usart is working
Witam, muszę koniecznie połączyć stm32 z pic18f2480. Problem jest taki, że pic chodzi na 5V (nie można tego zmienić, gdyż jest on mózgiem interfejsu ELM327 v1.4 zasilanego 5V). Ponadto w interfejsie siedzi FTDI i może to jest problemem w komunikacji, jednakże, wolę spytać o opinie zanim coś odłączę. Znalazłem w necie fajny konwerter sygnału 5V na 3.3V...
Cześć, mam problem z funkcją sscanf(), stworzyłem kod, który przypisuje mi do tablicy konkretną linię $GPRMC i za pomocą funkcji sscanf() chciałbym wyciągnąć z tej tablicy konkretne zmienne odpowiadające za m.in. długość i szerokość geograficzną, jednak nic mi z niej nie może znaleźć w celu przypisania do zmiennych ( a tablica w debuggerze działa prawidłowo),...
Kod: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
Witam, Mam mały problem z ustawieniem niestandardowej prędkości na STM32 powyżej 115200. Problem pojawia się zarówno przy użyciu funkcji niesocjalizującej jak i ręcznego skonfigurowania ( ręczne wyliczenie wartości dla rejestru BRR ). Nie ma problemu z różnymi transmisjami 9600, 28800 aż do 115200. Po tej wartości terminal milczy. Jedynie przy użyciu...
Ja RX ustawiam na input (obojętne czy floating czy z pull-up/down), ale ponoć na ALT push-pull też działa, choć nie sprawdzałem tego nigdy osobiście. Przyciski ustaw sobie na input pull-up/down, zależnie od tego jak masz je podłączone. Może być też input floating jeśli masz zewnętrzne podciąganie. 4\/3!!
sprawdziłem w dokumentacji. FIFO ustawiane jest w trybie z DMA, którego nie używasz. Więc ten aspekt odpada. Dla uporządkowania tematu. PC-t wysyła do stm32f1.. ramkę z 8 bajtów z 1 bitem stopu bez parzystości. 8 bajtów wyjechało i masz je w buforze odbiorczym pc-ta jako echo. 1. czy arm widzi tylko wybrane bajty ? 2. czy arm widzi wszystko? 3. czy...
Faktycznie, rozwiązanie kwestii działania SPI było dosyć proste i po sprawdzeniu - SPI działa. Odczytuję zapisany wcześniej rejestr poprawnie. Teraz mam inny problem. Poniżej zamieszczam program z pliku main.c, w którym są dodane miejsca wysyłania kolejnych numerów przez UART i program zatrzymuje mi się po wysłaniu numeru 88. Nic więcej się nie dzieje,...
usart stm32 stm32 usart string stm32 usart ramka
światła buzer system solarny szyba honda civic
radio alina karty prepaid oferty
Opel Astra G 1.6 8V 2002 szarpanie i dławienie przy dodaniu gazu – diagnostyka układu zapłonowego i paliwowego OpenBeken WPA3 Support on Beken BK7231, BK7235, BK7236 – Wi-Fi Security Compatibility