Aj, link się nie wkleił. Komunikacja idzie przez USART na pinach PC4-PC5. Zapewne gość ma jeszcze podpięty jakiś konwerterek USB UART.
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...
Ja bym raczej proponował się zdecydować czy chodzi o USART1 czy może USART2, bo dwóch na raz się raczej nie da używać z tym kodem... 4\/3!!
Mam problem z inicjalizacją UARTA. Otóż kod działa na portach PA9,PA10 lub PC4,PC5. Jednak gdy zmieniam na PB6, PB7 komp nie otrzymuje danych wysyłanych przez płytkę. Może źle to robię, ale według specyfikacji to na te porty można wyprowadzić USART1, więc nie wiem o co chodzi, a jeszcze raczkuje w temacie STM32. [syntax=c]#ifndef _USART_C_ #define _USART_C_...
Bo ten schemat jest ze strony, która opisywała tutorial do obsługi USART na Discovery. Moja przejściówka różni się tylko tym, że ma mniej wyjść (okrojona wersja przejściówki ze schematu) i niczym więcej. Jeśli chodzi o napięcie na wyjściach, jest ono równe dokładnie 3.45V w stanie wysokim
atom1477 dzięki za informacje, czasu nie miałem na odpowiedź bo mi się w zeszłym tygodniu szkrab 2 urodził, dwoje dzieci ogarnąć to już masakra. Mam pytanie do moich wywodów na temat przesunięć bitowych. Z pomocą dokumentacji uruchomiłem tamten kod bez użycia bibliotek z czego jestem zadowolony bardzo. Mam pytanie GPIOC->AFR da się to mądrzej napisać?...
Witam. Stosunkowo niedawno wziąłem się za Cortexy i chciałbym na nich oprzeć swój projekt. I potrzebuje kilku rad odnośnie projektowania płytki pod te procesory (STM32F372CCT6 /LQFP48). Niestety w datasheecie prócz tego jak podłączyć zasilanie innych pomocy nie znalazłem i mam kilka pytań. 1. Co zrobić z wejściem kwarcu dla RTC jak nie mam zamiaru z...
Witam, jestem w trakcie nauki programowania uC. Zakupiłem płytkę STM32F3Discovery. Próbuje wysłać na początek jeden znak na COM-a. Jednak niestety coś idzie nie tak :( Używam przejściówki USART-USB. Dodam, że konfiguracja musi być OK, bo gdy korzystam z biblioteki HAL to wszystko działa. Chce bawić się StdPeriph, bo mam wrażenie, że tutaj będę wstanie...
GPIO powinien być ustawiony na odpowiednie alternate mode. https://obrazki.elektroda.pl/6186263400_... [syntax=c]GPIOA -> MODER &= ~((0b11 << GPIO_MODER_MODE2_Pos) | (0b11 << GPIO_MODER_MODE3_Pos)); GPIOA -> MODER |= (0b10 << GPIO_MODER_MODE2_Pos) | (0b10 << GPIO_MODER_MODE3_Pos); //set alternate GPIOA...
Witam, Gdy próbuje skonfigurować dwa USART i przerwania do nich powstaje konflikt. Wystarczy, że odłącze kabel od USART1 i wtedy wysłanie komendy do komputera wraca do normy. Definiowanie: [syntax=c]RCC_AHBPeriphClockCmd(RCC_AHBP... ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_US... ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO... ENABLE);...
Na początku rozdziału o USART w reference manual jest taki podrozdział "USART implementation" (29.4). Masz tam rozpiskę jakie "ficzery" są dostępne w jakich dokładnie układach - widać tam, że 7-bitową długość danych mają tylko niektóre układy z tej rodziny. https://obrazki.elektroda.pl/2466354800_...
Czy pamiętałeś o włączeniu portów w ODPOWIEDNIM rejestrze APBENR? volatile nie ma nic wspólnego z AVR. Tego atrybutu używa się np. wtedy, kiedy zmienna modyfikowana przez obsługę przerwania jest testowana przez inny fragment kodu. Pokaż kod procedury przerwania, bo coś tam narozrabiałeś.
Jak zwykle małe gówno a tyle kłopotu. Oto przyczyna nie działania: RCC_APB1PeriphClockCmd(RCC_APB2Periph_US... ENABLE); a powinno być: RCC_APB2PeriphClockCmd(RCC_APB2Periph_US... ENABLE); i teraz wszystko działa. Dzięki za chociaż chęci pomocy. Pozdrawiam.
Mam następujące zadanie; stworzyć projekt na laboratoria z mikroprocesorów. Męczę się z tym już od początku semestru i szczerze nie mam pojęcia gdzie robię błędy. Liczę na moc internetu i oczywiście odpłatnie na pomoc. Pełna specyfikacja projektu: 1. Komunikacja z komputerem za pomocą interfejsu USART z buforem kołowym. 2. Zaprojektowanie i implementacja...
Czasem Arduino do czegoś się przyda Dodano po 2 Możesz dać przykład takiej krytycznej czasowo operacji? Problem jest a raczej był związany z buforem nadawczym uarta. Mam funkcję: Blokuj tylko przerwania od UART.
Oczywiście tak nie zaprogramujesz option bytes. Ten rejestr FLASH-OBR jest tylko do odczytu i jest jedynie kopią odpowiedniego bitu w option bytes. Musisz najpierw odblokować zapis do option bytes (rejestr OPTKEYR) , następnie je zaprogramować i zresetować uK Poszczególne bajty option bytes masz opisane w RM/.
Jakieś sugestie ? Gdyby ktoś miał program do obsługi USART dla STM32F303RC w postaci pliku hex - nie pogardziłbym. Sprawdziłbym czy to wina kompilatora czy STM Edit Przeszedłem na środowisko Eclipse. Fajnie cacy, "obudowałem" sobie kompilator, wrzuciłem taki oto kod: For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Info : This...
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....
Trochę zmieniłem kod i pomiar zaczął działać jednak jest coś nie tak gdyż dzielony wynik przez /58 powinien dać mi odległość w centymetrach. Mam obiekt ustawiony dokładnie na 15 cm ale wyniki uzyskuję następujące: 67 $ 67 $ 67 $ Co robię źle? [syntax=c]#include "main.h" #include "stdio.h" __IO uint16_t ADC1ConvertedVoltage = 0, calibration_value = 0;...
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...
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! Czy ma ktoś pomysł w jaki sposób wykonać maskowanie sygnałów wyjściowych OCx z TIM1 zewnętrznym sygnałem w STM32F303RE? Chodzi o to, by maskowanie nie "zakłócało" pracy licznika, ale wyłączało wyjścia na czas trwania impulsu zewnętrznego, czyli robiło swojego rodzaju operację AND na wszystkich wyjściach i sygnale ETR... No i żeby nie musiał się...
Witam, Mam jeden z dwóch często występujących problemów. Nie wiem czy to wina konstrukcji czy kodu. Z napięcia około ~12V mam zrobiony dzielnik napięcia (4K7 i 8K) tak, że na wyjściu mam około 2.44V. Po wgraniu kodu otrzymuje następujące wyniki: 2715 $ 2723 $ 2721 $ 2718 $ 2717 $ 2715 $ Jak widać, rozbieżność jest w granicy moich oczekiwań jak na rezystory...
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...
Witam, Po długiej walce z żyroskopem L3GD20 jestem zmuszony zwrócić się po pomoc do Was. Komunikuje się z urządzeniem za pomocą interfejsu SPI. Teoretycznie wszystko działa przy czytaniu danych- żyroskop odpowiada tak, jak jest napisane w datasheet (na ramkę WHO_AM_I odpowiada wartością 212, a na odczyt rejestru kontrolnego nr 1 odpowiada 7, czyli włączonym...
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...
Witam, Używam Timera 3 w celu generowania sygnału PWM na kanale 1 i 2 tegoż timera. Sam PWM działa jak ta lala, ale wygląda na to, że udostępnienie przerwania z tego Timera powoduje, że kontroler nie wykonuje instrukcji z pętli głównej. Czy ktokolwiek wie o co co może chodzić i jak to naprawić? Z góry bardzo dziękuję. Poniżej wklejam istotne fragmenty...
Dzięki za to, że napisałeś odpowiedzi na Twój problem, przydało się ale niestety nadal mam problem... Poniżej jest mój kod do odczytu przez I2C i wysyłanie po UART. Putty niestety wyrzuca "S▒▒" co restart. Ktoś wie czemu? (wiem, że ten kod nie jest najlepszy ale powinno działać. [syntax=c]#include "stm32f30x.h" void SysTick_Handler(void);...
Teraz wszystko działa jak trzeba. Przepraszam za moje głupie błędy, ale tak to jest jak się bezmyślnie kopiuje. Wstawiam działający kod [syntax=C] int main(void) { char bajt=4; char bajt2=0; char a[10]; Delay_config(); Delay_us_Init(); usart_Init(); gpio_init(); // konfiguracja pinów dla SPI1 - Master RCC->AHBENR |= RCC_AHBENR_GPIOAEN; gpio_pin_cfg(GPIOA,...
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...
A STM32 niema przerwania że wysłał dane i czeka na następne. rozumiem ze to jest pytanie a nie stwierdzenie. Jeżeli pytanie to oczywiście zależy to od peryferiów użytych. Np wszelakie interfejsy komunikacyjne typu I2C, SPI, USART - oczywiście mają. Jeżeli to ma być równolegle to o ile nie zrobisz tego na DMA, to takiego przerwania nie ma (no bo jak...
Zrobiłem wersję mniej czytelną ale taką co nie miałeś uwag, czyli nie dałem przesunięć bitowych Dlaczego ustawiasz mode input dla czegoś co ma pracować a AF? Jak mówiłem ustawiaj piny osobno. Bo tak staje się to nieczytelne. Mówiłem o zrobieniu makr? Naprawdę warto. Wszystkie porty oprócz A można konfigurować wprost bez stosowania ORów i ANDów.
Witam, Mam 2 płytki Stellaris LaunchPad z procesorem LM4F120XL na pokładzie, po podłączeniu do nich modułu nrf24l01 bez ustanawiam komunikację między płytkami i steruje np: serwem, diodami. Program do Stellarisów napisałem w IDE o nazwie Energia, który jest klonem IDE do Arduino (dostosowanym pod płytki Texas Instruments). Teraz ta ciekawsze część,...
Inicjowanie UART to 2 lub trzy zapisy do rejestrów, przemieszczenie linii - po jednym zapisie na port (czyli jeśli zmieniasz z portu A na B to masz dwa zapisy). Czas tych operacji nie przekroczy ułamka mikrosekundy (kilkanaście cykli procesora), o ile nie będziesz korzystał z SPL ani HAL.
Ja mam coś takiego: [syntax=c] #define APB1_CLK 42000000 #define BAUDRATE 115200 void init_usart( void ) { RCC->APB1ENR |= RCC_APB1ENR_USART3EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; gpio_pin_cfg( GPIOD, 8, GPIO_AF7_PP_50MHz_PULL_UP ); gpio_pin_cfg( GPIOD, 9, GPIO_AF7_PP_50MHz_PULL_UP ); USART3->BRR |= APB1_CLK / BAUDRATE; USART3->CR1 |= USART_CR1_TE...
Strasznie nie czytelne masz ustawianie GPIO, same cyferki mnie zrażają, zapewne nie tylko mnie. Freddie Chopin napisał bardzo fajną funkcję do portów. Ja Ci daję mój przykład: [syntax=c_loadrunner]#define APB_CLK 42000000 #define BAUDRATE 9600 void init_usart( void ) { RCC->APB1ENR |= RCC_APB1ENR_USART3EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; gpio_pin_cfg(...
Wyglądają dobrze. 4\/3!!
A gdzie masz włączanie przerwań od USART? Dodano po 7 Powinno być coś w stylu: NVIC_EnableIRQ(USART2_IRQn);
To działa: [syntax=c] #define Port_USART3 USART3 #define Port_USART3_CLK RCC_APB1Periph_USART3 #define Port_USART3_TX_PIN GPIO_Pin_10 #define Port_USART3_TX_GPIO_PORT GPIOB #define Port_USART3_TX_GPIO_CLK RCC_AHB1Periph_GPIOB #define Port_USART3_TX_SOURCE GPIO_PinSource10 #define Port_USART3_TX_AF GPIO_AF_USART3 #define Port_USART3_RX_PIN GPIO_Pin_11...
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ść...
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...
Hehe. Wiem że to dziwne ale robiłem to na szybko. Cały czas eksperymentuje a mam mało czasu wiec mam nie mały bajzel. To ja jeszcze zwrócę uwagę na to, bo w Twoich kodach z innych tematów aż się rzuca w oczy: [syntax=c]USART1->CR1 = USART_CR1_UE; USART1->BRR = 168000000/9600 ; USART1->CR1 |= USART_CR1_TE | USART_CR1_RE; // RX, TX enable[/syntax] Po...
Kanal nadal nie ustawiony, zły kierunek transmisji.
łatwiej stosować ci te przesunięcia bitowe, gdy zdefiniowane masz wszystko elegancko w CMSIS do stm? Ci jest czytelniejsze? USART1_CR1_UE czy 1<<2 ?? BlueDraco czepianie się tego UL to przesada, i chyba tylko tobie wadzi. Lepiej by było jeśli gdzieś miałoby zabraknąć.
To dalej nie jest dobry kod. Co, wg Ciebie, sprawdza poniższy warunek? Zamiast zerować bufor, zapewne wystaczy poprawnie sprawdzać długość. Zwracając message przez wartość kopiujesz ją jeszcze raz.
Flaga USART_CR2_TXINV w CR2 USARTu.
No właśnie jeśli wyśle liczbe 1.0001 - to otrzymam na terminalu .0001. Nie wiem co jest... próbowałem bawić się naprawdę podstawą podstaw tzn. robiłem rzut z float->int - nie działa; potem mnożenie *10 i /10 (też nic) tak, aby otrzymać tą część całkowitą. Niestety... buffor tab_1 niczym się nie zapełnia, tak jakby STM nie wiedział jaki jest wynik tych...
To niech teraz też będzie samo =, bo OR nie ma tu najmniejszego sensu a tylko może zaszkodzić. Tak samo OR nie ma najmniejszego sensu przy inicjalizacji rejestrów USARTa, bo niby po co chcesz zachowywać stare wartości? A jak tam jest właśnie jakimś sposobem ZŁA wartość? Wpisz po prostu do dwóćh rejestrów dwie gotowe wartości i tyle, bez żadnych ORów....
1. Czy plik z ustawieniami zegara masz wygenerowany z narzędzia udostępnionego przez ST (plik xls z makrem)? Jeśli nie to to zrób. 2. W opcjach projektu powinieneś zdefiniować stałą określającą częstotliwość HSE w hercach [syntax=c] HSE_VALUE=8000000 [/syntax] 3. Sam nad tym spędziłem sporo czasu, zanim wykryłem brak tej stałej zdefiniowanej w preprocesorze....
Więc po pierwsze i po drugie połącz wyjście TX z wejściem RX. Jeśli otrzymasz odpowiedź to wtedy zajmuj się modułem. Jeśli nie zostaw moduł w spokoju i zajmij się normalną komunikacją. W zależności od wyników będziesz także wiedział o co pytać, a nie obligował forumowiczy do brnięcia przez cały Twój kod. Albert
stm32f3 discovery stm32f3 timer stm32f3 paczki
silnik kosiarki elektrycznej włącza mercedes impulsator netgear dgn1000 firmware
peugeot moduł alarm niszczenie dysku twardego
Obliczenie średnicy i długości siłownika hydraulicznego do podniesienia 2500 kg Wymiana krzyżaka w pralce Electrolux EWP 11074TW