Na pewno funkcja delay zlicza takty zegara? Jak ona wygląda? Wykorzystałeś jakiś timer, przerwanie, pokaż ją.
Wiesz co ja dopiero zaczynam z programowaniem stm ale jedna sprawa rzuciła mnie się w oczy. twoja funkcja jest prawie funkcją z biblioteki której definicja i rozwinięcie znajduje się w pliku core_cm4.h [syntax=c] __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible...
Dzięki za zainteresowanie. FSMC w ogóle nie dotykałem. Napisze tak jak to rozumuje, a mogę to źle rozumować także zaraz mnie poprawcie jak coś. FSMC nie dotykałem, po mimo, że wiem, że STM ma właśnie FSMC co służy do wspomagania transmisji z LCD. Ale chciałem sie oprzeć na bibliotece którą mam. Wzorując się na LPC1768, który takowego wspomagacza LCD...
Witam ostatnio dostałem wyświetlacz HY28a (ILI9320). Od tygodnia próbuje coś na nim wyświetlić lecz bez skutecznie. W internecie znalazłem kod pod LPC, doszedłem do wniosku że po lekkich modyfikacjach powinno zadziałać na stm32f4 discovery. Poniżej przedstawiam kod pod LPC na którym się bazuję. [syntax=c]/*****************************...
"Tick frequency" dotyczy jedynie przełączania zdarzeń o tym samym priorytecie które są w stanie "gotowe" (czyli w zasadzie chodzi o "round-robin scheduling"). Wszelkie* operacje na "synchronization primitives" (semafory, mutexy, kolejki, delay, sekcja krytyczna, ...) powodują natychmiastowe przełączenie kontekstu (jeśli jest ono oczywiście konieczne)....
Pokaż jeszcze tą magiczną funkcje _delay_ms() (najlepiej wraz z assemblerem). Przy okazji: FMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FMC_NORSRAMTimingInitTypeDef FSMC_NORSRAMTimingInitStructure; Jeśli nie jesteś 100% pewny, że "wypełniłeś" _WSZYSTKIE_ istniejące pola tych struktur, to powinny być one zainicjalizowane zerem ("... = {0};"), albo...
Ma przecież główną funkcję delay i funkcję przerwania dekrementującą zmienną.
Dla danych do których dostęp jest nie tylko z poziomu programu, lecz realizowany także przez sprzęt, w tym przypadku DMA, volatile jest obowiązkowe, bo kompilator nie wie, że tablica dane jest gdzieś jeszcze wykorzystywana, więc z punktu widzenia optymalizacji zapis do niej w pętli, po wywołaniu HAL_UART_Transmit_DMA nic nie robi, więc optymalizator...
Dzień dobry, Mój problem polega na tym, że kulawo działają moje funkcje do odczytywania (nie wiem czy zapisywania ) po spi do kodeka vs1011 w procesorze stm32f4. Co ciekawe te same funkcje działaja poprawnie przy komunikacji z kartą sd. Poniżej zamieszczam kody tych funkcji: funkcja wysyłania bajtu do spi: void WriteSpiByte (BYTE Data) // Wyslanie...
Ja mam taką funkcję od opóźnienia zrobionego na podstawie SysTick'a, nawet działa. Korzystam z niej podczas komunikacji 1wire i wszystko pięknie śmiga. W funkcji delay_init( 168 ); wpisujesz częstotliwość zegara w MHz np. dla STM32F4. [syntax=c_loadrunner]#include "../lib/stm32f0xx.h" #include "delay.h" static uint8_t fac_us = 0; void delay_init( uint8_t...
Częściowy sukces. Metodą prób znalazłem gdzie tkwi problem. Okazuje się, że nie działa prawidłowo funkcja Delay_ms(). Procek zamiast odliczać krótkie opóźnienia zapętla się w nieskończoność. Na chwilę obecną rozwiązałem ten problem wklejając kod tego dema do innego programu w którym prawidłowo działa podobna funkcja opóźnienia i program w końcu ruszył....
Układ Ina219 zasilam napięciem 5V podciągniętym z płytki nucleo. Dlaczego nie z 3,3V? Na NUCLEO, jak pamiętam, 3,3V jest wyprowadzone. Kod zapisu wygląda na poprawny (nadal niepotrzebny teraz delay). Czy funkcja HAL zwraca HAL_OK? Jeśli nie, musisz szukać błędu w sprzęcie. PS Timeout masz dość długi, jakieś 50dni, więc za zwrotem błędu musisz tyle...
Witam Tak jak Ci pisałem ja to zrobiłem semaforze, wysyłam go z przerwania USB + dodałem task który czeka portMAX_DELAY, jak pojawi się semafor to wykonywana jest funkcja USB. czyli : [syntax=cpp] for(;;) { if(xSemaphoreTake( xUsb2App, portMAX_DELAY )) { //tu funckcja USB; } } void OTG_HS_IRQHandler(void) { portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;...
tak: [syntax=c]SysTick -> CTRL &= ~SysTick_CTRL_ENABLE_Msk;[/syntax] Te funkcje róznią się tylko tym, że jeśli chodzi o us to wartość od której zliczamy do zera jest podzielona przez 1000000, a nie 1000 jak w ms. Kolejny dowód, jak zamieniam delay 1ms na 1000us to wyświetlacz strasznie wolno odświeża (jeszcze dłużej zajmuje mu wyświetlenie każdej literki).
Witam, mam problem z przesłaniem pliku do dekodera VS1011, stworzyłem funkcję ,lecz niestety udaje mi się odtworzyć kilka ms pliku mp3. Niestety nie mogę powiększyć aktualnej tablicy ze względu na przekroczenie pamięci "stack overflow". Potrzebuje porady jak można w inny(lepszy) sposób napisać funkcję by odczytać cały plik dźwiękowy zapisany na karcie...
Witam, mecze się z DS18B20. Naskrobałem poniższy kod ale wydaje się działać połowicznie. Ale po kolei, pierwsze co robię to ONE_WIRE_Init (), a potem ONE_WIRE_Read_Tmp(). I przy tej drogiej funkcji mam problem bo zwraca ona za każdym razem 0x0808 (jak by komendy nie zmienić zawsze tak samo, a nawet bez komend). ONE_WIRE_Init_Sequence() działa poprawnie...
A ta funkcja do wysyłania stringa korzysta z RTOSa? Bo jeśli tak, to raczej cieżko przypuszczać żeby się wykonała gdy task w którym występuje problem i ma wyższy priorytet jest w nieskończonej pętli... Jeśli nie masz debuggera, to lepszą opcją zamiast nieskończonej pętli byłoby coś na styl vTaskDelay(portMAX_DELAY); 4\/3!!
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,...
[syntax=c] IMU *imu = new IMU(); int main(void) { double dt; // delta time for all calculations uint32_t timer = 0, debug_timer = 0; // double madgwickRoll, madgwickPitch, madgwickYaw; // double madgwickRollRate, madgwickPitchRate, madgwickYawRate; fpu_enable(); system_init(); pll_start(CRYSTAL, SYSCLK_FREQ); _delay_ms(1000); while (1) { // Calculate...
Witam, Dalej walczę z książka STM32 Aplikacje i przykłady w języku C. Doszedłem do obsługi przerwania RTC. W książce jest przykład, który konfiguruje przerwanie od RTC, tak jak by to było przerwanie wewnętrzne. Autor zakłada, ze w pliku stm32f10x_it.c jest gotowy szablon funkcji RTC_IRQHandler (), który należy uzupełnić oraz uaktywnić przerwanie w NVIC....
Problem rozwiązany. Błędna inicjalizacja wyświetlacza Poprawna sekwencja inicjalizacyjna: [syntax=c]LCD_WriteCommand(0x01); delay(10); LCD_WriteCommand(0x28); LCD_WriteCommand(0xcf); LCD_WriteData(0x00); LCD_WriteData(0x83); LCD_WriteData(0x30); LCD_WriteCommand(0xed); LCD_WriteData(0x64); LCD_WriteData(0x03); LCD_WriteData(0x12); LCD_WriteData(0x81);...
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;...
Środowisko Eclipse + GCC z newlib. Jest zaimplementowane _sbrk(), nie mam implementacji _sbrk_r(). Nie ma ostrzeżeń z kompilatora. Stos 1024 bajty o ile dobrze patrzę w skrypt linkera. Optymalizacja wyłączona. Nie ma przerwań. Nie wiem czy koprocesor jest włączony. Próbowałem kompilować zarówno z -mfloat-abi=hard jak i bez. Delay nie ma znaczenia. Dziękuję...
Witam, Mam problem z obsługą wyświetlacza 128x64 zgodnie z ks0108 na mikrokontrolerze STM32F4 . Po poprawnym przyłączeniu do układu wyświetlacza, zabrałem się za oprogramowanie tego mikrokontrolera. Mój schemat podłączenia wyświetlacza wygląda tak : RS (Di) - PB1 R/W - PE7 E - PE9 CS1 - PB2 CS2 - PE8 RST - PE10 Data - PA0 do PA7 I mam sterownik: [syntax=c]...
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...
Witam, małe uzupełnienie do wcześniejszego postu: Procesor: STM32F303RE Płyta ewaluacyjna: Stm32nucleo zmiany w linkerze: [syntax=c] /* +=======================================... | stacks sizes +=======================================... */ /* Handler mode (core exceptions / interrupts)...
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...
Jest taki cały pierwszy wiersz zapełniony załączonymi pixelami (0XFF) a drugi jest pusty. Kontrast nie ma tu znaczenia. Kojarzę wzorek. Faktycznie to nie kwestia kontrastu. Wygląda po prostu jakby był nie zainicjowany. Kwestia z wrażliwością na napięcie wygląda mi raczej na jakiś efekt uboczny innej przyczyny. Testowałem kiedyś taki wyświetlacz na...
Witam. Posiadam płytkę STM32F4 oraz moduł ENC28J60. Chciałem przesyłać prosty pakiet do PC i monitorować czy doszedł Wiresharkiem. Ustawiłem sobie Receive Bufor od 0x0000 do 0x0FFF, wiec Transmit Bufor powinien automatycznie być od 0x1000 do 0x1FFF tak jak jest napisane w Datasheecie. Problem polega na tym, że się wysyła tylko wtedy, gdy wskaźnik ETXST...
Okej, zatem spróbujmy przystosować bibliotekę, którą mi podlinkowałeś do moich ćwiczeń ;-) Skopiowałem pliki EVE.h, EVE_commands.c, EVE_commands.h, EVE_config.h, EVE_target.c, EVE_target.h do odpowiednich folderów w projekcie. Teraz tak: W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji. Jeśli dobrze myślę to mnie interesuje ta konfiguracja,tak?...
Witam Mam problem z pamięcią SDRAM. Ustawiona jest wedle zmodyfikowanego lekko przykładu ze strony en.radzio.dxp.pl (porty definiowane innymi funkcjami). Wyglada to aktualnie tak: sdram.h [syntax=c]#ifndef SDRAM_H_ #define SDRAM_H_ #include "inc/stm32f4xx.h" // SDRAM base address for Bank 2 #define SDRAM_BASE 0xD0000000 // SDRAM size is 8MB #define...
http://obrazki.elektroda.pl/7307254400_1... Autor w końcu znalazł nieco czasu, aby poeksperymentować z płytką STM32F4-Discovery, którą kupił jeszcze w zeszłym roku. Jak w przypadku innych mikroprocesorów, naukę dobrze jest zacząć od obsługi pinów GPIO. Ponieważ na płytce STM32F4-Discovery wyjścia zorganizowane są w dwu dwurzędowych...
(at)Piotrus_999: Tak, wiem, czytałem, ale najprościej jest sprawdzić, czy przerwanie działa i czy do niego wchodzi (po prostu led'a zapalić w przerwaniu, tyle). Po wywaleniu SW4STM i zainstalowaniu czystego Eclipse i skonfigurowaniu według tutoriala od kolegi Freediego przerwania od linii zewnętrznych śmigają aż miło. Źródłem przerwania jest ekran dotykowy...
Witam. walczę już prawie tydzień z wyświetlaczem takim jak ten :arrow: http://kamami.pl/index.php?ukey=product&... Problem jest oczywisty, otóż wyświetlacz nie reaguje. Dodam, że prawdopodobnie nie ma komunikacji, napisałem funkcję zapisu i odczytu taką jak poniżej i odczytuję pokolei zawartość rejestrów i ciąle otrzymuję 0x9300. Połączenia...
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....
Musisz w swojej aplikacji dodać gdzieś swoją własną funkcje HAL_Delay(), która po prostu będzie wywoływała task-delay z FreeRTOSa.
To timingi. Takie rzeczy się dzieją jak za małe delaye są FMC ustawione. Często działa OK jak np masz inny poziom optymalizacji i generalnie wolniej wysyłasz komendy. To takie sprzętowe UB. Zwiększ czasy w FMC. Takie problemy objawiają się z reguły właśnie w tak tragicznie kiepsko napisanych funkcjach
Witam, Problem dotyczy STM32F103RBT6 i STM32F407VGT6, ale opiszę ten z F4. W przerwaniu "toogluje" wybrane dwa piny np PE7 oraz PD15 z wykorzystaniem bit-bandingu. Fragment kodu w przerwaniu http://obrazki.elektroda.pl/5752278500_1... Drugi przebieg przedstawia stan tych samych wyprowadzeń ale ten PD15 jest zanegowany w stosunku do PE7: http://obrazki.elektroda.pl/8674962400_1...
Witam Od kilku dni staram się uruchomić pewien tajwański tani szmelc o nazwie HY_TFT320_262K ze sterownikiem (rzekomo) ili9320. Problem w tym, że cała dokumentacja i przykładowe programy, które do niego dostałem są w krzaczkach lub całkowicie nie dotyczą mojego modelu wyświetlacza. Stąd swoją wiedzę i większość kodu czerpię z odmętów internetu i staram...
Witam, mam problem z uruchomieniem przykładu USB MSC device od ST. Przerobiłem go, aby zamiast karty SD wykorzystać dysk twardy na ATA. Funkcje obsługi dysku są na 100% dobre. Problem jest raczej w USB. Po prostu komputer wykrywa nieznane lub uszkodzone urządzenie. Za bardzo nawet nie wiem, jak się zabrać za szukanie błędów. Przykład USB Host mi działa....
Posiadam ekran oparty na sterowniku SPLC501C, 18 pinowy. Z racji tego, że nie dysponuję sprzętem do przelutowania zworki dla SPI, postanowiłem zaprogramować ekran pod STM32F407VG równolegle. Wykorzystałem dokumentację techniczną SunPlus SPLC501C i ku mojemu zdziwieniu ekran ruszył. Problem pojawił się w momencie kiedy chciałem go zaprogramować dla siebie....
Niestety program sie nie kompiluje bo wyskakuje mi błąd "Type 'RCC_APB2Periph_GPIOB' undeclared (first use in this function)" Tam był przykład dla STM32F1 dlatego zmień na: RCC_AHBPeriph_GPIOB Najprościej opóźnienie realizuje się tak: [syntax=c]for (volatile uint32_t i = 0; i < 0xFFFFF; i++);[/syntax]
Witam, chciałem wykorzystać kartę microSD do odczytu obrazków w projekcie zawierającym wyświetlacz LCD, natomiast pojawił się pewien problem z funkcją f_open() w FatFs. Podczas testowania program gładko przechodzi f_mount() zwracając FR_OK, natomiast wykrzacza się przy f_open() zwracając błąd FR_NOT_READY. Przeczytałem zarówno na forum jak i w czeluściach...
Witam. Posiadam mikrokontroler STM32F429 na płytce 32F429IDISCOVERY. Napisałem obsługę wysyłania i odbierania znaków przez USART, jednak program nie pracuje. Program przedstawia się następująco: -Załączam taktowanie do układu USART2: -Konfiguruję piny D5 (Rx) i D6 (Tx) jako alternatywne: - Konfiguruję układ USART2 do pracy: - Piszę funkcję obsługującą...
Jeżeli program ten kompilujesz z optymalizacją, to nie jest specjalnie dziwne, że nie działa tak jak tego oczekujesz - funkcja delay() powoduje opóźnienie tylko w teorii (i przy zerowej optymalizacji).
Witam, próbuję uruchomić akcelerometr LIS3DHH ( https://www.st.com/en/mems-and-sensors/l... ) na zestawie Nucleo F411RE ( https://www.st.com/en/evaluation-tools/n... ). Czujnik mam w postaci adaptera STEVAL-MKI180V1 ( https://www.st.com/en/evaluation-tools/s... ). Konfigurację dla mikrokontrolera generuję za pomocą CubeMX...
Witam ponownie, W STM32F3 SPI jest tak samo dziwne jak STM32F0, więc zapis/odczyt do/z rejestru DR trzeba realizować przez magiczny wskaźnik, gdyż inaczej SPI wysyła/odbiera 2 bajty. Postanowiłem sprawdzić jak to jest w STM32F4, konkretnie użyłem płytki STM32F429I-DISCOVERY i napisałem naprędce poniższy programik: [syntax=c] 1 2 /***************************************...
Witam. Rozpocząłem przygodę z programowaniem układów STM32F4. Nabyłem płytkę XNUCLEO-F401RE (kompatybilną z NUCLEO-F401RE) oraz skorzystałem z kursu który znajduje się pod tym linkiem [url=http://forbot.pl/blog/artykuly/prog...
https://obrazki.elektroda.pl/5646499900_... W poniższym projekcie przedstawiam "detektor koronawirusa" oparty na cyfrowym czujniku podczerwieni Seeed Studio Grove - MLX90615. Sensor ten oczywiście nie wykrywa bezpośrednio obecności samego wirusa (do tego potrzebne są zaawansowane testy na przeciwciała), ale pozwala na pomiar temperatury...
Witam ponownie Na początek sugerowałbym przetestować samą poprawność działania SPI, można np. zapętlić MISO z MOSI. Albo odczytywać z peryferiala rejestr ID. Dopiero w następnym etapie uruchamiać obsługę właściwą. Nie analizowałem Twojego programu ale podeślę mój 'bliźniaczy' i działający na STM32F429_DISCO, odczytuje on i wyświetla rejestry GYRO L3GD20....
stm32f4 delay funkcja delay funkcja delay arduino
oporność głośnik łączenie ładowarek sharan włącznik
Przycisk włączenia do lodówki Bosch Duo System KGS-3772/02 – gdzie kupić oryginał lub zamiennik? Vakoss TC-B7678 – adapter Bluetooth 5.0 USB, sterowniki, kompatybilność Windows, Realtek, CSR