Dobry wieczór Sam zaczynam z armami i nie bardzo wiem, czy wypada abym coś radził ? W każdym razie moja walka z RTC skończyła się na programowaniu rejestrów, bo z HALem do ładu dojść nie mogłem. Co prawda procesor nie ten (STM32F091RCT6), ale może RTC to samo. Inicjalizacja RTC : [syntax=c] int InitZegarRTCWithLSE() { uint32_t LoopGuard; /* GPIO_InitTypeDef...
Jeżeli nie zmienisz domyślnych ustawień podczas instalacji, to starsza wersja zostanie zastąpiona nowszą. Ja mam aktualnie 3 wersje w różnych lokalizacjach (4.23, 4.23+ na potrzeby jednego z workshopów ST i 5.0). Każda działa i nie gryzie się z innymi, ale aktualizacje uruchamiam tylko dla 5.0. Jeżeli jest jakaś niezgodność między projektami i wersjami,...
Jest kolega pewien, że pobrał kolega pliki do tej książki? CubeMX ma porozdzielane pliki bibliotek na foldery Inc i Src, a Kolega ewidentnie ma pliki od książki z SPL. Pobierał kolega pliki stąd?: https://wydawnictwo.btc.pl/elektronika/5... Nowa wersja tych bibliotek ma więcej znaczników...
To jest akurat dobre, bo dzięki temu udało się zrozumieć kilka bibliotek. Inaczej się robi jak już wstępnie coś działa - inaczej jak masz surowe źródło i trzeba zrozumieć, skompilować i uruchomić. Mnie akurat w CubeMX wkurza fakt, że zmodyfikowali sposób obsługi biblioteki. W "czystym" FatFS masz plik źródłowy diskio.c, w którym trzeba dodać kilka...
To sprawdź jeszcze po zalogowaniu się do konta ST czy nie masz ustawionego jakiegoś dziwnego kraju. Ewentulnie STM źle identyfikuje Twój adres IP.
Na razie dziękuję. Spróbuję ponownie zainstalować bo widzę, że jest nowsza wersja Firmware. Dam znać o wyniku.
cube doøacza tylko te, które są w projekcie. Pewnie nie użyłeś U(S)ART-ów w Cube i teraz problem. Skopiuj sobie pozostałe
Udało mi się rozwiązać problem. Projekt który kontynuuję został rozpoczęty na starszej wersji środowiska. Więc zaktualizowałem CubeMX (wygląda na to że każdy składnik środowiska należy aktualizować oddzielnie), a następnie utworzyłem od nowa projekt i konfigurację mikrokontrolera wykonałem od nowa (o dziwo teraz nie muli się przy wprowadzaniu własnych...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Multi-licencjonowanie oznacza prawdopodobnie możliwość wyboru. Należy jednak wczytać się dokładnie w intencje Autora.
Przykład obsługi TSC z F072 był niedawno w Elektronice Praktycznej. Rozsądna pojemność kondensatora to 47n. Shield nie używałem.
Generalnie kod powstał w CubeMx i ten sam plik wygenerował kod dla CubeIDE i Keila dlatego dziwne są te różne wartości dla IWDG_PRESCALER. Sprawdzę to w domu i poszukam błędu. Zawartość plików '.ioc' zapisanych przez CubeMX też jest różna w obu projektach. Pomijam już ustawienia docelowego środowiska, ale ten prescaler IWDG jednak się tam też różni.
Poradnik kol. (at)szczywronek , strona 139.
Chciałbym tak skonfigurować Keila, abym mógł używać bibliotek HAL ale bez konieczności importowania projektu z Cube mx. Możesz użyć szablonu aplikacji HAL z repozytorium CubeMx, do konkretnego uC, przegrywając biblioteki do swojego workspace i zmieniając ewentualnie ścieżki do bibliotek. Tu już był niedawno pokrewny temat: https://www.elektroda.pl/rtvforum/topic3...
Gdzie mozna to właczenie zegara UARTa zlokalizowac? Zobacz do pliku ..._hal_msp.c (funkcja HAL_UART_MspInit). Jest tam włączenie zegara (__HAL_RCC_USART1_CLK_ENABLE();) i ustawienie GPIO pinów na których pracuje użyty UART. Tyle że jawnego wywołania tej funkcji w main.c nie zobaczysz, bo ta funkcja jest wywoływana prosto z HAL (wewnątrz funkcji HAL_UART_Init).
Myślę że przesunięcie rzędu czas trwania jednej konwersj nie było by problemem więc pytanie nadal aktualne A dlaczego nie wykorzystać możliwości. Jeżeli nie znasz HALa to najpierw zainstaluj sobie przykłady w Cube (ale nie mx) i przeanalizuj je. Wtedy domyślisz się jak zaincjalizować porty, ADC, DMA i timer aby trygierzował konwersje w odpiednim czasie....
Zapomniałeś oczywiście o FLASH LATENCY. Musisz ustawić odpowiednio rejestry pod 72MHz, łatwo to znajdziesz w RM.
Po pierwsze, CMSIS to coś zupełnie innego, niż Ci sięwydaje i z "pisaniem na rejestrach" nie ma nic wspólnego. To, jak się pisze, zależy od "przemysłu". Jeśli program ma działać, być krótki i prosty w zapisie i wymaga sporej wydajności - pisze się głównie na rejestrach. Jeśli chcemy zamigać diodą pisząc min. 50 linii kodu i udowodnić, jak trudne jest...
Rzeczywiście kompilator zwraca przy f_write warning. Jak to powinno się poprawnie zapisać? Należy użyć dokładnie takiego typu jakiego oczekuje funkcja, czyli UINT, a nie uint8_t. I bynajmniej nie chodzi o rzutowanie - należy zmienić typ zmiennej której adres jest przekazywany do funkcji. Zwrotne informacje z tych funkcji odbieram, ale nie chciałem...
Nie podoba mi się układ kodu generowanego przez ten system, a przede wszystkim konieczność pisania w zdefiniowanych miejscach pliku. Nie musisz całkowicie rezygnować z CubeMX, bo jest dość pożyteczny. Ale możesz go użyć raz, jako "generatora" poprawnej aplikacji a później przerobić według uznania projekt, powyrzucać te specyficzne komentarze i inne...
po wymienionej ingerencji w ustawienia Cube'a problemu nie ma - wszystko działa... No i fajnie. Ale też przy okazji tego wątku "odkryłem" że wybierając w CubeMX płytkę Nucleo-F103RB i "ptaszkując" opcję "Initialize all IP with their default Mode" dostaje się konfigurację już z ustawionym SYS->Debug->Serial Wire i problem z blokowaniem SWD akurat dla...
Dlatego zamierzam zmienić środowisko. Cube nie gryzie, już ściągnąłem tą bibliotekę, Workbench niebawem. Gratuluję decyzji :D . Co do tych dwóch programów, to mam taką drobną uwagę. Zarówno CubeMX jak SW, do utworzenia źródeł potrzebują i samodzielnie ściągają komplety bibliotek z serwera STM (często są nowe wersje). SW właściwie potrzebuje je tylko...
EDIT: tak - w środku paczki w wersji 1.12.0 są pliki w wersji 1.11.0. Brawo. Kolejna nowość. Na stlink utility miesiąc tak się czekało. Na nowej stronie była nadal stara wersja na starej już nowa. Użyj cubemx to ściągnięcia, albo poczekaj dzień lub dwa
1. Aktualna wersja CDC z CubeMX na F4 (tylko) ustawia zbyt mały rozmiar stosu. To, gdzie jest stos, zależy od środowiska, np. w Keil CDC na F4 z domyślnym stosem zawiesza się na 100 %. 2. Teraterm znosi odłączenie urządzenia przy otwartym terminalu i poprawnie reaguje na jego przyłączenie. Każdy inny program terminal w takim przypadku zdycha. 3. Procedura...
A nie masz jakiś dziwnych ustawień formatu liczby typu ',' zamiast kropki itp. Czasami można z tym dostać cholery. Chodzi mi o ustawienie w Windows Jeszcze wczoraj rano stara wersja CubeMX działała (przynajmniej w tym zakresie :) Nigdy nie miałem z tak trywialną sprawą problemu, a pracuję z kilkoma różnymi procesorami od F0 do L4. Zrobię czystą instalację...
Wstępem. Moje wektory przerwań. Stan prawie aktualny. (brak 3 dla najnowszych F0). Kompatybilne z CubeMX
TIM2 nie wywołuje żadnego przerwania Włączyłes przerwania od TIM2 w CubeMX? Wystartowałeś TIM2 funkcją "_IT"?
Pliki z CubemX nie są kompatybilne z SPLem. Najlepiej porzucić jakiekolwiek biblioteki
Najszybciej: skorzystaj z STM CubeMX i opcji wyszukiwania podobnych układów. W zależności jakie obecnie masz opcje to albo skorzystać z Cross Selection, albo już pod projekt układy kompatybilne pinowo i funkcjonalnie.
CubeMX nie ma problemów z kanałami TIM1CH1, 2 i 3 przy włączonym USB. Wybierz Clock Souce - Internal Clock.
Co znaczy remap dla PB8 i PB9? Myślałem jak ustawię w Cube to pozostanie mi tylko pisanie obsługi CAN. Remap tych pinów masz już zrobiony przez CubeMX. W pliku "stm32f1xx_hal_msp.c". Tak że nie to. Przykładowe demo CAN na HAL masz w repozytorium CubeMX, co prawda dla nieco większego F103 i nie w konwencji Cube, ale podejrzyj ustawienia, może coś zobaczysz:...
Używasz JTAG, czy SWD? Jak masz skonfigurowane ustawienia ST-Link w Keilu? Czy w CubeMX zaznaczyłeś właściwy interfejs debugowania w Pinout-SYS? Czy przypadkiem nie zaznaczyłeś "set unused pins as analog" w ustawieniach projektu? Jeśli "wyprogramowałeś" debugowanie, to sposobem jest zaznaczenie w konfiguracji ST-Link "connect under reset" (jeśli masz...
Nic nigdzie nie jest wysyłane, bo stos USB CDC z CubeMX nie obsługuje ruchu po notification endpoint. Trzeba to napisać.
Jeśli używasz szablonów generowanych przez CubeMX (czy ogólnie szablonów producenta), to one ustawiają zegar w funkcji która wywoływana jest ze startupa _PRZED_ main().
Graficzne narzędzie do konfiguracji zegarów znajdziesz np. w CubeMX - w dodatku zweryfikuje Ci poprawność ustawień i wygeneruje fatalny, ale poprawnie działający kod w C.
Masz dużo więcej do zmiany - np. plik startowy. Wygeneruj nowy projekt dla F030 pod CubeMX i wrzuć do niego pliki starego. Pamiętaj, że konfiguracja portów we wszystkich nowszych rodzinach jest zupełnie inna niż w F1.
Bawiłem się ostatnio CAN'em na STM32F103. Program "demonstracyjny" nie został w pełni ukończony ale działa. Można by poeksperymentować z filtrami bo na początku konfigurowałem wszystkie (albo więcej niż wszystkie). Załączam ważniejsze pliki. Cube nie robi niestety wszystkiego. Sama konfiguracja jest w Cube (nowym). W programie używałem rejestrów. STM...
Najpierw zrób tak aby działało samo nadawanie, pokaż jak w CubeMX to skonfigurowałeś. Dopiero jak będziesz mieć pewność, że na 100% dobrze wysyłasz uruchom odbiornik. Tylko aby nadawanie działało musisz ustawić w CubeMx (na czas testów bez podłączonego odbiornika) opcję Loopback (wtedy STM sam sobie w środku wysyła potwierdzenie odebrania danych, inaczej...
To nie jest mój kod, tylko jedna z bibliotek do obsługi wyświetlacza z HD44780. Kod do LCD_String(buf) wygląda tak: sprintf coś takiego robi, ponieważ jak ją usuwam, to w debugerze zmienna jest poprawna.
(at)matej1410 Masz rację, zasugerowałem się postem #4. Patrząc w program, nie widzę inicjalizacji pinów PB6 i PB7. Jest inicjalizacja B1 i LD2, ale brakuje I2C1. Może to wynikać z ręcznej zmiany konfiguracji pinów, którą wprowadziłeś w CubeMX wyłączając pull-up'y. Co pokazuje debugger w rejestrach GPIOB oraz I2C1?
(at)stmx proszę nie wprowadzaj w błąd! Domyślne ustawienia w CubeMX dla STM32F103xx prezentuje poniższy rysunek. Jak widać wszystko jest na 8 MHz. https://obrazki.elektroda.pl/7829044400_...
A co nie działa? HAL_Delay(1) nigdy nie da 1ms. Zrób przynakjmniej ze 20ms i zobacz wtedy.
Odpowiedz sobie (przy okazji możesz i nam) na poniższe pytania: Jaki to mikrokontroler? Jaka jest częstotliwość głównego zegara? Jaka jest częstotliwość zegara szyny timera? Jaka jest częstotliwość zegara timera? (to nie jest wcale takie oczywiste - są automatyczne dzielniki, przy podziale częstotliwości szyny zegar timera może być 2x szybszy od zegara...
To nie rozwiązuje problemu. Jeśli masz do skonfigurowania kilkadziesiąt pinów to dalej stoisz w tym samym miejscu - tracisz dużo czasu na klepanie konfiguracji dla GPIO. To rób konfigurację CubeMX a dostęp do GPIUO na rejestrach. Często używam tej metody nie tylko dla GPIO ale i dla USART, SPI. Transmisję realizuję swoimi funkcjami a init robię przez...
Po pierwsze, ważna sprawa. Adres kości w funkcjach HAL podawany jest w konwencji 8-bitowej (przesunięty o jeden bit w lewo względem drugiej konwencji występującej np. w dokumentacji tej kostki). Czyli dla QN8025 używasz adresu 0x20 (00100000). Druga rzecz. Nie wiem czy Twój moduł posiada oporniki podciągające linie I2C. Sprawdź, ewentualnie dodaj jeśli...
Potwierdzam SW4 dla Linuksa jest w postaci gotowych instalatorów tak jak dla Windowsa. Wszystko instaluje się raczej bezproblemowo. To samo dotyczy CubeMX. Ale o szczegóły nie pytajcie bo instalowałem to dawno temu. Początkowo były jakieś problemy z ST-Linkiem (trzeba było ręcznie resetować w czasie wgrywania i oczywiście nie działało debugowanie),...
Peryferia w różnych STM32 są PRAWIE takie same. Identyczne są timery, UARTy mogą się różnić rozszerzeniami funkcjonalności (baza zawsze taka sama), SPI występuje w dwóch odmianach, USB - w kilku różnych. Seria L4 ma najmniej udziwnień i parę przyjemnych cech, np. w wielu modelach można używać USB bez kwarcu, co w F4 ani F7 nie jest możliwe. W wyborze...
tim.TIM_Period = 0; // na co to ma wpływ ? Na okres timera. Przy takim ustawieniu nie działa. TIM1 nie jest taktowany na 100 MHz. Sprawdź drzewo zegarów w CubeMX. Dostałeś kompletny kod z EP. Zamiast go użyć, kombinujesz jak koń pod górkę z koszmarnym SPLem i próbujesz wynaleźć koło od nowa. To chyba nie jest sposób na sukces. A aktualnego schematu...
Jeśli używasz stosu USB z CubeMX, to: 1. Oprogramowanie urządzenia niekoniecznie jest poprawnie skonfigurowane, np. słynne już błędne ustawienie VBUS sensing lub bzdurny rozmiar bufora danych w CDC. 2. Funkcje wysyłania danych muszą być wołane z przerwania o tym samym priorytecie, co przerwanie USB - inaczej urządzenie się powiesi z powodu błędnych...
Ale dlaczego UART2 nie działa? Bo układ peryferyjny siedzący na pinie w DISCO zakłóca transmisję? DISCO chyba są znane z tego, że nie wszystkie piny procka można wykorzystać bo coś na nich wisi? Albo jakiś rezystor na pinie DISCO wespół z tymi na UNO ją uniemożliwiają? Spróbuj skorzystać z pinu alternatywnego dla UARTA. Aczkolwiek CubeMX podpowiada,...
cubemx arduino cubemx bufor cubemx praca
optyczny wejście audio schemat bezpieczników astra nadajnik pieczewo
sharp aktualizacja oprogramowania połączenie miedź aluminium
Podłączenie prądnicy amerykanki w układzie jednofazowym Podłączenie zasilania radia Harman Becker BE 6094 w Mercedesie