Przecież wyraźnie widać, że STM odbiera 8 bitów, a w Realterm jest ustawione 7 bitów. Stąd różnica i obcięty najstarszy bit. Poza tym, dane się zgadzają. Format danych musi być ten sam. STM to pewnie 8N1, Realterm 7E1.
Aktualnie nie odwracam sygnału w komunikacji o czym pisaliśmy wcześniej. Jeśli nie odwracasz polaryzacji sygnału na linii REQ i łączysz STM32 i Multicall na wprost, to nie masz szans się porozumieć.
Usuwając "AFIO, ENABLE" nadal jestem w stanie wysłać dane z płytki Masz rację, AFIO tylko w przypadku, gdy przekierowujesz USART1 na inny port. Mówisz, że nadawanie działa to z pewnością prędkość masz dobrze ustawioną. Może zapal jakiś LED po odebraniu '1'. Skoro pracujesz na bibliotece to przykłady znajdziesz na stronie wydawnictwa BTC jako załącznik...
Cześć, Nie dawno zacząłem przygodę z STM32. I mam duży problem nad którym siedzę już parę dni. Chciałem stworzyć prostą komunikację z komputerem gdzie przez terminal odpowiednimi komendami będzie można gasić i zapalać diody i w drugą stronę przesyłać które diody są zapalone. nie wiem gdzie jest tu błąd więc Ustawienie GIPO void GPIO_Conf(void) { GPIO_InitTypeDef...
Wyłącz przerwanie od TXE skoro nie chcesz wysyłać. 4\/3!!
Próbuję pożenić template Freddiego (stm32_blink_led) z StdPeriph Ale to widziałeś? http://www.freddiechopin.info/pl/artykul... Ma ktoś pomysł co może być nie tak ? W skrypcie linkera należy ustawić rozmiar stosu dla przerwań - domyślnie jest zero, co zwykle źle się kończy. Ustawiłeś...
No tak: [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);...
Czy jest techniczna możliwość wyłączenia wewnętrznego bootloadera? Zworka BOOT0 zwarta z GND. Piszę aplikację komunikującą się z PC za pomocą USART1 w trybie master(PC)/slave(STM32) i wszystko działa dobrze dopóki PC nie nadaje podczas startu STM'a. Szukam odpowiedzi na powyższe pytanie lub sposobu jak brak takiej możliwości obejść.
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,...
niezbędny będzie konwerter USB do TTL (inaczej USB do Serial) To pozostawia pewną niejasność, bo właśnie kupiłem dwie różne przejściówki USB do Serial, i one różnią się paroma cechami. Jedną z nich jest to, że stan STOP na wyjściu TxD (nie pomyl z BREAK, bo to akurat jest odwrotny) dla jednej daje 0V (czyli L, a stany START i BREAK 5V, czyli H), a...
Jakieś dziwne zjawisko. Wszystko działało tz. w pętli pytałem urządzenie po modbusie a teraz jakieś dziwnie zachowanie . Tak jakby zawieszony procesor nic się nie wykonuje w pętli . Co może być przyczyną ? Całość poniżej : [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h"...
Witam serdecznie. Mam problem ze zrozumieniem pewnej kwestii... Posiadam zestaw STM32F7 i chciałbym zrobić taką komunikację dwoma UARTami (wzorując się poniekąd na Poradniku udostępnionym tu na forum). Urozmaiceniem miałoby być to, aby do złączy STM32F7 był podłączony modulik bluetooth HC05. W tym celu skonfigurowałem sobie UART6 bo z tego co widzę...
Korzystam z tego [url=http://www.tme.eu/pl/details/wsh-47... RS485 bazującego na układzie SP3485 ([url=http://www.waveshare.com/w/upload/... a nie jak pisałem MAX3485. Wyprowadzenia /RE oraz DE odpowiadające za kierunek transmisji są ze sobą połączone. Wykorzystuje zestaw...
GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np. brakuje jakiejś flagi) i podczas debugowania nic ciekawego...
Nie mogę pokazać kodu ponieważ nie jestem jego właścicielem. USART2 wykorzystywany jest do komunikacji z SIM900, USART1 oraz TIM3 do Modbus RTU. Jakie ustawić priorytety od w/w źródeł przerwań ?
Witam serdecznie. Zwracam się do Was z prośbą o pomoc. Mam projekt, który bazuje na plikach od producenta i chciałbym do niego dodać możliwość komunikacji z terminalem za pomocą USART1. Z pomocą STM32 Cube wygenerowałem sobie projekt z USART1 który działa i przesyła mi dane na konsolę, ale po przekopiowaniu funkcji do mojego projektu docelowego to nie...
Wydaje mi się że mnie plik wygląda okay [syntax=c] /** ****************************************... * (at)file startup_stm32f030xc.s * (at)author MCD Application Team * (at)version V2.3.0 * (at)date 27-May-2016 * (at)brief STM32F030xc/STM32F030xb devices vector table for Atollic TrueSTUDIO toolchain. * This module performs:...
Witam, Mam problem z komunikacją STM32 z komputerem. Moja płytka to STM32L-Discovery [url=http://www.st.com/internet/evalboar... Chciałem napisać sobie najprostszy program do komunikacji z komputerem. Jak na razie nic nie działa. Pisałem program z pomocą książki "Mikroprocesory STM32 w praktyce" Krzysztofa Paprockiego. Musiałem...
Witajcie. Piszę krótko. Używam STM32F407. Do trzech różnych USARTów mam podłączone cwa czujniki i jeden datalink Czujnik_1 - USART1 Czujnik_2 - UART5 Datalink - USART3 Z czujników zbierane są dane a datalink wysyła te dane, które zostały odebrane. Wszystko dzieje się na przerwaniach. Kiedy podpinam każdy z czujników oddzielnie i datalink'a, wszystko...
Postanowiłem zawalczyć z tym UARTem ale (wstyd przyznać) trochę sobie nie radzę. Podejrzewam, że robię gdzieś jakiś głupi błąd, którego nie mogę zlokalizować. Połączenie STMów wygląda następująco: ZL26ARM programuję z USB za pośrednictwem STM32F4 (SWD->JTAG), oprócz tego ZL'a zasilam sobie z drugiego USB. Na ZL'u USART1 remapowałem sobie na piny PB6(Tx)...
Zdaje się, że jeśli chodzi o moduły, to jakieś Arduino mogą od razu być programowane poprzez USB; co tańsze STM32 wymagają przejściówek, np. USB na UART TTL, albo RS-232 na UART TTL, albo USB na SWD. Z tego chyba RS-232 na UART TTL można łatwo zrobić, ale jest to dodatkowa robota, żeby móc zacząć. Moduł STM32F103C8T6, który jest konkurencyjny cenowo...
Witajcie, dziękuję za wszystkie posty. Większość okazała się bardzo pomocna. Swoją modyfikację chciałam zacząć od najprostszej zmiany, tj. zmiany konfiguracji modułu bluetooth poprzez komendy AT. Najpierw jednak chciałam przetestować odbiór danych z terminala. Znalazłam program i nieco go zmodyfikowałam, którego celem jest odebranie wpisanej danej w...
Witam, Jako że jestem początkujący w dziedzinie STM32 napotkałem problem nie do przejścia. Moim zadaniem jest wysyłanie inkrementowanej zmiennej "Dane" która jest wysyłana przez USART i odczytanie jej przez terminal. W konsekwencji wyrysowując otrzymane wartości powinienem uzyskać coś podobnego do piły o amplitudzie od 0 do 255. Bez DMA wszystko pracuje...
ale nie umiem uporać się z tym, że komputer nie widzi st linka jako normalnego portu com, przez co nie potrafię "wybrać" portu w trakcie wgrywania programu. Pierwsza sprawa. W Twoim zestawie (ten STlink i płytka) nie ma i nie będzie żadnego COM w komputerze dopóki sobie go sam fizycznie nie dołożysz. Funkcjonalność że w STlink jest dodatkowo COM występuje...
Problem mam następujący. Ustawiłem, żeby procesor odbierał ramki przez USARTA na przerwaniu i w tym przerwaniu sprawdzał czy z nią wszystko ok. Kod całęgo przerwania wygląda tak: void USART1_IRQHandler(void) { u8 ReceivedByte; extern ReceivingFrame; extern ReceivingHeader; extern MultinetRun BufStruct; extern RxIndex; extern TxIndex; extern...
Zaletą ATmegi/ATtiny jest to, że występują w obudowach DIL, pasujących do płytki uniwersalnej (łatwa do lutowania), czy stykowej (nie wymaga lutowania), jakkolwiek tańsze są w obudowach SMD (te niestety wymagają odpowiednich płytek, i ich lutowanie jest trudniejsze, jakkolwiek są gotowe płytki do wlutowania układu SMD tak, by potem z taką płytką móc...
Witam, Próbuje skomunikować ze sobą STM32F4 z Arduino UNO po UARTcie. Skonfigurowałem UART1 i płytka komunikowała się bez problemu z Arduino. Lecz do mojego projektu potrzebna jest komunikacja przez UART2 (piny PA2-TX i PA3-RX), po skonfigurowaniu UART2 i podłączeniu do do Arduino nie mogę odczytać żadnych danych. Jeżeli podłącze UART1 z UART2 na płytce...
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...
tplewa: Widziałeś przykład od STM? Tam nie ma ani jednego rozkazu przesłania czegokolwiek przez USB. Są włączone przerwania od USART1 i USB, są instrukcje inicjalizacji i to wszystko. Nie jarze jak to w ogóle ma działać? Z tego co wywnioskowałem, to ten przykład pomimo tego, że nazywa się virtual com, po prostu służy jako kowerter COM -> USB. Bo niby...
Napisałem program obsługujący komunikację RS232 dla płytki STM32 P103: - dokumentacja płytki https://www.olimex.com/dev/pdf/ARM/ST/ST... - schemat https://www.olimex.com/dev/images/ARM/ST... Niestety łącząc docelowo przez konwerter RS232 -> RS485 i podłączając do serwomechanizmu RS28 dynamixel podłączyłem raz zasilanie 15V,...
Posiadam 2 układy: - hy-smart stm32 na STM32F103 - urządzenie na attiny2313 oba udało mi się ładnie dotychczas ogarnąć, oba pracują poprawnie, jednak pozostaje ostatni krok - połączyć je. Jako, że hy-smart oraz attiny mają uart to na ten protokół padł wybór. Niestety mimo wielu podejść nie udało mi się wysłać poprawnie pakietu. Gdzie robię błąd? Tak...
[syntax=c]void RCC_conf(void) { RCC->CR |= (1<<HSION); // włącz taktowanie z HSI po resecie while(!(RCC->CR & ((1<<HSIRDY)))); // czekaj, aż HSI będze gotowe RCC->CR |= (1<<HSEON);// HSE ON while(!(RCC->CR & ((1<<HSERDY))));// czekaj, aż HSE będzie gotowe FLASH->ACR |= (1<<PRFTBE);// Przygotuj bufor...
Początek programu FreeRtos wygląda tak: /* Private define ----------------------------------------... #define LED_TASK_STACK_SIZE ( configMINIMAL_STACK_SIZE ) #define LCD_TASK_STACK_SIZE ( configMINIMAL_STACK_SIZE ) #define USART_TASK_STACK_SIZE ( configMINIMAL_STACK_SIZE ) #define LED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define...
Cześć, od 2 dni zmagam się z modułami NRF24L01 i dwoma płytkami STM32. Płytki STM32 NUCLEO L053R8 i STM32F103 wykorzystujac biblioteki HAL i cubemx. Niby oba układy zwracają poprawne rejestry : https://obrazki.elektroda.pl/1575646300_... Ale sama komunikacja w sobie nie działa. Nie odbieram żadnych pakietów. PYTANIE - czy w biblioteka...
Witam ponownie. Uruchomiłem USART na stm32f4 chodzi pięknie . Teraz testowo chce wysłać ciąg 1,2,3 z wykorzystaniem DMA i niestety pomimo moich starań ramka przesyłana jest tylko raz. W czym leży problem. [syntax=c] void usartSetup (void) { RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; // enable clock for GPIOD RCC->APB1ENR |= RCC_APB1ENR_USART2EN; // enable...
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...
Cześć, Projekt zaraz będę konfigurował od początku. Fakt, podałem za mało danych, wybaczcie, skrajna nerwica mnie na to wzięła. Od początku: Używam SW4STM32, ale chciałbym od tego odejść mocno, bo za dużo automatów i za mało szczegółów, może dlatego, że nie potrafię tego wszystkiego ogarnąć. Kompilatora używałem poprzez naciśnięcie "build". W ustawieniach...
No wiec tak, te dwie rzeczy są takie same w obu twoich przykładach i ich nie zmieniałem: __main_stack_size = 0; __process_stack_size = 1024; Przedstawiam poniżej to co teraz mam w moim projekcie: STM32F103RC_rom.ld [syntax=c]/*****************************... * author: Freddie Chopin, http://www.freddiechopin.info/...
Podłączasz i nic się nie pali :) W większych modelach FT są USART1, 3-5
Z DMA powinno być łatwiej a z pewnością mniej obciąża CPU. Oczywiscie ze nie. Jak zwykle kol. (at)LChucki wprowadza w błąd. Dla 2 znaków oczywiście to nie ma sensu. Trzeba po stronie odbierającej wykrywać koniec transmisji (np poprzez IDLE, przekróecenie bufora itd itd). Do tego trzeba zaimplementować odpowiednie mechanizmy synchronizacyjne. Sądząc...
Przerwania, w odróżnieniu od starych ARMów są w całości zarządzane przez ARM'a czyli CortexMx. W dokumentacji ARM znajdziesz opisy rejestrów i jako to działa. Każdy producent, taki jak ST zmienia znaczenie linii przerwań, definiując je po swojemu za wyjątkiem kilku pierwszych zarezerwowanych przez ARM. Ponadto, Cortex'y mają możliwość nadania przerwaniom...
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...
Embedded boot loader The embedded boot loader is located in the System memory, programmed by ST during production. It is used to reprogram the Flash memory with one of the available serial interfaces: ● In low-, medium- and high-density devices the bootoader is activated through the USART1 interface. ● In XL-density devices the boot loader...
Spróbuj tak: [syntax=c]void startUSARTDMATransferTx(uint8_t * buffer) { DMA1_Channel4->CCR &= ~DMA_CCR1_EN; DMA1_Channel4->CMAR = (uint32_t)buffer; DMA1_Channel4->CNDTR = BUFFER_SIZE; GPIO_SetBits(GPIOA, GPIO_Pin_8); USART1->SR &= USART_FLAG_TC; DMA1_Channel4->CCR |= DMA_CCR1_EN; }[/syntax]
Ale nie każdy od 0. Ja np. bardzo rzadko. Bo mi się po prostu nie chce. Dobrą metoda na znalezienie przykładów w internecie jest wpisywanie do wyszukania nazw rejestrów. Wpisywanie tekstów w stylu "STM32 code UART" przynosi efekty w postaci znalezienia kodów na bibliotekach od STMa. Czyli nie to co byśmy chcieli. Ale jak się wpisze "STM32 USART1->CR1"...
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.
Na moje oko to nie ma prawa działać poprawnie. W tym kodzie praktycznie wszystko jest źle. Funkcja callback jest wołana po odebraniu danych do bufora, wcześniej przekazanego przy wywołaniu Receive. Ty nie bierzesz danych z bufora, do którego zapisała je obsługa przerwania z HAL, za to kolejno wielokrotnie odczytujesz RDR, nie wiedząc, co właściwie z...
By jednak się definitywnie upewnić czy niedziałanie programu wynika z zatrzaśnięcia stanu wysokiego z pinu BOOT0 podczas resetu, moim zdaniem warto by było, do egzemplarza płytki, który nie działa, spróbować "zagadać" z programu "STM32 Flash loader demonstrator" poprzez USART1, Jeśli Boot0 jest w stanie wysokim to ważne jest w jakim stanie jest Boot1,...
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....
Cały czas jednak nie ogarniam tego, dlaczego jeżeli chce pobrać dane z IrQHandler z tablicy gpsread do tablicy RxBuffer w funkcji niżej, to wgl nie moge skopiować danych nawet zwykłym for'em? [syntax=c]void USART1_IRQHandler(void) { //odbiór danych if((USART1->ISR & USART_ISR_RXNE) != RESET) { uint8_t data = USART1->RDR; gpsread[wpp] = data; if(++wpp...
stm32 usart1 przerwać stm32 usart1 przerwanie usart1 atmega128
potencjometr pieca junkers rozbierać aparat pompy paliwa isuzu
Lenovo – przywracanie ustawień fabrycznych laptopa, Windows 10/11, przycisk Novo, OneKey Recovery Jeep Grand Cherokee – niedziałające podgrzewanie foteli, diagnoza i typowe usterki