Ustaw AF dla obydwóch pinów i obydwa ustaw na push-pull. Wiem że to brzmi dziwnie dla pinu RX, ale tak właśnie ma być. USART3_GPIO->AFR[0] |= GPIO_AFRL_AFRL7; To jest źle skoro używasz pinów 8 i 9. DMA1_Stream3->M0AR = (uint32_t)&ramka_tx; DMA1_Stream3->M1AR = (uint32_t)&USART3->TDR; Adres &USART3->TDR powinieneś wpisać do rejestru PAR, a nie M1AR....
Witam, Ostatnio mam przyjemność zabawy z płytką STM32F746NG Discovery. Mam problem z usartem... Nie jestem w stanie odebrać znaku w konsoli mojego komputera. Chciałem zrobić tak samo jak to się robi np.: w Nucleo, czyli korzystam z USARTA2, piszę odpowiednią funkcję do wysyłania znaków i w whilu daje printf... ale tutaj to nie działa. Wszystkie parametry...
Uart2 taktuję z APB1, dla którego ustawiłem taktowanie 45MHz za pomocą preskalerów. A do BRR wpisuję 45MHz/9600. Czyli wartość 4687. Wg mnie jednak masz źle ustawiony zegar dla APB1 Z HCLK = 22,5 MHz nie można zwiększyć zegarów APB1 i APB2 tylko zmniejszyć, więc nie wiem jak chcesz mieć 45 MHz. AHB1 musisz ustawić na 180 MHz czyli nie ruszasz RCC_CFGR_HPRE,...
Witam ponownie. Teraz rozumiem zasadę działania. Podłączyłem mój moduł do UART7 teraz w poprawny sposób: HC-05 Tx <-----> STM32F7Disco Rx (PF_6) HC-05 Rx <-----> STM32F7Disco Tx (PF_7) Jednak komunikacja nadal nie działa ani z telefonem ani z terminalem komputera ... Oczywiście skonfigurowałem UART7 w STM32Cube. Dodam, że USART1 w pętli...
No to Ci już napisałem. Nie potrzebujesz juz tego CDC projektu. Tylko wybrany wysyłasz na USART1
Cześć, Od kilku dni próbuję uruchomić obsługę pewnego modułu samochodowego, sterowanego poprzez magistralę CAN. Obsługa tego modułu wymaga wysłania pewnego zapytania, a następnie odebrania 4 ramek CAN odpowiedzi modułu - łącznie trzeba odebrać 32 bity danych. Udało mi się uruchomić nadawanie zapytania oraz odbieranie odpowiedzi, jednakże trzecia ramka...
A włączyłeś zegar uarta?
Być może mam skopany oscyloskop i czas kupić nowy. A teraz spójrzcie na mój post z kodem oraz pierwszy post tematu :-). Jeśli taktuję z HSI to 1000 prób echo z blokami po 8192 bajty przechodzi bez szemrania. Przy HSE 25 MHz czy 8 MHz czy 11.0592 MHz realna częstotliwość jest zaniżona i do obliczenia BRR muszę użyć niższej wartości (przy 25 MHz -> 24500000)....
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ę...
Cenna uwaga z tym |=, bo to przeciez też operacja odczytu A błąd był w konfiguracji bo przecież ostatnia linijka psula wszystko: USART3->BRR = freq/4/115200; USART3->CR1 |= (USART_CR1_RE | USART_CR1_TE); USART3->CR1 |= USART_CR1_UE; USART3->CR1 = USART_CR1_TCIE;
Który USART i jaki zegar dla niego brałeś po uwagę?
Próbuję rozwiązań ten problem już 2 dzień, niestety mało jest jeszcze materiałów na temat tego mikrokontrolera. Chciałbym skonfigurować USART6, tak by odbierać dane z aplikacji napisanej w pythonie na laptopie.Kod funkcji inicjalizacji USART: [syntax=c] /* Pliki nagłówkowe: */ #include <uart.h> /* Zmienne: */ uint8_t cUart6Container[200]; UART_HandleTypeDef...
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...
1. W jaki sposób piszecie kod do obsługi peryferiów występujących pojedyńczo w mikrokontrolerze? Np RTC, LCD, RNG, czy CRC. Najzupełniej normalnie, czyli jako zwyczajną klasę. Jeśli jest tylko jeden taki układ peryferyjny, to w projekcie po prostu mam jeden taki obiekt. Z pewnością nie bawię się w żadne singletony czy klasę w której wszystko jest statyczne....
(at)kogiel Wygląda na to, że zabrałeś się do sprawy od niewłaściwej strony, co Koledzy już wypunktowali. Jeżeli nie chcesz kupować rejestratora, ale chcesz zbudować takie urządzenie, to konieczne jest zastanowienie się jakie funkcje ma realizować i w jakim zakresie. Funkcje to np. - rejestracja stanów wejść logicznych, wyników przetwarzania ADC, czasów...
Kanal nadal nie ustawiony, zły kierunek transmisji.
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.
Akurat tam tyle jest ;p Czy po stronie komputera masz dobrze skonfigurowany COM?
Witam, mam taki problem z odczytem danych z czujnika PMS3003. Kiedy próbuje odczytać dane z czujnika używajać systemu RTOS, nie ma żadnego problemu, odpowiednio dostaję tablicę danych i wysyłam sobie je za pomocą Transmita: https://obrazki.elektroda.pl/5094621700_... Jednak kiedy próbuje to zrobić na moim serwerze, jedyne co dostaję...
Flaga USART_CR2_TXINV w CR2 USARTu.
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....
Na przykład otwieramy manual na stronie, gdzie znajduje się opis rejestru MODER i czytamy, co oznacza jaka wartość pola bitowego w tym rejestrze - co trzeba wpisać, żeby dana linia portu była przypisana do peryferiala (np. UART), a nie do GPIO. Przed zapisem do MODER ustawiamy dla odpowiednich linii portu funkcje RX i TX odpowiedniego UARTa w rejestrze...
Witam serdecznie wszystkich użytkowników. Zwracam się do Was z prośbą o pomoc w zrozumieniu i napisaniu krótkiego loopbacka na STM32. Ostatnio postanowiłem się przesiąść ze starych AVRków (na których wszystko było jakby prostsze ... :) ) i zakupiłem zestaw STM32F7 Disco. Być może dość ambitnie jak na początek ale postawiłem sobie za cel okiełznać te...
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...
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
Na pewno z tego powodu przerwania nie mogły przestać działać. Przebudowałeś cały projekt?
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....
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!!
A gdzie masz włączanie przerwań od USART? Dodano po 7 Powinno być coś w stylu: NVIC_EnableIRQ(USART2_IRQn);
Aj, link się nie wkleił. Komunikacja idzie przez USART na pinach PC4-PC5. Zapewne gość ma jeszcze podpięty jakiś konwerterek USB UART.
No i tryb PA2 powinien być AF, a nie IN - to nie F1xx, w którym wejścia AF nie są konfigurowalne.
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.
Najtaniej zaprogramować można przez USART korzystając z fabrycznie wprogramowanego bootloadera. Jeżeli chodzi o programator/debuger - to tak, jak pisał ZbeeGin najprościej bedzie wziąć np STM8VLDiscovery. ST-Linki w tych wszystkich STM32x Discovery nie obsługują SWIM potrzebnego do STM8, tylko SWD.
Ale na pewno bufor nie ma 2 bajtów. Ma - jeden bajt od razu jest ładowany do "shift register", a drugi czeka w rejestrze USART->DR. Dopiero trzeci i kolejne się nie mieszczą i muszą czekać na zakończenie wysyłania poprzednich.
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...
Zmienne globalne zajmują...... Pewnie ram dla led jest rezerwowany w chwili uruchomienia biblioteki przez memalloc. Gdybyś sam pisał obsługę led to użyłbyś tablicy o określonym rozmiarze dzięki czemu wiedziałbyś ile ram zajmuje program. Poszukaj jak wyświetlić ilość wolnej pamięci ram w czasie działania programu. Jakiś freemem jest. Trochę oszuka ale...
To teraz sprawdź czy sprintf() jest funkcją która jest "reentrant". Nie mówiąc już o takiej "drobnostce" jak blokująca implementacja send_string(), która korzysta z JEDNEGO i TEGO SAMEGO UARTu, oczywiście wywoływana w obydwóch przerwaniach. Reasumując - obserwujesz w 100% prawidłowe objawy, ten kod nie ma prawa działać bo jest totalnie pozbawiony sensu....
http://wikimarek.referata.com/wiki/Progr...
Od tego jest RM a nie biblioteki wątpliwej jakości.
A co na to debugger? Wchodzisz w przerwanie UART? Wiesz, że bez zbędnych wywołań SPL/HAL program byłby z 5 razy krótszy? Np. zamiast: [syntax=c]NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp... = 0x00; NVIC_InitStructure.NVIC_IRQChannelSubPri... = 0; NVIC_InitStructure.NVIC_IRQChannelCmd...
Jeśli opierałeś się na moim przykładzie, to proponuję zajrzeć do dokładnie 35 linijki skryptu linkera i dobrze zrozumieć to co jest napisane w jej okolicy.
Witam, Napisałem program który wysyła kolejno bajty przez USART do drugiego urządzenia i jednocześnie odbiera bajty (taki powiedzmy full-duplex :)) . W zasadzie nic specjalnego program wygląda następująco: https://obrazki.elektroda.pl/5185361200_... . Czy przyczyną są drgania styków? Wcześniej tą komunikacje realizowałem za pomocą DMA...
Chyba jednak mirkokontroler :P Byłem dziś u znajomego, ma inne sterowniki na laptopie i gdy dziś podłączyłem swoją płytkę z USARTem u niego to po chwili też pojawił się bluescreen. Czy powodem może być to, że jakiś czas temu spaliłem USARTa podpinając do niego zasilanie(3,3V) i masę z płytki, która z kolei była podłączona też do laptopa przez USB ?...
Może ten 'examples' pomoże: http://tech.munts.com/MCU/Frameworks/ARM... A dokładniej ten: http://tech.munts.com/MCU/Frameworks/ARM...
Wg mnie powinieneś resetować po transferze adres tablicy źródłowej - w końcu jest on automatycznie inkrementowany. 4\/3!!
(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).
A ja tak się zastanawiam po co męczyć się z timerami skoro usart w trybie halfduplex sie do 1wire nadaje idealnie? Bo USART może być potrzebny w projekcie np. do Modbusa ? ;)
Dekoder to helix mp3, do bufora fifo(51200B) wkladam dane w przerwaniu od usart rxne. Stos i stera ustawione na 0x1000
USART1->CR1 |= USART_CR1_UE; //włączenie usart USART6->CR1 |= USART_CR1_UE; //włączenie usart To daj po całej konfiguracji a potem wysyłaj i odbieraj.
Sprawdź, czy w module startup masz w ogóle w tablicy wyjątków nazwę procedury obsługi tego przerwania. Kiedy ostatni raz bawiłem się AC6, generował puste tablice wyjątków. Nie ma tam nic :( tylko to: g_pfnVectors: .word_estack .wordReset_Handler .wordNMI_Handler .wordHardFault_Handler .wordMemManage_Handler .wordBusFault_Handler .wordUsageFault_Handler...
Do BT wysyłasz komendy AT (jeśli moduł jest w trybie komend) lub dane (gdy jest "przeźroczysty") po USART. Poszukaj przykładów dla Arduino.
Witam, Chciałbym się podzielić "biblioteką" (a.k.a. długim plikiem nagłówkowym) do bit-bandingu do STM32F4. Plik definiuje dostęp do bitów do następujących peryferiów: ADC, GPIO, I2C, RCC, SPI, SYSCFG, TIM oraz USART. Dokumentacja w komentarzach na początku pliku. Smacznego.
Nie 103 a 107. Cała rodzina F1 jest przestarzała. W STM32F4, F7 i F0 jest do sześciu SPI. Do tego warto dodać, że USART może pracować w trybie SPI w każdym STM32.
Wiem że ma wysyłać liczby i w terminalu przełączam się na kod dziesiętny i widzę że liczby nie są po kolei. Po prostu przesył jest błędny. Czy kod ustawiający piny GPIO i USART jest poprawny?
Ja już nie wiem, jaki uC w końcu programujesz, bo na STM32F0 mi to nie wyglądało i nie wygląda nadal Panowie wybaczcie za mój skrajny głupi błąd. Niechcący korzystałem z manuala dla F3, a mam przecież STM32VLDiscovery na której siedzi F0. W wolnej chwili wprowadzę poprawki. I jeszcze pytanie? Czy do założeń tego co robie, czyli skanowanie 4 kanałów...
GPIO_PinAFConfig nie powinno być przed GPIO_Init, tak strzelam. Poza tym każdą strukturę do konfiguracji peryferiów zainicjuj wartościami domyślnymi np. tak USART_InitTypeDef USART_S; USART_StructInit(&USART_S); Podejrzyj w debugerze rejestry konfigurujące USART i GPIO i prześledź czy wszystko jest OK
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ą...
A czy ktoś z was korzystał może ze stosu FreeRTOS+TCP ? Wydaje się być ciekawym rozwiązaniem no i jest znacznie lepiej udokumentowany. Niestety nie, mialem sie za to zabrac ale jakos brak czasu na napisanie drivera do eth... Jak masz czas i checi mozesz sie pobawic i zdac relacje ;) Bawilem sie tylko zmodyfikowana wersja uIP (FreeTCPIP) - prawde mowiac...
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
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...
Czy dostępne obecnie programy ładujące, jak np.: - Flash Loader Demonstrator (ST), - FlyMcu (mcuisp), - vsprog (z platformy VerSaloon PROGramer). obsłużą mikrokontrolery z nowej serii STM32F-2, np. STM32F217 (z 1MB flash)? Wiadomo tylko, że seria F-2, podobnie jak F-1, posiada bootloader i można je ładować przez USART, ale nie wiadomo jakim programem....
(at)Piotrus_999 Mam przejściówkę usb ->uart i w ten sposób sprawdziłem że np prędkości 19200, 9600, 4800 działają bo przesyła mi dobre znaki na terminal, natomiast gdy ustawię w stm32f4 discovery prędkośc 300 lub 1200 to w terminalu mam krzaki.
Sprawdziłem czy czasem układ nie jest zepsuty i może echa nie generuje. Na szczęście wszystko działa prawidłowo, USART z ATmegi32 leci prawidłowo więc na pewno błąd mam gdzieś w kodzie. Czy może ktoś wskazać lub podpowiedzieć co mam zrobić? Generalnie lepiej znam się na AVR dlatego w STM32 potrzebuje dokładnej wskazówki.
Byłem pewien że jest, ale jak spojrzałem to musiałem z USART'em pomylić (bo w nim jest). W sumie niema sensu aby był taki bit, ponieważ by działał w sumie identycznie jak BSY bo komunikację w obydwu kierunkach inicjuje tylko procesor. W USART może być sytuacja że nadchodzi jakaś informacja z zewnątrz a bufor wyjściowy jest wolny do którego już można...
poprawiłem kolejność i dalej nic ;/ void initUsart(){ RCC->AHBENR |= RCC_AHBENR_GPIOAEN; //enable clock for PORTA RCC->APB2ENR |= RCC_APB2ENR_USART1EN; //enable clock for USART GPIOA->AFR[1] |= (1<<8) ; //mapping AF1 to get RX on PA10 GPIOA->AFR[1] |= (1<<4) ; //mapping AF1 to get...
I znów stawiasz wymagania pozamerytoryczne przed funkcjonalnymi. Tak się nia da zrobić dobrego projektu. istotny może być rodzaj obudowy (np. BGA czy nie-BGA, bo BGA ręcznie nie przylutujesz), ale nie liczba wyprowadzeń czy ich rozstaw (w granicach rozsądku oczywiście). STM32F072 (z USB) albo STM32F030F (bez USB) powinien z grubsza pasować - funkcjonalnie....
a przy programowaniu z UART CAN zasmieca dane lecace z PC. No chłopie żeś powiedział. Nic niczego nie zaśmieci. Ale interfejs CAN wygra. Jedyna opcja to jednak sprzętowa. Bo nie zagwarantujesz wystarczająco szybkiego wysłania znaku 0x7f, by wygrał UART. Sorry zle zrozumialem, ze na tych samych pinach co USART ma wpiety CAN (czyli polaczenie elektryczne)......
To, co z HAL wymaga 30 linii, bez HAL zwykle wymaga 5..8. To tyle w kwestii szybkości pisania kodu. Np . zainicjowanie UART bez HAL: włączenie GPIO i USART - 2 linie, ustawienie nóżek - 2 linie (zapis do AFR i MODER), zainicjowanie UART - 2 linie (zapis do BRR i CR1) - razem 6 podstawień w C. Ile to zajmuje z HAL? Łopatologicznie wytłumaczyłem, na czym...
No i jak napisać niskopoziomowe funkcje komunikacji stosu ze sprzętem. Zdefiniuj słowo NISKOPOZIOMOWE w tym przypadku. Ja też myślałem - po co mi jakiś system operacyjny. Wbrew pozorom - przy normalnym stosie nie da się bez niego obejść. Jeśli chcesz "łapać ramki" i samemu zarządzać pamięcią itd.. to system operacyjny ci niepotrzebny. Gdy problemy...
Musisz więc w loop() sprawdzać stan wybranego pinu funkcją digitalRead() Naliczyłem 17 delay, których czas ustawiony jest na 100ms. Daje to łącznie 1,7sekundy i może być tak, że po takim czasie program zareaguje na zmianę stanu wejścia. Pierwsza rzecz jaką bym zrobił to wywalił delay i sterowanie zrealizował na przerwaniach od timera. Przy takim podejściu...
pisałem taki driverek na I2C i pomyślałem ,że zrobię za pomocą bibliotek od ST no i działało oczywiście do czasu. Pytanie, do jakiego czasu :) Jak do tej pory zrobilem juz wszystko poza USB i ethernetem i jakoś działa. zostawiłem na noc obsługę 2 czujników(I2C) wyniki wyswietla mi na kolorowym LCD(SPI), do tego komunikuję się z komputerem(USART) i...
Nie wiesz może o jakimś układzie żeby miał Ethernet+ stos w nim, i drugiej strony dało się podłączyć SPI +DMA. Kiedyś czytałem o takim czymś: http://ep.com.pl/files/4859.pdf , ale nigdy tego nie używałem. Znalazłem jeszcze (niestety opatentowane) http://www.google.com/patents/US6483840 Jak zacząłem wgryzać się w LwIP ( i młodszego brata UiP), to przeraziłem...
Czyli z taktowaniem mam problem. Próbuję zrobić tak jak tutaj http://stm32f4-discovery.com/2014/04/lib... U mnie jest: Core Clock = ((HSE_VALUE / PLL_M) * PLL_N) / PLL_P Niestety po takiej konfiguracji STM wariuje, nawet USART wysyła śmiecie. Jak prawidłowo skonfigurować...
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,...
(at)BlueDraco. Niestety powtarzasz te same nieprawdy. 8-pinowy Cortex? Owszem, Farnell ma typów słownie jeden z rdzeniem M0+. A właściwie nie ma, bo nie ma na stanie. Cóż ten procesor widmo ma? Zegar 30 MHz, więc znowu jakimś demonem szybkości to nie jest, ale to nic. Co ma na pokładzie? USART, SPI, I2C, komparator analogowy. A gdzie ADC? Jest tańszy...
Robię projekt na studia. Chciałbym w jak największym stopniu napisać to sam. Nie jestem w tym doświadczony, ale jak na razie wszystko, co napisałem, rozumiem. Problem w tym, że wymaganiem mojego projektu jest użycie przerwań zewnętrznych :/ A nie widzę nigdzie innego użycia przerwań niż tylko przy wciśnięciu klawisza klawiaturki. (at)Edit Właśnie czytam...
Witam Zastanawiam się jak można oszacować wydajność systemu DMA. Chcę użyć trzech kanałów DMA a nie chce mi się kontrolować i prawidłowo reagować gdy transmisja DMA się nie wykona. Chcę: - odbierać dane przez USART 20 bajtów co 20 [ms] (ramka z wykrywacza) - wysyłać dane przez SPI 2*504 bajtów co 50 [ms] (obsługa dwu wyświetlaczy z nokii 3310) - generować...
BlueDarco, a jakbym chciał mieć jednocześnie VCP i podpiąć pendrive? Wyczuwam tu mały problem. Co do bootloadera to niektóre modele mające port USB mają fabryczny bootloader po USB. Ale nie róbmy off-topicu, podsumowując: 1. Najszybciej jest dołożyć złącze USB do procesora mającego USB-Device i użyć odpowiedniego oprogramowania VCOM/VCP. Jedyna wada...
Primo - gdzie dokładnie program "zostaje"? W Handlerze? Secundo:j eśli przyczepię się bezsensownie to przepraszam, ale co to jest za nowa świecka tradycja na tym forum najpierw przerwanie włączać a potem ustawiać odpowiedzialne peryferia? (Bo strzelam że przerwanie EXTI jest od buttona?) W temacie - czyść flagę na wejściu do przerwania, potem zapis...
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: http://www.digchip.com/datasheets/parts/...
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 Tak jak kolega (at)z3planety powiedział żeby się w to bawić (reverse-engineering) trzeba być dobry w te klocki i mieć dużo czasu. Piątek i sobota przy kompie na szukaniu wszystkiego na temat stm32f072, podłączania na zmianę blue pill + st-link, blue pill + USART, Aspire + st-link i mówiąc krótko mam większy mętlik w głowie niż przed. Przeczytałem...
Witam Mam następujący problem przy płytce STM32F0Discovery. Celem programu jest na poziomie obsługi przerwania ustawienie globalnej zmiennej, a następnie po powrocie do maina sprawdzenie zmiennej i wykonanie instrukcji. Kod pliku main.c [syntax=c] #include "stm32f0xx.h" #include "setup.h" volatile bool new_data = false; int main (void){ setup(); while(1){...
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_...
a czy software'owa implementacja ma w ogóle sens? Jaki baudrate chcesz uzyskać? I czy chcesz implementować wersję asynchroniczną czy synchroniczną? Zakładam, że asynchroniczną, skoro piszesz, że ma się toto komunikować z AVRami. Z szybkich obliczeń wychodzi mi, że w wersji asynchronicznej, dla baudrate=115200bps i tzw. trybu NORMAL, w którym trzeba...
Witam, męczę się od jakiegoś czasu z komunikacją przez USART. Poniższy kod działa prawidłowo kiedy załaduję go do FLASH, ale nie chce działać poprawnie w RAM. 4 diody z poniższego kodu zapalają się w obu przypadkach, tylko uC nie wysyła danych jak program siedzi w RAM. Używam CoIDE. Proszę o pomoc. [syntax=c] #include "stm32f4xx.h" void init_RCC(void);...
SysTick jest chyba najprostszy, jedna linijka kodu aby 'zapuścić'. Obsługa przerwania SysTick nie wymaga niczego - żadnego kasowania flag itp. dlatego w prostych projektach jest najczęściej używany jako timer delaya. Nie wymaga także skomplikowanych obliczeń - tylko zegar, podział przez 8 lub brak podziału, podział przez wartość odliczania - i koniec....
1. W jakim formacie oczekujesz danych ? Jeśli ma być to YUV to przy zasłoniętym obiektywie powinieneś otrzymać ciąg wartości zbliżonych do 0x00, 0x80, 0x00, 0x80, 0x00 .... Przy zasłoniętym obiektywie otrzymuje obrazy, podobne do poprzednich... czyli porozrzucane bez ładu piksele Jaką częstotliwość w rzeczywistości ma sygnał PCLK Gdy jutro będę miał...
Hej, Chciałem uaktualnić swój stary projekt, w którym używałem Atmegi162. Układ ma łączyć się z zewnętrznym urządzeniem za pomocą magistrali UART, o parametrach 8b danych, 1b stopu, parzystość "even". Obecnie próbuję zrobić te same operacje wykorzystując płytkę z mikrokontrolerem ARM - STM32F407Z (na płytce CORE407). Po paru minutach udało mi się skonfigurować...
(at)gaskoin Jak by nie patrzec zegar, porty, jakis timer, dac, adc, dma, USART i masz juz znaczna czesc RM do przeczytania... Chodzi o to ze sa bardziej zlozone niz AVR-y PICe itp. i tych rejestrow trzeba wiecej poustawiac... a znajomosc dzialania jakiegokolwiek prostego procesora wiele ulatwia. Mozna zaczynac od zera ale trzeba poznac od podstaw wszytko...
Witam wszystkich. Od jakiegoś czasu ćwiczę STMy. Przyszedł czas na bootloader, ale stanąłem w zasadzie na początku drogi. Mój zestaw to: - ARM GCC (Linaro) w wersji 4.7 2012q4 - CooCox - STM32F4 Discovery - przykład AN3965 "STM32F40x/STM32F41x in-application programming using the USART" Po kolei: - istniejący i działający program zlinkowałem z użyciem...
Witam. Napisałem poniższa bibliotek do obsługi DS18b20. Po wysłaniu sygnału RESET (0xF0) otrzymuje od czujnika temperatury sygnał PRESENCE (0xE0). Problem napotykam w chwili odczytu danych z scratchpada. W tablicy w której mam przypisane dane z czujnika są zera ;/ [syntax=c] void one_wire_init(void) { RCC->APB1ENR |= RCC_APB1ENR_USART2EN; RCC->AHB1ENR...
Chyba zlokalizowałem źródło problemu. Niestety nie wiem jak je usunąć. Chodzi o funkcje zwracające czas w mikrosekundach i milisekundach - read_ms() oraz read_us(). Po wysłaniu poprzez USART do PC wartość którą wpisuję jako argument do funkcji kalman_calculate tj. (read_ms()-timer) pokazały mi się na przemian 9882us, 1003us i -455us. Powinno być coś...
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...
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, Próbuje skomunikować STM32F4-DISCOVER z modułem RN-171 po UART. RN-171 działa na 3,3V; STM32 na 3V. Masę mają wspólną. Generalnie wygląda, że działa, ale nie wiem co źle robię bo wygląda jakby STM32 był 'głuchy' na sygnał przychodzący. Na oscyloskopie wygląda to tak, że STM32 wysyła sygnał prawidłowo, a RN-171 na ten sygnał odpowiada mu tym samym...
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)...
Witam staram się skonfigurować spi tak aby wybierać slave za pomocą stanu na pinie PE3. Aktualnie komunikacja działa jednakże niezależnie od stanu na zadanym pinie. Podczas gdy chce wylaczyc mozliwosc komunikacji i ustalam stan na pinie PE3 na wysoki gdy na poczatku funkcji read_spi() zmieniam stan na wysoki to po wyjsciu z tejże funkcji stan ustalony...
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...
samych errat jest 41 No ale dla jednego modelu mikrokontrolera (tak naprawdę dla kilku <; ) jest tylko jedna errata. Zresztą dla praktycznie każdego mikrokontrolera errata jest osobnym dokumentem. Teza obalona (; Ale pomijajac to ze dokumentacja jest rozbita, czasami jej jakosc jest po prostu do d... Generalnie da sie zyc z tym ze czasem niepotrzebnie...
stm32f7 interrupt stm32f7 programować stm32f7 programowanie
skrypt dostep czujnik electrolux dziecko uszkodziło laptopa
duchy matrycy zużycie zewnętrzne opony
Jak otworzyć bagażnik w Hyundai i10? Praktyczne porady Spadek napięcia na czujniku ruchu PIR, AM312, 230V – przyczyny, analiza, diagnostyka