Chyba trzeba przestawić funkcję wybranych wyjść GPIO na linie interfejsu USART. Dla mnie mało czytelne są te gotowe biblioteki STM32. Sam wszystko robię na rejestrach.
To nie rozwiązuje problemu. Jeśli masz do skonfigurowania kilkadziesiąt pinów to dalej stoisz w tym samym miejscu - tracisz dużo czasu na klepanie konfiguracji dla GPIO. To rób konfigurację CubeMX a dostęp do GPIUO na rejestrach. Często używam tej metody nie tylko dla GPIO ale i dla USART, SPI. Transmisję realizuję swoimi funkcjami a init robię przez...
Mam jakąś podstawowa bibliotekę z makrami peryferiów. Wiem że dane makro odpowiada bitowi w rejestrze statusowym i sprawdzam czy jest ustawione czy nie tą metodą zrobiłem już i2c i usart.
Nie, no niewątpliwie masz rację, że jeśli chodzi o wydajność to szybciej jest bezpośrednio pisać po rejestrach ;) pozdrawiam Krzysiek
W Twoim działającym przykładzie do rejestru wpisujesz adres tablicy ("&" może być albo może go też nie być - również zadziała wg mnie), natomiast w przykładzie niedziałającym najpierw do funkcji podajesz adres tej tablicy, a potem jeszcze raz wyciągasz adres tego adresu - żeby zaspokoić Twoje potrzeby kompilator zmienną tab umieszcza gdzieś na stosie...
No ale nie możesz po prostu... sprawdzić? No właśnie na razie nie, Z tego względu, że nie mam jeszcze fizycznie układu (pomiarowego) - czekam na wzmacniacze itp. Po napisaniu programu chcę ewentualnie podłączyć 4 potencjometry pod każdy kanał i wtedy sprawdzić. Po drugie myślę, że taki temat może być pomocny dla ludzi którzy też chcą się nauczyć operacji...
Zastanawiam się tylko po co sprawdzać to: [syntax=c]USART3 -> CR1 & USART_CR1_TCIE[/syntax] nie rozumiem powodu. Przecież to jest "This bit is set and cleared by software." Programista nie wie czy ustawił to przerwanie czy nie? Dodatkowo ten zapis: [syntax=c]if(( USART3 -> CR1 & USART_CR1_TCIE) && (USART3 -> SR & USART_SR_TC ))[/syntax] wygląda dość...
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.
Cześć, szukam pomocy w konfiguracji interfejsu USART2 na płytce STM32L476RG po rejestrach do komunikacji STM<->PC. Errorów brak, dane wg debuggera się wysyłają, jednakże w RealTermie kompletnie nic mi nie przychodzi. Próbowałem zgodnie z RM, z poradnikami z YT " Controllers Tech", z poradnikiem użytkownika " szczywronek " i nadal coś nie ogarniam...
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, 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, Próbuje zrealizować odbieranie danych przez UART z wykorzystaniem DMA. Ma to funkcjonować tak, że w funkcji "UART_Receive_DMA(uint8_t *Buffer, int Length)" podaje jako argumenty: - bufor do którego mają trafiać dane (tablica) - ilość oczekiwanych bajtow Po odebraniu tej paczki danych w przerwaniu od końca transmisji DMA dalej będę realizować...
W HAL odbiór po USART jest napisany źle. Problem pojawia się, gdy w czasie nadawania (na przerwaniach) pojawią się dane do odbioru. Nie miałem siły aby HAL poprawiać. Najlepiej zrobić na rejestrach. HAL to działa jak Arduino. Jak uruchamia się jedną funkcję jest ok, jak kila to porażka. Na razie w I2C nie znalazłem błędów (niedomagań) a w USART, RTC,...
Niestety nie działa dałem tak jak opisałeś [syntax=c] volatile unsigned int ISR; // na poczatku programu void USART1_IRQHandler (void) { ISR = USART1->ISR; // 29.8.8 Interrupt & status register (USARTx_ISR) if (ISR & USART_ISR_TXE) // wysylanie danych jesli TDR jest puste { SendChar(10); USART1->ISR &= USART_ISR_TXE; // wyczyszczenie przerwania } }...
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.
14.7456 MHz * 5 = 73,728 MHz, a nie 72 MHz. Jeśli zdefiniowałeś częstotliwość niezgodną z rzeczywistą to prędkość USARTA jest źle wyliczona przez funkcje, która to robi. W tym przypadku nie ma znaczenia czy korzystasz z biblioteki czy wpisujesz bezpośrednio do rejestru. Przetaktowanie mikrokontrolera to inna sprawa. Nie przekraczaj 72MHz.
Olej te ich dziwaczne wywody na temat obliczania wartości do rejestru odpowiedzialnego za baudrate i po prostu wpisz do tego rejestru wartość równą PRĘDKOŚĆ_ZEGARA_UART / BAUDRATE. Te całe zabawy w część stałą i ułamkową właśnie do tego się sprowadzają, chyba ktoś kto pisał dokumentację miał nadmiar fantazji. Wg tegoż BRR powinien być równy 6666 czyli...
Witam. Pozdrawiam szanownych forumowiczów! Potrzebuję odebrać przez moduł btm222 do procesora konkretne dane. Dane zapisane są do pliku w postaci ciągu cyfr np. 345675534999888432 ( tu może być ich więcej ale będzie to wielokrotność. 3*6*X ). Teraz wysyłam ten plik programem realterm. Nie umiem ich odebrać uP w pożądany sposób: Aby rozdzielił te dane...
Jeżeli nic wcześniej nie podłączałeś do tego wyprowadzenia, to sprawdź czy układ/pin reaguje na ręczną zmianę stanu w rejestrze ODR. Przy okazji możesz sprawdzić stan pozostałych bitów odpowiedzialnych za konfigurację. Możesz wstawić zrzut ekranu. Ale jeżeli wszystko jest ok w rejestrach, a pin się nie odzywa, to jest trwale niezdolny do posługi i pożytku...
1. Najpierw włączasz transmisję UART, a potem programujesz jej parametry - to niezbyt sensowne. 2. (Nieaktualne, racja, to jest na przerwaniach.) 3. Jeśli będziesz używał nazw symbolicznych bitów w rejestrach, być może ktoś sprawdzi, czy dobrze ustawiłeś te bity i znajdzie jakiś błąd. 4. Nie używaj operatorów |= i &= przy początkowym programowaniu peryferiali...
Tak, jest wszystko włączone, pytanie czy wszystko w rejestrach timera jest jak trzeba. Chciałbym wykorzystać funkcje API dostarczone przez STMa, sprawdziły się dla innych peryferii (SPI, USART, GPIO, DMA...) jednak nie ma nigdzie przykładu konfiguracji timera w trybie compare.
a czy da się to zrobić w bibliotece SPL? Zadam złośliwe pytanie - a czy da się sprawdzić w dokumentacji tej biblioteki albo w jej kodzie źródłowym? Przecież na pewno będzie szybciej niż pytać o to na forum, zwłaszcza że SPL jest już martwe i teraz ludzie albo używają HALa albo rejestrów. Zresztą - wystarczyłoby pewnie otworzyć odpowiedni plik nagłówkowy,...
odnośnie wyłączenia i ponownego włączenia przerwania funkcjami: NVIC_EnableIRQ(IRQn_Type IRQn), NVIC_DisableIRQ(IRQn_Type IRQn) czy podczas ponownego włączenia nie trzeba znów wpisać odpowiednich wartości do rejestrów konfiguracyjnych? Ponieważ ostatnio próba wyłączenia i ponownego włączenia przerwania bez ponownego wpisu do rejestrów konfiguracyjnych...
Wiem , że stary temat, ale czemu koledzy nie używają mechanizmu wyszukiwania znaku w transmisji, która jest sprzętowa....opis w DS dotyczy Modbus, ale działa w normalnym trybie USART. Wpisuje się w miejsce rejestru ADD znacznik np. końca linii - 0x0D, a potem uruchamiamy przerwanie od Character Match. Druga możliwość to przerwanie po np.100 bitach na...
Dokumentacja: (lub wykorzystywać inną funkcję alternatywną z ową nóżką związaną) Tak, za wyłączenie tych bajerów odpowiada rejestr USART_CRx. Domyślne są wyłączone, więc nie ma się co przejmować. Można odpalić samo RxTx.
Patrzyłem zbyt wąsko na problem - znowu (!) coś dzieje się z transmisją przez USART :/ Jeśli w pętli while(1) nie używam "żądania" wysłania na terminal "w" w celu przesłania wartości mierzonej przez ADC - program działa. Wraz z dopisaniem linijki odpowiedzialnej za sprawdzanie co pojawia się w terminalu, program działa tylko w przypadku (A) ! (czyli...
Czy to oznacza, że trzeba pracować na rejestrach i nie używać bibliotek? Nic nie "trzeba". Tylko po prostu jak chcesz zrobić coś choć trochę bardziej dziwnego niż to przewidzieli twórcy HALa, to zaczyna się temat na 50 postów o tym "jakie magiczne funkcje i jakie magiczne argumenty przekazać", gdy tymczasem rozwiązanie problemu bez tego HALa zajmuje...
Vcc? Zasilanie mam tylko od strony RS485 konwertera. A nowsze wtyczki kabli szeregowych nie przewidują specjalnie ich rozbierania (no i na mojej rozpisce PINów komunikacji szeregowej nie ma nic takiego). W kwestiach sprzętowo technicznych trzeba mi łopatologicznie napisać bo do niedawna jedyny mój kontakt sprzętowy to było włożenie wtyczki gdzie trzeba...
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...
A do AVRlibc jakoś nikt nie zgłasza pretensji- dlaczego? Przecież też biblioteka. Z takich "kłótni" to się czasem można czegoś dowiedzieć. Np. gdy w końcu zacznę mysleć nad ARM- ostatecznie głupoty w C można pisać na dowolny procesor- to będę wiedział czego unikać. Mimo że jest książka oparta na tej bibliotece, jest jakiś kurs- też oparty na bibliotece-...
Witam, Mam pytanie do znawców środowiska ECLIPSE. Czy jest możliwość aby podczas debugowania mieć podgląd rejestrów peryferiów (np. USART) w innej formie niż wartość HEX? Dokładniej mam na myśli rozpisanie każdego z bitów i interpretację go na poziomie pełnionej funkcji, coś na kształt tego co można spotkać w środowisku Keil. Z góry dziękuję za pomoc....
(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...
Wolę pisać na rejestrach bo wtedy można poznać procka w całości. Widać może jakiś błąd w moim kodzie? Dodano po 2 Można wypuścić sygnał na nóżę MCO i sprawdzić jaka jest częstotliwość, ale nie mam czym tego zmierzyć.
Zazwyczaj najwygodniej uczyć się języka C na desktopie, czyli swoim PC-cie. Programując STM32 lub AVR-ki używa się języka w ten sam sposób, ale zwykle nie mamy dostępu do pewnych bibliotek standardowych, które na desktopie są od razu, bo komputer ma monitor, klawiaturę, dysk twardy itp.. W mikrokontrolerach tego nie mamy, więc użycie printf(), getch()...
Próbuje napisać coś w stylu klasy ale stanąłem w miejscu. Klasa ma obsługiwać usart. W pliku H zadeklarowałem strukturę która przechowuje m.in. wskaźniki na funkcje, a w konstruktorze do tych wskaźników przypisuje funkcje. Plik h // usart type powinien być różny w zależności od obiektu który wywołał funkcję! //while (!(module->usart_type->SR & USART_SR_TXE));...
Po kolei: Faktycznie najnowsyz dwie BluePill, jakie mam (w tym jedna czarna), mają rezystor 10k do 3.3 V - znaczy "poprawione" przez Chińczyka. Stary oryginalny chiński schemat pokazuje 10k do 5V, na nowym jest 10k do 3.3V. Wtopa. Ciekawe, że obie działają poprawnie z USB. W seriach nowszych niż F1 problem nie występuje, bo układ podciągający jest w...
Może rozwiążę Twój problem nieco inaczej. Obsłużenie dowolnej bardziej skomplikowanej rzeczy w przerwaniu polega zwykle na sprawdzeniu flag statusowych (np. rejestru TIMx->SR) _ORAZ_ tego jakie przerwania są włączone (np. rejestru TIMx->DIER). Inaczej jest to po prostu niemożliwe. Dopiero mając te dwie informacje można dojść do tego jakie źródło faktycznie...
W sumie to co napisałeś Freddie Chopin dużo wyjaśnia to co się działo z STM. Musisz mieć rację. Napisz mi tylko jeszcze czy jest możliwe zrobić czegoś takiego: W USAR'cie gdy chciałem wysłać 1 bajt np. co 1sek to wówczas ustawiałem flagę nadawania program przechodził do procedury obsługi przerwania i kopiował zawartość zmienne do rejestru nadawczego...
(at)Piotr - teraz zrozumiałem co masz na myśli. A na jakiej częstotliwości powinien pracować i jak sprawdzić z jakiego korzysta? Próbowałem ustawić go przez wstawienie na początku maina następującą linijkę, ale nie pomogło. Bo zegara nie określamy przez #define, tylko przez wpisywanie odpowiednich wartości do rejestrów procesora. Jeśli masz oscyloskop,...
https://obrazki.elektroda.pl/1837581700_... Cześć. Chciałbym zaprezentować konstrukcję zegara opartego na lampie VFD IV-18. Jest to moja własna konstrukcja, samodzielnie zaprojektowana, chociaż oczywiście w jakiejś części stanowi kompilację wielu stron o zegarach VFD, podam linki, które mnie zainspirowały szczególnie: - https://steemit.com/electronics/(at)gleb...
Postanowiłem krok po kroku zobaczyć jak ta biblioteka wyznacza sobie zawartość rejestru BRR. Okazało się, że z poziomu pliku stm32f10x_rcc.c widać niepoprawną wartość stałej HSE_VALUE - zamiast 10 MHz była widoczna wartość zdefiniowana w pliku stm32f10x.h czyli 25 MHz, pomimo zdefiniowania 10 MHz w mainie. To jest o tyle dziwne, że preprocesor nie widzi...
USART wczoraj ruszył bez problemów:) Dzisiaj staram sie zrobić zegar, z kalendarzem itd. RTC taktowany kwarcem 32.768. Wydaje mi się to znacznie trudniejsze. Napisałem taka funkcję inicjalizacji RTC: [syntax=c] void RTC_Init(void) { RCC->APB1ENR |= RCC_APB1Periph_PWR; //RCC_APB1ENR_PWREN RCC->APB1ENR |= RCC_APB1Periph_BKP; //RCC_APB1ENR_BKPEN...
Witaj Kasiu. Miałaś tyle różnych przerwań USARTA do wydoru, a wybrałaś przerwanie USART_IT_RXNE, które informuje o tym, że rejestr odbiornika nie jest pusty. Nie do końca rozumiem dlaczego. Tak sobie myślę, że jak wysyłasz znaki USART-em, to lepiej byłoby wiedzieć, że znak został wysłany i można wysyłać kolejny. To chyba przerwanie USART_IT_TXE. Do...
Ciekawe że w RM ciężko doszuać takich informacji. Dla jasności, czy Wy to mapowanie rozumiecie tak, że dla Was mapowanie oznacza takie przypisanie w którym zamiast zwyklej cyfrowej koncówki GPIO mamy przyłaczone I2C, USART? Czy może podaną w RM zmiane polegająca że sygnały np układu I2C są zamiast na porcie C przełączone na A? Bo to dwie rózne sprawy....
Cześć, Na inżyniera robię robota kroczącego na 12 serwomechanizmach, 4 nogi, taki pająk. Aby to ładnie zakodować chcę zrobić klasę serwo, klasę noga, klasę robot z odpowiednimi metodami aby kod był przejrzysty i jasny. Problem jest następujący: Klasa serwo ogółem działa, kompiluje się idealnie, aczkolwiek przy próbie użycia jakiejkolwiek zmiennej procek...
Przy okazji - w jakim dokumencie szukać tego typu informacji? Dodano po 1 No właśnie wszystko powłączałem - w rejestrach USART, w pliku stm32f10x_it.c itd. Tylko sama ta linia nie jest przyjmowana, coś jest nie tak. Dodano po 4 Chodzi mi o to, że wszystkie włączenia przerwań w NVIC, jeżeli są prawidłowe, to to co w nawiasie jest wyświetlane niebieską...
Witam, Przesiadam się z STM32F103 na F051, a raczej ćwiczę sobie na obu tych mikrokontrolerach. Napisałem program na F0, w celu poćwiczenia sobie z konfiguracją interfejsu SPI. Zadanie jest takie SPI1 posyła dane, a SPI2 odbiera je zgłaszając odbiór. Interfejsy podłączyłem ze sobą SPI1->MISO z SPI2->MISO SCLK - SCLK MOSI - MOSI Niestety komunikacja...
Aktualnie najważniejsze pliki programu wyglądają następująco: main.c: [syntax=c]#include "main.h" //definicje stalych #define LINENUM 0x15 #define FONTSIZE Font12x12 #define LED1 GPIO_Pin_13 #define LED2 GPIO_Pin_14 #define PRZYCISK GPIO_Pin_0 //zmienne - definicje void Delay(__IO uint32_t time); extern __IO uint32_t TimmingDelay; unsigned short regVal;...
Masz rację, np. DCMI->CR jest przepisane z SPL prawie na żywo i to nie jest najlepsze rozwiązanie, zajmę się tym jak coś będzie działać. Ten kod pokazuje trochę sposób mojego dziwnego rozumowania i przyzwyczajenie z AVR. Konfigurację GPIO znam na pamięć i jakoś szybciej mi się wklepuje takie coś i dobrze to rozumiem podobnie jak USART albo ADC czy inne...
Poczekaj na STM32H7xx, Nie trzeba czekać. Są dostępne :) Nie słuchaj - przede wszystkim dobrze wybrałeś nucleo Popieram Kolegę. Nucleo 144 to bardzo dobra baza do prototypowania. Nie tylko ze względu na St-Linka czy zainstalowane interfejsy, np. Ethernet, ale przede wszystkim ze względu na swobodę wykorzystania pinów i możliwość przenoszenie interfejsów,...
Jak wygląda sprawa z przerwaniami? Tam zamiast przerwań są używane callbacki. To nie tak jest. Callbacki są całkiem do czego innego. W programie HALowym, to użytkownik pisze obsługę przerwań sprzętowych (tak jak w klasycznym podejściu "rejestrowym") a specyfiką HAL jest tylko to że dostarcza pewnych gotowców na obsługę przerwań. Przykładowo weźmy uart....
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
Miło mi poinformować, że po wpisaniu komendy o zerowaniu flagi przerwania całość działa pięknie. Dziękuje a ponizej zamieszczam listningi poprawne: Konfiguracje [syntax=c] void NVIC_conf(void) { NVIC_SetPriority(TIM7_IRQn,1); NVIC_EnableIRQ(TIM7_IRQn ); } void TIM7_conf(void) { TIM7->CR1 |= TIM_CR1_ARPE | TIM_CR1_URS; //włącz buforowanie rejestrów...
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...
Że trzeba włączyć to wiem. Mało tego. Zaraz po konfiguracji ADC jest konfiguracja USART1 który jest tak samo podłączony do APB2 i z nim mogę zrobić co mi się tylko podoba. Skonfigurować, zamieszać w nim, wszystko... Przed ADC konfiguruję DMA więc i tam zobaczę czy da się wprowadzić zmiany. Tak. W rejestrach DMA też mogę mieszać do woli.
Ale dalej nie napisałeś jak to podłaczyłeś. Możesz użyć potu stlink, podpiąc się usb i napisac soft vcom pod jeden portów usb na płytce, możesz też podłaczyć się do któregoś z pinów procka, który da sie użyć z kórymś z u(s)artów i i użyć jakiegos zewn vcoma. Ale abstrahując odbierasz coś na usarcie podłaczonym do tego HC i wysyłasz na usarta do którego...
Cze, Od jakiegoś czasu rozwijam swoją konstrukcję sterownika do stacji pogodowej. Projekt robi się coraz większy i większy i w końcu dotarłem do etapu, w ktorym rozważam użycie jakiegoś RTOSa. Mam dużą bibliotekę własnego kodu obejmującą takie rzeczy jak kompleksowa obsługa komunikacji po USART czy I2C, mam pełną obsługę konsoli tekstowej. Do tego używam...
define są warte używania gdyż ułatwiają zrozumienie oraz łatwiej modyfikować kod w przyszłości. Tak więc, nie jest lepiej używać 0<<14 niż define. 3<<16 | 2<<14 | 1<<8 - od razu widać że mamy 3 tryb na pinie 8, 2 na 7 i 1 na 4. Modyfikacja to 2 kliknięcia GPIO_MODER_MODER7_1 | GPIO_MODER_MODER7_0 | GPIO_MODER_MODER6_1 | GPIO_MODER_MODER5_0...
USART3_GPIO->AFR No to dalej niezbyt, bo ustawiłeś AF1 i AF0, a miało być 2x AF7. W podglądzie rejestrów zauważyłem, że dostaję FIFO Interrupt Error Flag Mało istotne. Zignoruj Dodano po 46 Odczytuję LISR - DMA low interrupt status register (DMA_LISR), a flagi kasuje w LIFCR - DMA low interrupt flag clear register (DMA_LIFCR), czyli chyba dobrze,...
(at)eiliat , porównałem ze swoim kodem. Widzę, że część masz na rejestrach - stąd ciężko dokładnie pomóc, ale czy masz odpowiednio skonfigurowane GPIO dla UARTA? U mnie Tx mam jako GPIO_Mode_AF_PP, a Rx jako GPIO_Mode_IN_FLOATING (u Ciebie ta część jest na rejestrach, dlatego pytam dla pewności).
Witam staram sie uruchomić sprzętową obsługe encodera w stm32F4. Generalnie całość już działa problemem okazuje się sam timer. Działa inkrementacja i dekrementacja timera jednakże licznik nie chce się przepełnić zarówno przy zliczaniu w górę i w dół timer dolicza do maksymalnej wartości zapisanej w rejestrze CNT. przy zliczaniu w góre (obrocie koła)...
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....
Witam, Od pewnego czasu piszę moduł do komunikacji przez usarty, które łączą ze sobą dwa procesory (103ret6 i 103rbt6, co jednak nie ma znaczenia), połączenie pełne (tx->rx, rts->cts). Ze względu na możliwość występowania wielu innych przerwań oraz przy wymogu dużej przepływności przez usart zmuszony byłem zastosować komunikację z użyciem DMA, ale jednocześnie...
Nie trzeba go przekonywać. Dla DMA jest wszystko jedno pod jakie adresy mają się zapisać dane. Ale nie jest mu wszystko jedno, w jakich okolicznościach ma to robić. W przypadku UART TX, DMA request jest generowany za kazdym razem, gdy flaga TXE==1 (jesli UART ma włączony DMA oczywiscie). Wtedy DMA transferuje wartość spod adresu podanego w CMAR do...
Niebardzo - STM32 jest bardzo bezproblemowy w debuggowaniu, więc nie tutaj szukałbym problemu. Może podczas debuggowania (ze względu na nieco inne "okoliczności") nie wyskakują Ci errory, które w normalnych warunkach się pojawiają i blokują transmisję? Sprawdź, czy nie są poustawiane flagi od błędów w rejestrach SR. 4\/3!!
No fakt, w kodzie powyżej jest tyle skomplikowanych odwołań do rejestrów, że zrozumienie ich zajmie na pewno więcej czasu, niż zrozumienie 10 parametrów konfiguracji HAL i z 5 potrzebnych do tego samego funkcji HAL oraz ich argumentów. ;) Dodajmy do tego niezwykle długi i skomplikowany kod inicjowania UART na rejestrach: RS485_UART->BRR = (SYSCLK_FREQ...
https://obrazki.elektroda.pl/8071235800_... Firma STMicro zaprezentowała właśnie swój pierwszy mikrokontroler z linii STM32 wyposażony w interfejs bezprzewodowy. STM32WB to rodzina dwurdzeniowych procesorów z rdzeniami ARM (M4 i M0+) wyposażona w transceivery Bluetooth 5 i 802.15.4. Producent tych mikrokontrolerów mówił już o nich...
Nie wiem czy to ma znaczenie ale masz trochę inną sekwencję niż w dokumentacji 6. When using the DMA mode - Configure the DMA using DMA_Init() function - Active the needed channel Request using USART_DMACmd() function 7. Enable the USART using the USART_Cmd() function. 8. Enable the DMA using the DMA_Cmd() function, when using DMA mode. Poza tym czemu...
Hala do usarta czy SPI nie lubię. Łatwiej i dużo szybciej na rejestrach
Dzięki wielkie za odpowiedzi, oczywiście było tak jak mówicie, bit w rejestrze DIER + błędnie ustawiony bit UDIS, teraz już działa ;) co do wartości w rejestrach PSC i ARR to były zupełnie przypadkowe na razie :) a TIM2_CR1_CEN_bb = 1; to dostęp do bitu CEN przez bitbanding i tak, włącza on timera ;) Jeśli chodzi o printf Freddiego - on napisał swoją...
Panuje nawet pogląd, że LPC się programuje tak jak AVR bo się używa zapisów z rejestrami. Wiele ludzi twierdzi, że są prostsze niż STM. ST upakowało naprawdę wypaśne peryferia, ale też je się da programować jak AVR:) Najbardziej śmieszy opinia o tych "mega-wypaśnych" ustawień, jak to musi być skomplikowane, 32-bitowiec, ARM, 1000-stron manual i strasznie...
Witam, uruchomiłem przykładowy program z obsługą Ethernetu. Po wyczyszczeniu ze zbędnych plików ( usart debug, lcd ) i przeniesieniu plików źródłowych do dwóch folderów mam problem z uruchomieniem programu. Mianowicie program po wywołaniu funkcji SystemInit zatrzymuje się na linii: [syntax=asm]0x080068BC BEAB BKPT 0xAB.[/syntax] w funkcji [syntax=asm]...
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....
to mój kod. raz działa raz nie. Np ponowne uruchomienie Debugowania już go pogoni, a czasem nie da rady. wywala HardFault_Handler() lub inne. [syntax=c] /** ****************************************... * File Name : main.c * Date : 13/09/2014 10:34:06 * Description : Main program body ****************************************...
Witam, Jestem na wstępnym etapie zabawy ze stosem uIP i kontrolerem ENC28J60. Udało mi się już uruchomić układ - ENC odpowiada na pingi i jest możliwość wejścia na web server z przykładowej aplikacji. Jednak co mnie martwi t to, że w statystykach widoczne są wysokie wskaźniki "Packets dropped". Nie ma znaczenia czy płytka wpięta jest do routera czy...
Witam, Niedawno zmontowałem mój układ falownika. Do sterowania tranzystorami wykorzystałem układ IRS23364 - układ drivera mostka trójfazowego z deadtime, ograniczeniem prądowym z wbudowanym komparatorem itd... Wykonałem układ obwodu mocy jak na schemacie poniżej. Dodatkowo przewidziałem miejsce na dwa przetworniki LEM LTS 6-NP, żeby w przyszłości zrealizować...
Witam. Zmagam się z konfiguracją USART na rejestrach. Widziałem dużo rozwiązań na rejestrach - ale dotyczyły one odczytu pojedynczych znaków - ja chciałbym odczytywać łańcuch znaków. Inne rozwiązania bazowały na funkcjach bibliotecznych. Do tej pory efektem było odczytywanie pierwszej litery bądź ostatniej i wypełnianie nią buffora. Jak to zrobić żeby...
Chyba dokładnie nie zrozumiałeś tego co napisał FCh. Zmieniasz stan pinu (GPIOC->ODR^=1<<6) za każdym razem gdy wejdziesz do przerwania. Powinieneś reagować tylko na przerwanie od TC. Teraz zmieniasz stan pinu w przypadku TXE oraz TC . Dodatkowo: [syntax=c] HAL_NVIC_ClearPendingIRQ(USART3_IRQn); [/syntax] jest zbędne. Według mnie powinienieś...
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,...
Witam, mam następujący problem od pewnego czasu próbuję odpalić komunikację pomiędzy STM32L-Discovery oraz komputerem na RS232 z sygnałami RTS i CTS, niestety coś robię źle ponieważ komunikacja nie działa i wysłane znaki nie docierają do terminala :/. Czy mógłbym prosić o zerknięcie na ten kod ? [syntax=c]void USART1forFUN(void) { USART_InitTypeDef...
Dzień dobry, mam proste pytanko, zaczyna zabawę z STM NUCLEO, korzystam z środowiska SW for STM32. Mam mrugania diodą ale nie działa wysyłanie danych na terminal, kodzik: Dodano po 6 Dodałem ustawienie pinów, kod z : http://elektronika327.blogspot.com/2015/... Dodano po 2 Dobra widzę że nie te piny inicjalizuje...
stm32 usart usart stm32 stm32 usart ramka
monitor piorun wewnętrzny telefon zmywarka bosch przecieka
Cyfry 4:41 na wyświetlaczu suszarki - co oznaczają? Momenty dokręcania podpór wału korbowego Renault Megane II