Chodzi o wyświetlanie Stringów przez USART? To na czas testów tylko. Jakiś pomysł?
Wyświetlam sobie wyniki pomiaru w terminalu przez usart i są one poprawne także nie wiem, wydaje mi się, że mi się nie wydaje. A reszta konfiguracji jest poprawna?
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,...
Witam :) od miesiąca próbuję uruchomić komunikację po RS-ie komputera z mikrokontrolerem. Do USB podłączam konwerter FT232 następnie przez max232 do mikrokontrolera. Dodam że płytka z prockiem to discovery stm32. Konwerter i max działają - próbowałem już echa. Po podłączeniu mikrokontrolera i próbie wysłania wiadomości nic się nie dzieje. Odbiór info...
Trochę namieszałem bo w rzeczywistym kodzie miałem linijkę ( nie wiem dlaczego się nie skopiowała ): [syntax=c]RCC -> APB2ENR |= RCC_APB2ENR_SYSCFGEN;[/syntax] Więc zegar modułu SYSCFG jest włączany. Drugi błąd (nie wiem jak mogłem to przeoczyć) również poprawiłem na: [syntax=c]SYSCFG -> EXTICR[3] |= SYSCFG_EXTICR4_EXTI13_PC;[/syntax] Przejrzałem cały...
Witam, mam problem z moim urządzeniem, mianowicie... STM komunikuje się z ESP8266 przez USART i wysyła do niego komendy "AT", przy pierwszym włączeniu inicjalizacja ESP (połączenie z wifi, cwmode itd) działa poprawnie i każde polecenie wykonuje się kolejno. Kiedy dojdziemy do programu głównego i mikrokontroler znajdzie się w zdarzeniu, gdzie powinien...
A jakby tak zrobić to "tak jak należy" (odczytywać odpowiednie flagi TXE/RXNE), zamiast tak kombinować? Co konkretnie masz na myśli? Przecież po wysyłce bajtu sprawdzam flagę USART_ISR_RXNE i odczytuje odebrany bajt z rejestru RDR .
Witam. Próbuję odpalić komunikacje USART z PC na płytce nucleo STM32F302R8, z dokumentacji wynika, że USART2 jest podłączony z programatorem przez który można się komunikować z PC. Chyba wszystko dobrze ustawiłem a przynajmniej podobnie jak w poradniku właśnie z elektrody. Po wciśnięciu przycisku reset na RealTermie pojawia się "nul" czyli pusta ramka...
Witam, Niedawno kupiłem sobie płytkę NUCLEO-F767ZI i próbuję uruchomić PLL. I tu jest problem. Gdy działam sobie na zegarze HSI lub HSE przy wyłączonym PLL to jest ok. Ale gdy próbuję załączyć PLL dla HSI lub HSE to już nie działa. Testy robię sobie przy użyciu USART2. Gdy PLL jest wyłączone to USART wysyła mi prawidłowo dane, a z PLL wysyła mi tylko...
Witam, Naciąłem się na problem z przerwaniami z którymi nie mogę sobie jak na razie poradzić. Jeśli w bootloader'ze nie wykorzystam przerwać, to po skoku do aplikacji wszystko działa ok, jeśli natomiast zostanie tam wykorzystane, to aplikacja już ich nie wykonuje. Wydaje mi się że ma to związek z wskaźnikiem przerwania, ale nie mogę znaleźć rejestru...
Cześć, Próbuję podłączyć jakoś wyświetlacz JM081A (kompatybliny ze sterownikiem HD44780) pod STMa32 (na płytce discovery). Używałem go przy poprzednim projekcie, na ATMedze8 więc wiem, że wtedy działał, niestety rozmontowałem całość (płytka stykowa..) i nie mam teraz możliwości sprawdzenia czy wyświetlacz nie został uszkodzony (bo musiałbym rozebrać...
Mam takę niepewność: Wiem, że podczas samego zapisu program przestaje być obsługiwany. Co by się stało gdyby w funkcji obsługującej zapis do flash pojawiło się przerwanie np. od Systicka, USARTu, itp ?
Witam, napisałem sobie kod z wykorzystaniem bibliotek STM32 peripheral , w którym robię pomiar na potencjometrze za pomocą przetwornika ADC. Po zakończeniu każdego pomiaru mikrokontroler wchodzi w przerwanie, w którym chcę przesyłać wynik pomiaru na PC za pomocą USART. Niestety coś idzie nie tak, gdyż program wysyła co najwyżej 2 pomiary i potem się...
Dzięki za sugestie i ogrom "ciepłych słów". A ja drugą połówkę i w pierwszych linkach znalazłem: https://ep.com.pl/artykuly/10890-STM_urz... https://forbot.pl/blog/kurs-stm32-f4-11-... Mamy więc: połówka + połówka = 1 litr. (at)nowyARM - dzięki za linki. Na razie zabrałem się za tutorial...
Cześć, Na inżyniera robię robota kroczącego na 12 serwomechanizmach, 4 nogi, taki pająk. Aby to ładnie zakodować chcę zrobić klasę serwo, klasę noga, klasę robot z odpowiednimi metodami aby kod był przejrzysty i jasny. Problem jest następujący: Klasa serwo ogółem działa, kompiluje się idealnie, aczkolwiek przy próbie użycia jakiejkolwiek zmiennej procek...
Witam ponownie Przerobiłem trochę kod i teraz rzeczywiście odczytuje dane z wszystkich czujników no ale jest jedno ale..... Częstotliwość odczytywania danych jest znacznie mniejsza niż być powinna. [syntax=c]while(1) { if(50<licznikCzasu && I2CInProgress == 0) { licznikCzasu=0; I2CInProgress=1; I2CToWrite = 1; if(licznik%3==0) { SlaveAddress...
michalko12: Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło. xLastFlashTime nie można: error "initializer element is not constant". W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem. Dodano po 4 Smashing: Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje...
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...
Może konflikt pinów z LCD i SPI. Musisz pokombinować. Zresztą, zrób sobie pusty projekt dodaj fatfs i ten plik, napisz obsługę SPI i powinno działać. A i uzupełnij sobie funkcje int _write(); np. tak żeby korzystała z USART, będzie ci działać printf();.
Witam od dwóch dni mam problem z USART na stm32f4discovery. Otóż napisałem sobie prosty programik na bazie tego przykładu pod stm32f4discovery ze strony Freddiego Chopina, tyle że sam napisałem sobie konfigurację zegarów itd. Zrobiłem konfigurację USART 6, napisałem funkcję do wysyłania jednego bajtu oraz całego słowa i wrzuciłem sobie wysyłanie bajtu,...
Nie musisz odblokowywać ani obsługiwać przerwań timera. Jeśli raz włączysz wyzwalanie ADC, będzie ono włączone (raczej - co prawda STM32F1 są strasznie skopane, ale chyba nie aż tak). No ale jak widać nie działa, nawet nie wchodził w przerwanie więc nie wiem już jak to powinno być poustawiane. DMA już chyba wysyła dobrze: 00 00 00 00 00 00 00 00 46...
Witajcie, Zmieniam właśnie w moim projekcie gyro i akcelerometr na cyfrowy MPU 6050 i mam problemy z i2c (pierwszy raz tego czegoś używam :). Problem jest taki, że przy odbiorze danych po losowej ilości odebranych danych (kilka do kilkunastu odczytów, proc się zawiesza na 99% tutaj [syntax=c] // disable acknowledge printf("disable acknowledge\n\r");...
Zdefiniuj sobie funkcję HAL_UART_ErrorCallback() i upewnij się, że NIGDY nie jest wywoływana. Jeśli jest, to znaczy że UART wykrywa jakiś błąd. Zrobiłem tak wczoraj i o dziwo urządzenie całą noc pracowało poprawnie. Dziś rano zresetowałem i testuje dalej. Zmiany w kodzie w stosunku do wersji zawieszającej UART to przeniesienie obsługi gpio odkierunku...
Problem został rozwiązany. Leżał on w wywołaniu funkcji putch(), która wysyłała dane na USART'a. Zamiast niej z rozpędu pisałem putchar(), która jest procedurą systemową. Jednakże dlaczego program się wykrzaczał już na samym początku? Powinien dojść do wywołania tej funkcji.
Dzisiaj wszystko jeszcze raz uruchomiłem i o dziwo zaczęły przychodzić dane z kamery, a program się nie zawiesza. Dodałem w programie takie polecenia: [syntax=c]for (i = 0; i< 19200; i++) { bufor_RAM_danych_obrazka[i] = 0; } Delay(100); uruchom_kamere(); Delay(100); wykonaj_foto(); Delay(1000); for (i = 0; i< 19200; i++) { sprintf(textToWrite,"%d,...
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);...
to mój kod. raz działa raz nie. Np ponowne uruchomienie Debugowania już go pogoni, a czasem nie da rady. wywala HardFault_Handler() lub inne. [syntax=c] /** ****************************************... * File Name : main.c * Date : 13/09/2014 10:34:06 * Description : Main program body ****************************************...
Zmieniłem trochę w projekcie. Zastosowałem najnowszą wersję FatFS. Plik z konfiguracją funkcji zadeklarowanych diskio.h pobrałem ze [url=http://www.siwawi.arubi.uni-kl.de/a... strony i przerobiłem go by pasował do STM32L. Po testach objawy wyglądają tak: Karty 512MB i 16GB: porgram mniej...
jest mały problem uruchomiłem wszystko jednak system się zawiesza dioda się zapala uruchamia się wyświetlacz i usart wszystko zawiesza :/ main.c [syntax=c]/*****************************... (c)*************************************... ** ** http://www.powermcu.com ** **--------------File Info------------------------------------...
Witam serdecznie. Proszę o poradę. Programuje STM32L051 w Atolicu. Wstępna konfiguracja została wykonana poprzez Cube. Kod to tylko i wyłącznie ustawianie w pętli: naprzemiennie stanu wysokiego i niskiego na dwóch pinach z opóźnieniem i wygląda tak: SEGGER J-Link GDB Server V6.44i Command Line Version JLinkARM.dll V6.44i (DLL compiled May 17 2019 17:34:22)...
Witam, mam problem z zawieszaniem się freeRTOSa. Program grzęźnie w funkcji vListInsert void vTaskUSART3(void * pvParameters) { portCHAR i; vSemaphoreCreateBinary( xSemaphore_US3_O ); xSemaphoreTake( xSemaphore_US3_O, 0); xQueue3_TX = xQueueCreate( 32, sizeof( portCHAR ) );//32 xQueue3_RX = xQueueCreate(...
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);...
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"...
Witam. Szkole się w programowaniu zacnych STM32 i od razu na poczatku mam problem z funkcja printf(); Po wywołaniu tej funkcji procesor się zawiesza. Mam zrobiony proste nadawanie i odbieranie danych przez UART. Używam Keila MDK ARM V5 biblioteki HAL wygenerowane w STM32CUBEMX. Korzystam z płytki Kamami Zl27ARM. Na razie chcę uzyskać następujące efekty:...
Dodano po 31 Kiedy debuguje program, krokowo, zaraz po a = 124; z linii b = log10(a); wskakuje do nieskończonej pętli - void HardFault_Handler(void). Tak jakby sam adres procedury wywoływał błąd sprzętowy.
Hi, mam poprawne wartości BRR :) użyłem bibliotek do wypełnienia rejestrów a później sobie odczytałem co jest wpisane w UART5->BRR (w ten sposób nie musiałem nic liczyć) jednak jeszcze coś jest nie tak... termometr odpowiada na Reset 0xE0 jak zabiore termometr to otrzymuje to co wysłałem czyli 0xF0 - tak jak to opisane w tym źródle od Maxima, jednak...
Witam, czy spotkał się ktoś z Was może z taką sytuacją, żeby uruchomiony zegar sterwonika FSMC uniemożliwiał generację sygnału start z i2c? Transmisja jest możliwa dopiero po jego wyąłczeniu, co może nie jest strasznie uciążliwe, ale nieprzyjemne i przede wszystkim nie wiem czemu tak jest... kod (pomieszany, ale po woli sie przesiadam z biblioteki na...
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...
1. Konfiguracja kanału DMA1_Stream1, ale bez włączania go. 2. Konfiguracja multipleksera DMAMUX1_Channel1 i tutaj chyba trochę brakuje. Sprawdziłbym jeszcze ustawienia pozostałych bitów z rejestru. 3. Włączenie DMA1_Stream1 poprzez: DMA1_Stream1->CR = DMA_SxCR_EN; 4. Włączenie żądania transferów DMA z UART poprzez UART4->CR3 = USART_CR3_DMAT; Jak wygląda...
Witam, Mam problem z obsługą przerwania w mikrokontrolerze STM32l. Mam projekt postawiony na FreeRTOS'ie (jeśli ta informacja ma znaczenie). Otóż w przerwaniu odbieram z UARTA znaki odpowiedzi AT modemu: [syntax=c] void USART1_IRQHandler(void) { uint8_t ch = UsartGetChar(GSM_USART); rawCommandBuffer[rawCommandBufferCounter... = ch; rawCommandBufferCounter++;...
W skrócie w wersji jeszcze bez buforu, wysłanie jednego bajta wpisujemy w pętli głównej data_tx = jakies dane, ta dana musi być volatile oraz przed tym wpisaniem dajemy USART1->CR1 |= USART_CR1_TXE;? Potem w przerwaniu jest kasowany ten bit. ...oczywiście zdaje sobie że będzie wysyłało te dane do bólu a tę boleść może przerwać sprawdzanie flagi z ISR,...
Bawię się na KA-NUCLEO F11. sprintf oraz funkcja uart_read_line(&huart2, buffer, 1024) wywołuje wyjątek HardFault. Znalazłem podobny temat, związany za liczbami zmiennoprzecinkowymi ale tam program nie "zawieszał się". Przykłady kodów zaczerpnąłem z https://stm32.eu/2017/11/28/3-stm32cube-... Fragment kodu [syntax=c] char buffer[1024];...
inicjalizacja /*--------------------------------------... * L3GD20 SPI *---------------------------------------... #define L3GD20 GPIO_BSRR_BS_1 #define L3GD20_SS_ENABLEGPIOA-> BSRRH |= (L3GD20) //Reset #define L3GD20_SS_DISABLEGPIOA-> BSRRL |= (L3GD20) //Set...
jeszcze nie zapomnij o samym USARC-ie, który może byc w stanie błedu - bo obsluga DMA była właczona, ale DMA nić nie zabierało. Możesz rozwinąć, bo nie rozumiem, dlaczego włączenie DMA dla USART miałoby powodować błędy, jeśli dane nie przyjdą? (at)kamil94goldman : W HAL to jest taka funkcja: Lecz w jaki sposób mogę zrobić odbieranie danych przez UART...
Jakoś sobie ubzdurałem, że skoro w F1 RX w USARTcie jest wejściem pływającym to MISO też tak ma być ustawione, a to zupełnie inna rodzina i inne peryferium. We wszystkich rodzinach STM32 - z wyjątkiem F1, gdzie jest inna implementacja GPIO - dla funkcji alternatywnych trzeba zawsze ustawić "alternate function mode" - bez patrzenia czy to jest wejście,...
Witam. Od pewnego czasu walczę z chińską płytką (blue-pill) z STM32F103 na pokładzie i z tego co już się nauczyłem oraz co sobie w ReferenceManualu wyczytałem to wiem, że AVR'y odłożę na półkę:) Moja nauka jest w stylu 'bare-metal' wykorzystuję jedynie pliki nagłówkowe stm32f103xb.h i kilka od CMSIS które można wydobyć z STM'owych bibliotek, więc ich...
Widzę że dosyć cich. dorzucam jeszcze skrypt linkera i startup. nawet mam brakepointa w void Reset_Handler(void) i w niego nie wchodzi. ale na brakepointa w Default_Handler reaguje. Zanaczam że jak wgram program na mikrokontlorer to działa bez zarzutu... [syntax=c]/* Procedura startowa dla STM32 connectivity line devices */ /* NastÄ™pujÄ…ce...
stm32 usart usart stm32 stm32 zawiesza
wariuje klawiatura sterowanie rolet zewnętrznych bzyczenie zasilacza
pralka indesit cieknie pralka indesit cieknie
Błąd ładowania nr 8 w odkurzaczu Roomba – przyczyny i rozwiązania Opłata za gniazdko telewizyjne bez korzystania z kablówki