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...
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 ****************************************...
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ć...
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...
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);...
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?
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------------------------------------...
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.
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();.
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 :) 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...
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...
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ę...
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, 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...
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, 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...
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:...
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...
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...
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);...
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...
Witam mam taki problem, otóż mój STM32F4 bardzo dziwnie się zachowuje. Mój program ma odczytywać z 3 różnych czujników przez I2C dane i przeliczać je. I2C zrealizowane jest na przerwaniach (z najwyższym priorytetem), dodatkowo używam timera 2, by odmierzał czas. Oto kod: [syntax=c]#include "stm32f4xx.h" #include "stm32f4xx_conf.h" #include <stdio.h>...
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(...
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,...
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...
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...
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...
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)...
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...
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");...
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, 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...
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...
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"...
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,...
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++;...
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.
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. 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...
inicjalizacja /*--------------------------------------... * L3GD20 SPI *---------------------------------------... #define L3GD20 GPIO_BSRR_BS_1 #define L3GD20_SS_ENABLEGPIOA-> BSRRH |= (L3GD20) //Reset #define L3GD20_SS_DISABLEGPIOA-> BSRRL |= (L3GD20) //Set...
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...
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];...
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...
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, mam problem z konfiguracja DMA na plytce STM32 Discovery. Uzywam True Studio + ST Lib. W trakcie debugowania zawiesza sie debugger na linijce: [syntax=c]DMA_DeInit(DMA1_Channel1); [/syntax] Wiem, ze DMA w ogole nie rusza bez dobrze skonfigurowanego RCC wiec tutaj jest RCC_Config(): [syntax=c] void RCC_Conf(void) { ErrorStatus HSEStartUpStatus;...
stm32 usart usart stm32 stm32 zawiesza
europower kanał budowa radio odbiornik schemat skrzydło wiatrak
Whirlpool CB304W – automatyczne włączanie wentylatora, cykle pracy, sterowanie Jak wyłączyć pocztę głosową w Plusie - instrukcje