fbpx
Opublikowano przez Mateusz Salamon, temu

Podział na pliki projektu w języku C – wstęp

Chciałbym zrobić wstęp do podziału projektu na pliki w języku C. Jest to nam potrzebne też do tego, aby zrozumieć czym jest moduł lub jednostka kompilacji. Dobre zrozumienie pojęcia “jednostka kompilacji” spowoduje to, że później lepiej będziesz się orientował w zakresach widoczności np. zmiennych. Dodatkowo lepiej zrozumiesz czym jest kompilacja, Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Nie działają przerwania na STM32G0? Czym jest VTOR? (BUG HALa)

Z rodziną STM32G0 jeszcze nie miałem zbyt wiele do czynienia, ale moi kursanci już tak. Ostatnio rozwiązywaliśmy wspólnie problem niedziałających przerwań na STM32G031J6M6 znanym z płytki STM32G0316-DISCO. Był to o tyle ciekawy problem, że postanowiłem się nim szerzej podzielić. Obsługa przerwań przez NVIC w STM32 NVIC to skrót – Nested Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Jak poprawnie konstruować wskaźnik na funkcję (callback)?

Przychodzę dzisiaj z ciekawym tematem. Będzie to wskaźnik na funkcję. W odróżnieniu od “zwykłych” wskaźników są nieco trudniejsze. Z tego względu, że funkcje definiuje więcej rzeczy niż zwykłą zmienną. Wskaźnik na funkcję Wskaźniki mogą pokazywać na dowolną komórkę pamięci, a nasz kod programu to nic innego jak kolejne instrukcje w pamięci Flash. Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Jak robić wiele rzeczy jednocześnie na mikrokontrolerze?

Zapewne nie raz w Internecie i nie tylko widziałeś problemy osób stawiających pierwsze kroki z programowaniem mikrokontrolerów. Jednym z takich problemów jest to, że nie potrafimy wykonywać “wielu rzeczy naraz”. Przykładowo czekać na pomiar jednocześnie migać diodą i czytać stan przycisku. Frustracja narasta, a “fachowcy” śmieją się z takich osób Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Najpopularniejsze IDE do STM32 w roku 2022

W 2019 roku spytałem się społeczności grupy STM32 Polska na Facebooku, z jakich IDE lub innych notatników korzystają do pisania kodu na STM32. W 2019 nie mieliśmy jeszcze STM32CubeIDE, więc tamten ranking jest już nieaktualny. Pora odświeżyć statystyki. Ponownie zapytałem się programistów, z czego korzystają. Oto wyniki. Najpopularniejsze IDE do Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Semihosting w STM32 jako ciekawa opcja na debugowanie

Jeśli myślimy o debugowaniu to, co nam przychodzi do głowy? Breakpointy, praca krokowa, ale przede wszystkim printowanie. Mając do czynienia z mikrokontrolerami najczęściej komunikaty wysyłamy do terminala konsoli szeregowej na PC. Wykorzystujemy do tego jeden z interfejsów UART. Co jeśli tego UARTa nie mamy? Jest taki jeden sprytny mechanizm. Nazywa Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Nowa rodzina mikrokontrolerów do IoT – STM32U5

Ten wpis to początek do większej serii artykułów na moim blogu. W moje ręce wpadło coś, co miałem na oku odkąd pojawiła się pierwsza informacja od ST Microelectronics. Dostaliśmy nową serię mikrokontrolerów i to nie byle jaką! Rodzina mikrokontrolerów STM32U5 Nowa rodzina ma trzy podstawowe cechy: Ultra-niski pobór mocy Bardzo Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu

Te 6 elementów języka C MUSISZ opanować!

Książki do języka C opisują wszystko, co w tym języku się znajduje. Dosłownie każdy najmniejszy szczegół. Czy potrzebujesz wszystkiego? Oczywiście, że nie! Wybrałem 6 podstawowych elementów, które według mnie musisz poznać, aby zacząć pisać w języku C z myślą o mikrokontrolerach. 1. Instrukcje warunkowe Powinieneś dobrze opanować instrukcję if. Razem Czytaj dalej…

Opublikowano przez Mateusz Salamon, temu Opublikowano przez Mateusz Salamon, temu

Dostaliśmy świetną obsługę przerwania UART IDLE w HALu!

Temat UART w połączeniu z DMA co chwilę wraca jak bumerang. Zwłaszcza odbieranie danych na mikrokontrolerze sprawia najwięcej problemów. Dlaczego? Bo nie wiemy ile tych danych przyjdzie. Stąd odbiór po DMA jest nieco kiepskim pomysłem, bo musimy z góry określić ilość odbieranych danych. Ale nie zawsze… (więcej…)