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_...
Witam! Nie mogę dojść do tego co się dzieje. W zamierzeniu program powinien czekać na ustalone znaki z USARTa i odpowiedzieć kilkunastoma znakami tekstu. Objaw jest taki, że po otrzymaniu 1 znaku odpowiada trzema prawidłowymi znakami a potem siedzi w przerwaniu z którego nie może się wykaraskać (tzn. nie robi nic innego). Zdarzyło mi się też zaliczyć...
Witam, Chcę zrobić coś takiego: strumień danych z RX kanałów USART1 oraz USART2 ma być połączony w jeden strumień i przesyłany na bierząco kanałem USART3. Chciałem to zrobić na przerwaniach i czymś w rodzaju DIY bufora cyklicznego - USARTY w przerwaniach ładują do jednego bufora i inkrementują wskaźnik, natomiast w nieskończonej pętli w main.c jest...
mam ustawione przerwanie zewnętrzne ustawione na wyzwalanie zboczem opadającym i narastającym w funkcji obsługi przewania zapisuję sobie do bufora: void EXTI0_IRQHandler(void) { //Check if EXTI_Line0 is asserted if(EXTI_GetITStatus(EXTI_Line0... != RESET) { Buffer[iWriteIdx] = 'I'; GoToNextElement(&iWriteIdx);...
Witam! Od kilku dni poznaje uC ARM Cortex-M. Do nauki wykorzystuje płytkę stm32f0discovery oraz darmowe IDE CooCox. Mój problem polega na uruchomieniu uarta. Od wczoraj męczę się z jego uruchomieniem i kombinuje na wszystkie sposoby a linia TX nadal milczy. Poniżej kod programu bez użycia bibliotek ST. [syntax=c] #include "cmsis_boot/stm32f0xx.h" #include...
Od jakiegoś czasu zmagam się z problemem wysłania danych przez UART co określone chwile czasowe. Dokładnie chodzi o to iż jeśli wywołuje funkcje: void uart1WriteByte (t_int8u byte) { while (!(USART1->SR & USART_FLAG_TXE)); USART1->DR = byte; } w pętli głównej programu while(1) { uart1WriteByte(0x77);...
Masz rację, że szkoda całego tygodnia na taki problem:). Oto cały kod: Main: podłączenie do STM'a wygląda nastepująco: RxD do PA10, TxD do PA9. Więc nadal stoję w miejscu, ale nie poddaje się;).
Witam Napotkałem się z problemem jak w temacie a dokładniej. Jeżeli chce uruchomić program przez przycisk debug albo wgrać go przyciskiem download w keil,u to program startuje prawidłowo. W momencie kiedy wyłączę i włączę ponownie zasilanie wszystko startuje prawidłowo poza uart em. tzn przerwanie do niego nie jest wywoływane. Testowałem na kilku egzemplarzach...
Witam, mam problem z komunikacją z czujnikiem ciśnienia HP02S. Szukałem swojego problemu na forum, ale nie znalazłem. Udało mi się bez problemu odczytać dane z EEPROMu. Udało mi się też skomunikować z czujnikiem, ale do czasu. Sekwencja odczytu ciśnienia wygląda następująco (pseudokod): [syntax=c] i2c_start(); i2c_write(0xEE); i2c_write(0xFF); i2c_write(0xF0);...
Witam, Postanowiłem opanować DMA. Zacząłem od USART'a i chciałbym to zrealizować. Moje problemy: 1. wysyłanie w konkretnym momencie(np. po naciśnięciu przycisku) 2. odbieranie danych 3. odpowiedni dobór DMA_BufferSize - wskazówki Konfiguracja: RCC_APB2PeriphClockCmd(RCC_APB2Perip... ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Perip...
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 *---------------------------------------...
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...
Uruchomiłem bibliotekę FatFS na STM32L i karcie microSD o pojemności 512MB. Na tej karcie wszystko działa. Jednak próby uruchomienia innych kart (2GB, 16GB) zakończyły się niepowodzeniem. Funkcja f_mount po wywołaniu zwraca wartość: FR_OK = 0, /* (0) Succeeded */ Następnie próbuję utworzyć plik i tu pojawia się błąd: FR_DISK_ERR,/* (1) A hard error...
Program działa, ledy się świecą. Oto kody: stm32f4_discovery_lcd.c : [syntax=c] #include "stm32f4xx.h" #include "stm32f4_discovery.h" #include "stm32f4_discovery_lcd.h" #include "fonts.c" /** (at)addtogroup Utilities * (at){ */ /** (at)addtogroup STM32F4_DISCOVERY * (at){ */ /** (at)defgroup stm32f4_discovery_LCD * (at)brief This file includes the LCD...
Witajcie. Witajcie, mam spory problem. Próbuje zacząć zabawę z STM32F4. Zainstalowałem sobie CooCox IDE 1.51 do tego dograłem sobie - GNU Tools ARM Embedded (4.6 2012q2). Próbuję się z tym bawić, bo muszę przez STM32 zaprogramować USART, wyświetlacz itd. Ciężko to widzę, ale próbuję. Ogólnie mam wyświetlacz taki: Wszystko przygotowane do podpięcia,...
Witam, W taki sposób deklaruje komunikację z USART: [syntax=c]RCC_AHBPeriphClockCmd(RCC_AHBP... ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_US... ENABLE); USART1_Configuration(); NVIC_EnableIRQ (USART1_IRQn); void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Connect PA9 to USART1_Tx */ GPIO_PinAFConfig(GPIOA, GPIO_PinSource9,...
Do zaoferowania mam fabrycznie nowe procesory STM32 Cortex-M3 STM32f103RBT6 Procesor ten jest reprezentantem serii "Performance Line" (STM32F103) – mikrokontrolery o bogatszym wyposażeniu niż wersje F101 i F102, przystosowane do taktowania sygnałem o częstotliwości do 72 MHz, mają wbudowane m.in. interfejsy SDIO, CAN, I2S oraz timery PWM (mogą...
Do sprzedania mam moduł rozwojowy oparty o 32 bitowy procesor Cortex-M3 STM32F103VCT6: Procesor ten jest reprezentantem serii "Performance Line" (STM32F103) – mikrokontrolery o bogatszym wyposażeniu niż wersje F101 i F102, przystosowane do taktowania sygnałem o częstotliwości do 72 MHz, mają wbudowane m.in. interfejsy SDIO, CAN, I2S, przetworniki...
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...
Witam. Natknąłem się na problem dotyczący ustawienia USARTów 2 i 3 w tryb synchroniczny. Gdy ustawię CPOL=0 i CPHA=1 ginie mi przebieg zegarowy na wyjściu SCLK. Gdy ustawię CPOL=1 zegar jest w porządku. Oba USARTy są przemapowane do portu D. Srodowisko: RIDE7, procesor STM32F103VC6 Dokładnie wygląda to tak: USART_ClockInitStructure.USART_Clock = USART_Clock_Enable;...
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++...
Witam, Żadne rozwiązanie z innych tematów nie działa. Posiadam płytkę STM32VLDISCOVERY, zasilam ją z portu USB. Dodatkowo posiadam konwerter na FT232, konwerter działa poprawnie, echo jest przesyłane. Korzystam z programu Terminal v1.9b. Program na odebranie 49 ma zapalać diodę LED a po odebraniu 50 ma gasi diodę. Proszę o pomoc w znalezieniu błędu....
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...
Witam, w tym temacie opisałem partyzanckie podejście - gdy się nad nim męczyłem zacząłem czytać o DMA. Pytanie: czy jest możliwe z użyciem wbudowanej w STM32 jednostki DMA zrealizowanie: weź dwa strumienie danych wejściowych z USARTów i wyślij trzecim?
Witam. Mój problem pewnie wynika z małej jeszcze wiedzy z ARM, jednak liczę na waszą pomoc. Po inicjacji układu, włączeniu USART1, GPIOA, NVIC, USART dzieje się coś dziwnego. Mianowicie po linijce USART_Init(USART1, &USART_InitStructure); i wcześniejszym ustawieniu NVIC następnym krokiem jest przerwanie USART1_IRQHandler i działa if na USART_GetITStatus(USART1,...
Witam, Mam problem a USARTem w STM32F103. Bardzo rzadko, ale zdarza się że gubi znaki. 1. Sprzęt: SIM900 <---UART4---> SRM32F103 <---USART2---> PC 2. Program: Inicjalizacja UART4: Opis: (1) - Zapisz każdy odebrany znak do bufora i wyślij do PC (2) - Jeśli trafisz na sekwencję Jeśli ktoś ma pomysł jak rozwiązać problem proszę o naprowadzenie....
Chcę w jakiś sposób okiełznąć USART, na razie bez DMA. Korzystam z gotowego przykładu, jednak pustki w terminalu. Fizycznie : GND przejściówki USB RS232 podłączony z GND disco, RX, TX kros. stm32f10x_usart.c [syntax=c] #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include <stdio.h>...
Witam, Próbuję uruchomić USART w STM moje funkcje to: [syntax=c] void init_USART1(void) { GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_US... ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP... ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;...
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....
Cześć piszę aplikację pod silnik krokowy wysyłam paczkę Period, Repetition Counter, 50 % Pulse. Bez konfiguracji USARTA program działa bez zarzutu inkremntowana jest wartość bufora DMA i przesyłana do timera. Jak mam konfigurację USARTA to nagle przestaje działać i silnik kręci się o stałych obrotach. Czy mógłby mi ktoś powiedzieć co robię nie tak ?...
Witam! przenoszę swój własny kod z STM32F303RE na STM32F303CB. USART teoretycznie taki sam. W plikach STM-a dla xC bitu M1 brak (ostatni jest 27) : [syntax=c]#define USART_CR1_EOBIE_Pos (27U) #define USART_CR1_EOBIE_Msk (0x1U << USART_CR1_EOBIE_Pos) /*!< 0x08000000 */ #define USART_CR1_EOBIE USART_CR1_EOBIE_Msk [/syntax] Jak sądzicie czy to...
Witam, Wykonałem sobie płykę pod STM32F103CBT6 i próbuję się z nim połączyć w jakiś sposób. Próbowałem JTAG'iem - nie widzi procesora. Próbuje RS'em - również się nie może połączyć. BOOT1 mam ustawione 0, BOOT0 - 1 . Jak zrozumiałem z PDF'a aby uaktywnić bootloader należy oprócz takiego ustawienia PINów BOOT, po włączeniu zasilania podać na NRST stan...
Witam Rozpoczynam zabawe z STM32 i napotkalem problem. Chodzi o uruchomienie USART2 i wyslanie znaku na terminal do PC. Rx i Tx mam podpiete do portu A PA2->Tx i PA3->Rx. Siedze z dokumentacja procesora ale jakos nie moge znalesc bledu w swoim kodzie. Moze co podpowiecie. Kompilator AtolicTruestudio Petla główna: [syntax=c] int main(void) { int...
Witam, Mam problem z realizacją przerwania z USART3 na STM32L152RBxx. W momencie wywołania przerwania debugger zatrzymuje się na funkcji default_handler(). Poniżej umieszczam kod: main: #include "stm32l1xx.h" #include "stm32l1xx_conf.h" #include <string.h> void GPIO_Conf(void); void RCC_Conf(void); void NVIC_Conf(void);...
Witam, otóż mam następujący problem: timer wywołuje mi okresowo procedurę wysyłającą na RS jakieś dane. Jeżeli resetuje układ przez złącze RST poprzez zwarcie do masy przyciskiem lub też poprzez programator wszystko działa prawidłowo - znaki odbieram na terminalu. Ale gdy układ z procesorem zostanie odłączony i ponownie załączony, USART przestaje wysyłać...
Cześć chcę napisać program obsługujący transmisję pomiędzy komputerem a mikrokontrolerem poprzez RS485. Wykorzystuje do tego celu układ max3483. Czytałem dokumentację ST w której proponowane są dwa rozwiązania co do zarządzania linią sterującą kierunkiem transmisji: 1. Wykorzystanie przerwania od USARTA-TC oraz przerwania od DMA TC. 2. Wykorzystanie...
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...
Witam, chciałbym przesyłać dane przez USART za pomocą DMA (STM32F4). DMA jest aktywowane w przerwaniu od TIM2 w odstępach co 100 ms. Program wykonuje się, natomiast dane nie są przesyłane. Wiem, że na pewno przerwanie od TIM2 działa poprawnie. Jeśli ktoś wie gdzie może być błąd/braki w konfiguracji proszę o odpowiedź. Z góry dzięki. Poniżej kod: [syntax=c]...
Witam, Mam mały problemik Przy transmisji przez DMA didaje mi 0xff na poczatku tansmisji 0xff Bez DMA problemu nie ma [syntax=c]USART2 -> BRR = (((FCLK / (8UL * SPEED)) << 4) | FRAC(FCLK, SPEED)) ; USART2 -> CR1 = (USART_CR1_TE | USART_CR1_RE | USART_CR1_UE | USART_CR1_OVER8); USART2 -> CR3 |= USART_CR3_DMAT; USART2 -> SR &= ~(USART_SR_TC);...
STM nie chce wysyłać danych,w rejestrze USART1->BRR nie przypisuje w ogóle wartości chyba, że zrobie to ręcznie. Po uruchomieniu progamu na analizatorze nic się nie wyświetla. Wrzucam kod, może ktoś znajdzie błęd albo poda wskazówke, która rozwiąże mój problem. Z góry dziękuje. [syntax=c]//BIBLIOTEKI #include "stm32l1xx_usart.h" #include "stm32l1xx_gpio.h"...
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...
Cześć, Chciałbym skonfigurować komunikację USART/UART między płytką STM32F769I-DISCO a komputerem z wykorzystaniem kabla USB, którym płytka jest połączona do komputera. Zestaw zgłasza się jako Virtual COM Port, ale nic nie wysyła jak się z nim połączę przez Tera Term. Nie wiem jak się za to zabrać, przeszukałem pół Internetu, przesiedziałem wiele godzin...
Hej, korzystam z USARTA na STM32L4. Podczas odczytu / wysyłu danych zakładam że szerokość ramki jest stała (4 bajty). Odczyt 4 bajtów jest prosty i z tym nie mam problemu. Projekt zakłada jednak, że raz na jakiś czas dane mogą przyjść niepełne - np. 2 lub 3 bajty. Z obsługą takiej sytuacji mam jednak problem. Chciałem do tego wykorzystać flagi [syntax=c]USART_ISR_IDLE[/syntax]...
STM32L073RZ: 1034 +157 stron Masz problem z ADC. Czy w związku z tym rozwiązania problemu będziesz szukał w rozdziale o ADC (49 stron), czy może na wszystkich ~900 pozostałych (np. w rozdziale o USART albo SPI)?
Witam, mam pytanie odnośnie portu USART w STM32. Projektuję płytkę, na której ma znaleźć się komunikacja po RS485. Chciałbym się dowiedzieć, czy włączenie linii RTS (CTS) portu UART będzie umożliwiało sprzętowe sterowanie przepływem na porcie RS485 (Master/Slave). PS. Oczywiście wiem, że sterowanie programowanie z użyciem GPIO też jest możliwe.
Problem mam chyba typowy. Oprogramowuje interfejs komunikacyjny. Jednym z poleceń tego interfejsu jest reset. Sprawa ma się oczywiscie odbywać tak, ze przychodzi ramka z poleceniem resetu, odsyłana jest ramka z ACK i następuje zerowanie. USART działa na przerwaniach. Jak wykryć kiedy ostatni bajt ramki opuścił bufor nadawczy? Teraz mam taki kod: USART_ITConfig(USART1,...
Witam Skonfigurowałem UART-a w STM32 do współpracy z DMA i teraz mam pytanko czy jest jakiś łatwy sposób na generację przerwania nie po skompletowaniu określonej liczby znaków tylko po nadejściu konkretnego znaku (znacznik końca ramki) ??
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...
Głupia sprawa... na stm32 nic jeszcze nie robiłem... nie mogę znaleźć w dokumentacji i internecie, a czasu mało... czy jeżeli używam interfejsu UART bez kontroli transmisji, to czy linie RTS i CTS (a także CK) tego interfejsu mogę używać jako standardowe linie IO (lub wykorzystywać inną funkcję alternatywną z ową nóżką związaną), czy raczej tak, czy...
Witam szanownych Kolegów! Dałem namówić(swoją drogą sam siebie) na jakiegoś ARMa. Wybór padł na STM32F100RB (na STM32VLDiscovery). Oczywiście na początku szok po zaglądnięciu do datasheetu. Tu sie ustawia wszystko. No i jak się da wszystko to są problemy dla początkujących. Do rzeczy: W TrueStudio utworzyłem projekt dla STM32_DISCOVERY. Zamieniłem plik...
Witam, Mam problem z komunikacją STM32 z komputerem. Mam płytkę tego typu Chciałem napisać sobie najprostszy program do komunikacji z komputerem. Jak na razie napotkałem pewna barierę. Skonfigurowałem procek według książki Pana Paprockiego i przy użyciu standardowych bibliotek do STM. Niestety procek nie zagadał do komputera :( W sumie 3 razy udało...
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...
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...
Witam, Mam problem z komunikacją przez USART, będąc w debugu wykonując poniższą pętle krok po kroku (step into) wszystko jest ok, dane są wysyłane i odbierane. Natomiast po wciśnięciu run czy step over czasami zostanie wysłany i odebrany [Tx i Rx zwarte] jeden, maksymalnie trzy bajty(najczęściej liczba wysłanych jest o 1 większa) i hard fault, czasami...
Witam, Mam taki banalny problem, a mianowicie używam do wysyłania danych przez USART DMA w trybie normal [syntax=c]// data transfer mode DMA_InitStruct.DMA_Mode = DMA_Mode_Normal; [/syntax] No i chciałbym po złożeniu ramki kolejny raz wystartować transfer z buffora Czy muszę robić DMA_DeInit a potem DMA_Init czy jest jakieś lepsze podejście. No i jeszcze...
Muszę dopiąć się do czujników ciśnienia, pracujących na magistrali RS-485 w trybie Modbus. Parametry transmisji BaudRate 9600, DataBits 8, Parity None, StopBits 2. Napisałem taką funkcję inicjalizacji portu USART2 i nie wiem czy jest wszystko co potrzeba. Dla TX ustawiłem port jako Alternate_Function_PP_10MHz, dla RX jako Input_Floating. Czy tak powinno...
Witam, piszę program na STM32 F100RB(Discovery), który ma za zadanie dane odebrane od GPS(USART2) wysłać przez moduł radiowy(USART1). Nie wiem dlaczego, ale po przyjściu przerwania od odbioru USART2 program ucieka do przerwania HardFault_Handler(void) . W debuggerze całość działa poprawnie, natomiast w trybie "run" problem ten sie pojawia. Dodatkowo...
Witam, Jak w temacie. Program zrobiłem tak, że jak dostanie dane z rs232, to weźmie je pod uwagę, a jak ich nie dostanie, to ich nie weźmie pod uwagę i pójdzie dalej. Mój problem polega na tym, że nie idzie dalej. Cała komunikacja jest na pewno ok, gdyż normalnie wysyłam i odbieram dane, gdy wiem, że dojdą, program zacina się w momencie, gdy odetnę...
Witam, muszę przesłać przez USART dane z czujnika, dane zapisywane są jako jako 16-bitowy int. USART mam dobrze skonfigurowany, transmisja wykonuje się w przerwaniu. Stworzyłem tablice: [syntax=c]char buforTx[26]={"X: Y: Z: \n\r"};[/syntax] index tablicy inkrementuje się aż do napotkania znaku CR. chcę wpisywać do tablicy buforTx odczytane dane z czujników....
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...
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...
Witajcie, moją przygodę z STM32 zacząłem stosunkowo niedawno, praktycznie od samego początku staram się stworzyć "protokół" do bezawaryjnej komunikacji po USARcie, który wykorzystany będzie do transmisji danych z małego robota typu LineFollower. Nie mam większej wiedzy, ani doświadczenia z tej dziedziny. Stworzyłem trochę kodu na podstawie własnych...
Witam, Korzystam z Atollic TrueSTUDIO, próbuje skomunikować komputer i procesor STM32F107 poprzez RS232. Jeżeli korzystam z wewnętrznego HSI lub PLL z HSI, komunikacja działa poprawnie, kłopoty pojawiają się gdy chcę skorzystać z zewnętrznego kwarca lub PLL zasilanego HSE. korzystając z funkcji: RCC_ClocksTypeDef Clk; RCC_GetClocksFreq(&Clk); int sys_clk;...
Witam, W taki sposób konfiguruje USART: aaaaa=100,bbbbb=2000 I chcę uzyskać: [syntax=c]int a = 100; int b = 200;[/syntax] Próbowałem się bawić z tą funkcją: [syntax=c]void USART1_IRQHandler (void) { u16 c; if (SET == USART_GetFlagStatus (USART1, USART_FLAG_RXNE)) { c = USART_ReceiveData (USART1); USART_SendData (USART1, c); while (RESET == USART_GetFlagStatus...
Witam serdecznie. Jestem początkującym w tym temacie i mam taki problem. Przy konfiguracji USART należy jego piny GPIO odpowiednio skonfigurować. Tu jest moje pytanie gdzie mam znaleźć informacje w jakim trybie ten pin ma pracować. Bo jeden pin ma byc jako wyjście ale nie wiem czy z podciągnięciem czy nie a drugi jako funkcja alternatywna. A jak chcę...
Witam Posiadam płytkę STM32F4 Discavery chciał bym uruchomić USART6 ale przesyła mi złe dane. Sprawdzałem już zegary ustawienia usart ale nic mi już nie przychodzi do głowy. Zegary ustawione są przy pomocy funkcji SystemInit(). Cały plik sytem_stm32f4xx.c generowałem przy pomocy narzędzia STM32F4xx_Clock_Configuration_V1.1.0 (w excelu). Chcę użyć USART6....
Witam, Da się w jakiś sensowny sposób monitorować stan lini RX (czy stan wysoki, czy niski) przy włączonym USART? Na szybko zrobiłem coś takiego, że zmostkowałem zewnętrznie RX z innym wejściem, które ustawiłem jako Open Drain i No pull up. Po czym wyłączam USART i odczytuje stan tego wejścia, i znów załączam - ale słabe rozwiązanie. pozdrawiam
Chciałbym zralizować transmisje RS485 na stm32f103rb, gdyż mam pod ręką konwerter usb-rs485 oraz max3485. Moja ramka składa się z 8 bajtów.Jeśli chodzi o odbieranie to do mojego bufora dane wpadają poprawne czyli prawdopodobnie wszystkie ustawienia fizyczne mam poprawne. Niestety po kilku wysłaniach danych z PC z rzędu do arm pojawia się przekłamanie...
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...
Dzień dobry, mam problem z odbieraniem danych w terminalu poprzez USARTa. Pracuję na STM32f052R8 do tego konwerter rs232 pl2303. Wysyłając jeden znak terminal czasem odbiera dobrze, a czasem inne znaki. Przy wysłaniu słowa "Test" pojawia się Bluescreen. Moje pytanie do Was, co powoduje Bluescreena ? Wadliwy kod czy sterowniki ? I dlaczego terminal wyświetla...
Czołem, Mam problem z przesyłem danych USARTEM. Mam taką o to funkcję: [syntax=c] void usartSend(char* data) { uint32_t timeout = 100000; while (*data != 0x00 && timeout > 0){ if (USART2->SR & USART_SR_TXE){ USART2->SR &= ~USART_SR_TXE; USART2->DR = *(data++); timeout = 100000; } timeout--; } } [/syntax] Jeśli wyślę dwa stringi, z których drugi jest...
Witam, Mam problem z uruchomieniem USARTa na mikrokontrolerze STM32L100RC. Kod pisałem w oparciu do Reference Manual, oraz poradnik dostępny na tym forum. Czy jest w stanie wskazać mi błąd, bo mi już brakuje pomysłów. Kod: [syntax=c] //Konfiguracja komunikacji po USART1 void USART_Conf() { uint16_t divider; //Odblokowanie zegara dla USART1 RCC->APB2ENR...
Cześć! Mam problem z usartem. Nie wiem gdzie mam błąd... Wysyła tylko "S" zamiast całe "SIEMA". Byłbym wdzięczny za pomoc. Z góry dzięki! [syntax=c]#include "stm32f4xx.h" #include "misc.h" #define READ_BUFFER_LEN 64 #define WRITE_BUFFER_LEN 256 char readBuffer[READ_BUFFER_LEN]; char writeBuffer[WRITE_BUFFER_LEN]; short rBufferEmptyIndex = 0; short rBufferBusyIndex...
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...
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 serdecznie. Zgodnie z tym: i tym: przy pomocy tego programu: Próbuję wysyłać dane z mikrokontrolera do termiana, ale ten niczego nie odbiera. Proszę o wskazówkę. Jestem początkujący. Dodano po 5 Już wiem w czym tkwił problem. Gdy program uruchamiam krokowo i jestem w petli for to dane się wysyłają. Za szybko ta pętla działa i dane za szybko są...
Witam, Mam taki kod: DD DD DD ... Próbuje jednak użyć przerwań aby odczytywać to co wpada na USART1, który przemapowałem sobie na PB6/7. Drugie urządzenie na pewno działa bo jak podłącze do przejściówki RS232 to otrzymuje dane w terminalu. Problem leży pewnie w NVIC_InitTypeDef, ale próbowałem różnych sposób i niestety ale każdy powoduje zatrzymanie...
Witam serdecznie, Robię hexapoda 18xservo, wykorzystuję do tego niezależne kanały TIM2,3,4,5 i TIM12. Napotkałem problem z kanałem 2 i 3 dla TIM5, nie działa. Żeby nie wrzucać całego programu i nie zaburzać czytelności, przygotowałem mini aplikację testową dla TIM5 PWM, podobnie channel 1 i 4 działa, channel 2 i 3 nie działa. Czy dla pinów PA1 i PA2...
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...
Witam ponownie, mam teraz niezwykłą zagadkę, tak więc posklejałem kawałek kodu który obsługuje USART + Ethernet - program polega jedynie na tym że jak odbierze jakąkolwiek ramkę Ethernetową to powiadomi o niej i wyśle przez RS-232 MAC address nadawcy i odbiorycy (przy czym tutaj kwestia estetyczna jest niedopracowana) - tak czy inaczej kod ten przetestowałem...
Witam, Próbuje uruchomić komunikacje uart w przerwaniu, no i oczywiście mam problem z tym, że nie działa :o Wygląda na to, że przerwanie wogóle nie jest wołane. Czy ktoś z szanownych forumowiczów mógłby zerknąc w kod i podzielić się informacją dlaczego ten program nie ma szansy działać? USART_SendData(USART1, 'X') do main'a działa ok. Jak również użycie...
Witam, otóż zasilam owy wyświetlacz napięciem ±3.3V, a także stany logiczne są na tym poziomie. Pin kontrastu jest podpięty bezpośrednio do masy, kontrast wizualnie wydaje się być dobrany idealnie. I problem w tym, że pixele bardzo wolno się zapalają.(wyszło mi ok. ~300ms na pełne zaświecenie pixela) Czy jest to jest maksimum wyświetlacza, czy...
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...
Witam, Zacząłem zabawę z STM32, kupiłem najtańszy moduł z procesorem STM32F103C8T6, programuje z użyciem STLink v2 w środowisku AC6 STM32 (eclipse) biblioteka StdPeriph. Prosta obsługa portów działa, kompiluje i debugguje poprawnie. Jednak jest problem z UARTem, ciągle łapie śmieci (realTherm pokazuje błąd ramki). Konfiguracja baudrate itd na PC i uC...
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...
Chciałbym się poradzić doświadczonych w przenoszeniu kodów z niższej rodziny na wyższą. Poniżej zamieszczam chyba najbardziej wrażliwy na przeniesienie fragment kodu. [syntax=c] // inicjalizacja taktowania PLL-e itp... RCC_DeInit(); RCC_HSI_Config(); // konfiguracja wyprowadzeń fpga_Pins_configure(); // konfiguracja przerwań NVIC_Configuration(); LCD_Pins_configure();...
Hejka, od niedawna mam płytkę stm32 discovery. Próbuję już 2 dzień i mi nie działa transmisja po rs232.. układzik łączący z kompem zrobiłem na max3232 i jak sprawdzam echo (rx z tx) to wszystko ładnie śmiga. A jak podłącze to do pinów PA9 i PA10, to cały czas otrzymuję znaki puste. Wydaje mi się, że program poprawnie napisałem.. [syntax=c] #include...
Witam, programuje STM32L151CB, i podczas komunikacji z portem szeregowym napotkałem dziwny problem. (Używam bibliotek od ST) ustawiłem cały RS zgodnie z zaleceniami i przykładami (conf. 9600 8N1 USART1, PA9 i PA10). Po czym na terminalu pojawiały mi się krzaczki. Po dłuższej chwili walki okazało się że ustawiając prędkość na terminalu = 4800 czyli połowę...
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...
W Tera Term mam ustawione 8-bitów danych, bez kontroli parzystości, 1 bit stopu. Szybkość transmisji jest ta sama. Odczytywanie w Tera Term "Hello world" działa. Coś takiego napisałem ale nie działa. Jest w stanie ktoś coś podpowiedzieć? [syntax=c]void send_char(char c) { while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); USART_SendData(USART2,...
Witam Od jakiegoś czasu próbuję przeprowadzić odbiór danych z UART z wykorzystaniem DMA. Jeśli chodzi o konfigurację UART to jest ona przeprowadzona prawidłowo, ponieważ mogę dane wysyłać jak i odbierać ręcznie. Problem pojawia się przy próbie zaprzęgnięcia do odbioru DMA. Dane w buforze odbiorczym nie są aktualizowane (po zainicjalizowaniu bufora wartościami...
Witam, podłączyłem do mojej STM moduł Bluetooth, następnie chcąc wysłać do płytki przez program RealTerm dane np, liczbę 1 , zostaje ona zapisana w pamięci uC jako 254, 2 jako 252, 3 jako 254 itd. Dopiero przy 8 następuje zmiana na 254 , a później ponownie wraca naprzemiennie 252 i 254 . USART na płytce mam skonfigurowane w sposób podany przez producenta...
Tu jest fragment całego programu : [syntax=c]#include "stm32f0xx.h" #include "KS0108.h" #include "eeprom.h" #define PRZYCISK1_PORT GPIOF #define PRZYCISK1_PIN GPIO_Pin_4 #define PRZYCISK2_PORT GPIOF #define PRZYCISK2_PIN GPIO_Pin_5 #define STACYJKA_PORT GPIOA #define STACYJKA_PIN GPIO_Pin_2 #define LPG_PORT GPIOA #define LPG_PIN GPIO_Pin_3 #define PB_PORT...
Witam. Próbuję odpalić program UART na STM32 – odbieranie danych z kursu. W kodzie nie mam żadnych błędów, ale po naciśnięciu klawiszy nic się na terminalu nie wyświetla. Gdzie może być problem? Używam Tera Term, przy wysyłaniu ciągu bajtów przez UART wszystko działało. Próbowałem wcisnąć a i enter, ale nic to nie dało. USART_BaudRate = 115200...
Witam, mam program, który po naciśnięciu klawisza na klawiaturze wyświetla dany znak w terminalu. W jaki sposób zmodyfikować program, żeby po ciśnięciu np. A przez mniej niż 10 sekund był wysyłany napis A, a po wciśnięciu A przez 10 sekund był wysyłany napis A10? [syntax=c] #include "stm32f10x.h" #include "stm32f10x_usart.h" #include <stdio.h>...
Handler: [syntax=c] void HardFault_Handler(void) { HAL_DbgUartInit(); // __asm volatile ( " tst lr, #4 \n" " ite eq \n" " mrseq r0, msp \n" " mrsne r0, psp \n" " ldr r1, [r0, #24] \n" " ldr r2, handler2_address_const \n" " bx r2 \n" " handler2_address_const: .word prvGetRegistersFromStack \n" ); while(1); } [/syntax] UART Init: [syntax=c] void HAL_DbgUartInit()...
Witam, Od razu pisze że nie jestem mistrzem w pisaniu programów, a z stm zaczynam swoją przygodę. Chce wyłączyć przerwanie od EXTI na przykład po obsłudze tego przerwania: Do wyłączenie/wyłączenia przerwania np. od Timera jest TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); //TIM IT enable Generalnie chodzi mi o to że muszę zrobić detekcje sekwencji...
Zmieniłem na podane przez Ciebie funkcje: [syntax=c]#include "stm32f4xx.h" #include <stdio.h> #include "stm32f4xx_spi.h" #include "main.h" #include "gpio.h" #define CS_0 GPIOE->ODR &= ~(1<<3); #define CS_1 GPIOE->ODR |= (1<<3); void spi_init( void ) { RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;...
Funkcja SystemInit jest wywoływana w obu przypadkach na początku main. Podałem ją w kodzie. Może tutaj faktycznie jest problem. Pliki startup.s Keila i Cube się różnią. Zauważyłem, że funkcja SystemInit jest wywołana w pliku dla Cube. Niestety te pliki to dla mnie czarna magia. Czytałem o nim artykuł waszego kolegi z elektrody. Tak wygląda plik startup...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...