Wyglądają dobrze. 4\/3!!
Witam Używam płytki STM32F4 Discovery. Muszę odczytać sporą ilość danych, więc UART wydaje się jedynym rozsądnym rozwiązaniem. Poniżej kod, którego używam (sugerowałem się kodami z różnych stron). [syntax=c]#include "stm32f4xx.h" #include "stm32f4_discovery.h" #include "misc.h" // I recommend you have a look at these in the ST firmware folder #include...
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)...
Witam też mam problem z uartem. Komunikacja jest ale z błędami. Siedzę już za długo nad tym: [syntax=cpp] void usart__ini() { RCC->APB2ENR|= RCC_APB2ENR_USART1EN ; //wlacz uart1 taktowanie RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN ; //aktywuj i w porcie B GPIO_PinConfigure ( GPIOB ,7 , GPIO_MODE_AF ,GPIO_OUTPUT_PUSH_PULL ,GPIO_OUTPUT_SPEED_50MHz , GPIO_NO_PULL_UP_DOWN);...
Włączanei UARTa przed jego skonfigurowaniem to nie najlepszy pomysł, a właśnie tak postępujesz. Masz kod (a dokładniej - tablicę z adresami i wartościami rejestrów) na STM32F0 Na F4 będzie prawie to samo: [syntax=c]{&RCC->APB2ENR, RCC_APB2ENR_USART1EN}, // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN},// GPIOC, GPIOA...
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();...
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...
Mam za zadanie wysyłac paczke 18 bajtów danych przez 2 uarty co 10us. Wysyłanie w pętli main działa ale zabiera 95% wykorzystania CPU i uniemożliwia dalszą prace. Próbuje skonfigurować transfer danych z pamięci do UARTów przez 2 osobne kanały DMA wyzwalanego przez timer no i nic nie działa. Może ktoś podpowie jak do tego podejść? Tutaj konfiguracja...
Próbuje uruchomić przerwania: vector.c wygląda tak [syntax=c]static void __Default_Handler(void) __attribute__ ((interrupt)); static void __Default_Handler(void) { while (1); } /* +=======================================... | assign all unhandled interrupts to the default handler +=======================================...
Dodano po 3 I aby w razie czego nie płakał że nie ma: Możesz to zrobić w C też oczywiście: [syntax=armasm] .weak NMI_Handler .thumb_set NMI_Handler,Default_Handler .weak HardFault_Handler .thumb_set HardFault_Handler,Default_Handler .weak MemManage_Handler .thumb_set MemManage_Handler,Default_Handler .weak BusFault_Handler .thumb_set BusFault_Handler,Default_Handler...
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....
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...
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...
[syntax=armasm]g_pfnVectors: .word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler .word 0 .word PendSV_Handler .word SysTick_Handler /* External Interrupts */ .word WWDG_IRQHandler /*...
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...
przerwanie: [syntax=c]void USART1_IRQHandler() { if(USART1_SR_RXNE_bb) { RXD1_buffer[RXD1_head] = USART1->DR; RXD1_head = (RXD1_head + 1); if (RXD1_head == RXD1_tail) { // tutaj możemy w jakiś wygodny dla nas sposób obsłużyć błąd spowodowany // próbą nadpisania danych w buforze, mogłoby dojść do sytuacji gdzie // nasz wąż zacząłby zjadać własny ogon...
W CoIDE obsługa NVIC jest schowana w "misc.h" z Repozytorium. Taka logika ;) A gdybyś od razu napisał, że korzystasz z STM32F4Discovery, to nie musiałbyś się tak zastanawiać. Przecież na tej płytce linia TX jest na sztywno połączona z VBUS portu USB i wyjściem układu kontroli zasilania na tym porcie, a linia RX jest na sztywno spięta z ID. Jeżeli przypadkiem...
Załączam pliki startowe. Może coś w nich jest źle? entry.s .syntax unified .thumb .global vectors .global defaultHandler .section .isr_vector, "a" // Lista wektorow przerywan vectors: .word _end_stack .word resetHandler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word...
Ale to nie problem bo w STM32 możesz w rejestrze UARTu ustawić negację na pinie. Tylko w niektórych rodzinach. W STM32F1 którego dotyczy ten temat (jak i np. w STM32F4) nie jest to możliwe.
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...
potriva, Pierwsze dwa punkty miałem spełnione. Nie zimportowałem Twojego projeku do CoCoox'a ale dzięki niemu wpadłem na pewien pomysł. Otóż, ja używałem USART1... z tego co się doczytałem ma on wspólną linie z portem mini usb, przez który wgrywam program oraz zasilam moją płytkę. Właśnie to powoduje przekłamania na USART1. Dziękuję wszystkim za pomoc,...
Witam, wydawałoby się, że problem jest banalny, a mimo to już dzień nad nim spędziłem (a czas mi nagli bardzo). Moim zadaniem jest odczytanie wartości ADC i wysłanie przez USART do PC (do Hyperterminala przez konwerter RS232 ->USB). Ogarnąłem wysyłanie np. znaku "a", jednak wartość ADC to jakiś ciąg cyfr (chyba 4-cyfrowy). I nie wiem jak po konwersji...
Witam, kolegów mam prośbę jestem początkującym z stm i aktualnie bawię się komunikacją poprzez usarta do nauki korzystam z różnych źródeł jak również z poradnika z tego forum posiadam taką płytkę http://elty.pl/pl/p/STM32F429IGT6-MCU-co... skonfigurowałem sobie USARTA1 tak zwane echo z terminala ale niestety jakieś głupoty odbieram w terminalu,...
Witajcie, Posiadam płytkę STM32F4DISCOVERY z procesorem STM32F407VG. Używam pakietu Eclipse + linaro + openOCD skonfigurowanego wg opisu Freddiego Chopina. Uruchomiłem również przykładowy program stm32f4_blink_led. Chciałem dołożyć obsługę USART1. Konfigurację napisałem w pętli main. [syntax=c] int main(void) { volatile uint32_t count, count_max = 10000000;...
Widać że pisałeś na AVRy bo te magiczne liczby i ich przesunięcia są nie czytania. Używaj czytelnych dla ludzi definicji z CMSIS (a dla fanatyków poprawności - tego co dostarczył STM). Dlatego nie przeczytam tego ale z takich drobnych uwag to sprawdzaj zy możesz pisać do rejestu DR. Osobiście nie sprawdzałem ale we wszystkich przykładach STM ustawia...
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...
Witam! Otóż moje następujące pytania: Czy to, co tutaj jest napisane ma prawo działać prawidłowo? Głównie mi chodzi o to, czy jest to w miarę dobrze zaprogramowane( aktualnie brak możliwości sprawdzenia, z powodu braku rezystora). Drugie pytanie, jeżeli mam funkcje USART_puts, jak zrobić, by temperatura zostawała przekazywana właśnie przez tą funkcję?...
Witam, Po uruchomieniu trzech interfejsów RS232 w STM32f103rb przyszedł czas na RS232 w STM32f407 i odrazu problem. Zrobiłem konfigurację USARTA i wysyłam w pętli znak 'a' a otrzymuję jakieś E z indeksem dolnym 1. Konfiguracja : [syntax=c] void init_USART1(){ /* This is a concept that has to do with the libraries provided by ST * to make development...
Witam! Zacznę od tego, że jestem raczej laikiem z programowania STM-ów. Ale nie jestem też leniem, że znajduję gotowca, kopiuję i liczę na to, że będzie działać. A jak nie działa to lipa. Staram się to zrozumieć i znaleźć problem. ;) Niestety brak wiedzy sprawił, że wymiękłem i pomyślałem, żeby zapytać na forum. Co chcę zrobić: Podłączam bluetootha...
Witam, Kiedyś działało mi bez problemu jedno zadanie w freeRTOS, jednak teraz mam problem gdy próbuję utworzyć dwa zadania. Gdy debuguje program to zatrzymuje się na vTaskStartScheduler(); Co to może być ? Mój main to: [syntax=c] #include "stm32f4xx.h" #include "FreeRTOS.h" #include "task.h" #include "math.h" #include "stdio.h" #include "myusart.h"...
(at)GrzegorzKostka Możesz mi jeszcze powiedzieć np dlaczego w dokumentacji USART3_TX jest na PB10 i PD8 ? Albo USART1_TX jest na PB6 i PA9 ? Mogę sobie wybrać np. PB6 lub PA9 ale nie ma możliwości dwóch naraz jako oddzielnych ?
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...
Dzięki za odpowiedzi. Jak na razie najbardziej kusząca wydaje się propozycja użycia bootloadera po USART1 (o ile ten nie został zablokowany - to będę musiał sprawdzić). To że natywnie stlinki z discoverów mają ograniczenie do danej rodziny wiedziałem, ale myślałem, że może są jakieś modyfikacje, zmiana firmware itp. Ewentualnie rzeczywiście albo Versaloon...
Hey, Dzięki za wskazówkę. Wiem, że temat był założony prawie 3 tygodnie temu, ale wcześniej nie miałem czasu odpisać. Problem był ciut bardziej złożony: Nadajnik (STM32F4) nadawał w trybie 9bit, kiedy pisałem ten kod, znalazłem notkę, że te 9 bit to 8bit danych + bit parzystości, jednak w odbiorniku STM32F1 powodowało to błędy parzystości. Oczywiście...
Możliwe że pomieszane różne wersje bibliotek stdperiph_lib. Są one czasem wygodne żeby coś szybko raz ustawić bez dłubania w manualu, ale mocno 'zryte' i mocno niekompatybilne między wersjami. Włączenie alternatywnych funkcji wygląda mniej więcej tak: [syntax=c]GPIO_PinRemapConfig(GPIO_Remap... ENABLE);[/syntax] Można przejrzeć kod biblioteki szukając...
Witam, Głowię się od jakiegoś czasu jak rozwiązać następujący problem. Piszę program na procesor STM32F4, który miałby po RS232 wysyłać dane zawarte w strukturze: [syntax=c]struct rs232_data { int a; int b; int c; }; struct rs232_data dane; dane.a = 12; dane.b = 34; dane.c = 76;[/syntax] Póki co to przykładowa struktura, która ma na celu wyłącznie przetestowanie...
Witam serdecznie. Zacząłem się bawić PWM w smt32f4 w trybie DMA. Korzystałem z tego kursu tutaj: https://forbot.pl/blog/kurs-stm32-f4-8-z... Generalnie wszyto działa, ale jak chciałem sobie zmienić kierunek DMA (czyli nie zpamieci do peryferiów), ale na odwrót - z peryferiów do pamieci to w zmiennej duty mam cały czas...
Przykład dla F051, ale podejrzewam, że na F4 będzie tak samo: Inicjowanie DMA w main: [syntax=c]DMA1_Channel2->CMAR = (uint32_t)time; DMA1_Channel2->CPAR = (uint32_t)&USART1->TDR; [/syntax] W przerwaniu timera: [syntax=c] if (upd_time) { // init DMA for time string transfer DMA1_Channel2->CCR = 0;// disable DMA1_Channel2->CNDTR = sizeof(time);// no....
Witam Pracuje obecnie nad projektem odbiornika sygnały DMX512. Sprawa wygląda następująco: -Sygnał danych czytany jest z urządzenia zwane Kwamatik USB2DMX, obsługiwane przez program Q Light Controller. „Po drodze” do uC trafia jeszcze na driver RS485 a potem na PIN RX UART1 oraz PIN PB9 skonfigurowanego jako wejścia dla Timera 11 pracującego...
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, Programuje STM32F407 przy pomocy HAL ( STM32CubeMX ) i Keil uVision 5 . Stworzyłem komunikacje przez UART HAL_UART_RxCpltCallback wykona mi się dopiero po przyjściu 6 znaków Komunikacja UART potrzebna jest mi do implementacji interfejsu MODBUS. W interfejsie MODBUS jak czytam z pdfa "http://modbus.org/docs/Modbus_Applicati...
Zmieniłem program, uwzględniając wcześniejsze uwagi. Na początku skupiam się tylko na wysyłaniu danych. Na początku załączam taktowanie portu PD: Następnie konfiguruję wyprowadzenia PD5 i PD6 - linie TX i RX: Później konfiguruję przerwania - kontroler NVIC: Następnie konfiguruję USART: i w pętli głównej wywołuję funkcję: Dodano po 1 Zmieniłem USART2...
(at)tadzik85 to jest moja inicjalizacja : [syntax=c] void init_USART6(){ GPIO_InitTypeDef GPIO6_InitStruct; // this is for the GPIO pins used as TX and RX USART_InitTypeDef USART6_InitStruct; // this is for the USART6 initilization NVIC_InitTypeDef NVIC6_InitStructure; // this is used to configure the NVIC (nested vector interrupt controller) RCC_APB2PeriphClockCmd(RCC_APB2Periph_US...
WItam, uczę się ze strony Forbota obsługę DMA z ADC. UART z DMA działa mi prawidłowo, ale z ADC nie chce. W przykładzie w kursie Forbota użyty był procesor STM32F4, a ja mam na płytce STM32F1. Więc okna z ustawieniami w Cube się różnią i myślę, że coś źle odznaczyłem. Otóż w Cube ustawiłem tak: https://obrazki.elektroda.pl/5147916400_...
Parę przykładów DMA na STM32F bez SPL niedawno się tu przewinęło - szukaj. Włącz DMA w rejestrze AHBENR, a potem np. coś takiego: DMA1_Channel2->CMAR = (uint32_t)time; DMA1_Channel2->CPAR = (uint32_t)&USART1->TDR; DMA1_Channel2->CCR = 0;// disable DMA1_Channel2->CNDTR = sizeof(time);// no. of items // increment memory adress, mem->periph, enable DMA1_Channel2->CCR...
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...
Cały plik main. [syntax=c]/** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * * COPYRIGHT(c) 2016 STMicroelectronics * * Redistribution and use in source and binary forms, with or without...
Procesor jest taktowany zewnętrznym generatorem 16MHz. Jeśli tak, to musisz mieć pewność że makro HSE_VALUE ma odpowiednią do tego wartość, bo domyślnie w SPL dla F1 jest zdefiniowane jako: [syntax=c]#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ [/syntax] Od strony programu nie ma możliwości sprawdzić jaka...
A włączyłeś zegar uarta?
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ś.
usart1 atmega128 stm32 usart1 stm32f103 usart1
dolna uszczelka wymiana gwiazdy numer części lodówki
volvo b4204t7 samsung wf70f5e0w2w
Zwarcie w piekarniku Amica ED57836 BA - brak działania Bezpiecznik wtryskiwaczy 1.5 dCi - lokalizacja i diagnostyka