Zgadza się. Na większości płytek jest 4k7 do +5, który dość skutecznie zastępuje 1k5 do +3.3. z grubsza chodzi o to, żeby przy podłączeniu na linii D+ pojawiło się napięcie nieco ponad 3V przy ściągnięciu w dół prądem ok 200uA. Stos USB z CubeMX nie wykrywa odłączenia, a funkcja Deinit() jest wołana tuż przed Init(). Są sposoby na wykrycie odłączenia,...
Tak zrobię. Na razie coś mi się posypało i program w ogóle nie chce się ładować. Może to jednak uszkodzony procek, który "prawie działa".... Dodano po 1 Jednak nie - procek jest sprawny. Udało mi się nawiązać połączenie i debugować korzystając z ST-Link (płytka STM32F4Discovery) i TrueStudio. SysTick działa. Wydaje mi się, że przyczyną złego działania...
przerwanie SysTick jest generowane co 10 us To dalej absurd.
Witam, Bawię się STM32 już od jakiegoś czasu ale właściwie nigdy nie potrzebowałem jakiś super prędkości. Teraz chciałem napisać prostą funkcję do sterowania WS2812b i natknąłem się na dziwny, moim zdaniem, problem. Pomimo, że Timery działają szybko to zwykłe przełączanie pinu (funkcja HAL_GPIO_WritePin) działa niemiłosiernie długo. Najprostszy program:...
Do NVIC wchodzą przerwania peryferiów. Pierwszych 16 wyjątków (w tym przerwania SysTick i PendSV) jest generowanych przez rdzeń, i one nie przechodzą przez NVIC, a w każdym razie nie tak, jak pozostałe. Na początek priorytetów nie ustawiaj wcale - domyślnie wszystkie są ustawione na 0. Nie ruszaj priorytetów, jeśli nie wiesz dokładnie, co robisz - to...
A jeśli chodzi o typ, to w tym przypadku powinienem użyć IRQ? Nie powinieneś używać żadnego. Jeśli używasz STM32F1 (technicznie rzecz ujmując - jeśli używasz rdzenia ARM Cortex-M3 w rewizji r1r1), to po prostu na początku main() (albo w startupie, albo gdzieś "bardzo wcześnie" - byle przed pierwszym przerwaniem) dodaj taką oto magiczną inwokację: SCB->CCR...
(at)pioter996 Przerwanie nie ma być kolejną pętlą główną.Żadnych opóźnień. Uproszczony algorytm: 1. Sprawdzasz pin - jezeli jest zmiana ustawiasz flagę ze jesteś w trakcie debouncingu - wychodzisz z przerwania 2. w n-ty m kolejnym przerwaniu (czas jaki zakładasz na debouncing) sprawdzasz czy stan się nie zmienił. Jeżeli nie to uznajesz za zdebouncowane...
Witam Zmagam się z akcelerometrem ADXL345 + STM32F103. Połączenie po SPI. Otrzymuję na wyjściu wartość przyśpieszenia w kodzie U2. Zapisana jest na 13 bitach, w dwóch rejestrach 8 bitowych. Po odebraniu najbardziej znaczące przesuwam << 8 i łączę z mniej znaczącymi. Problem polega na tym, że wciąż otrzymuję wartość dodatnią, mimo że na najbardziej...
1 ms to nie przesada, zostało mi z góry narzucone ponieważ bardzo liczy sie precyzja ruchu oto zczytywanie danych z encoderow: SysTick dziala co 1 ms [syntax=c] void SysTick_Handler(void) { Encoders_Read(); } [/syntax] teraz funkcja Encoder_Read [syntax=c] void Encoders_Read(void){ // Odczytanie predkosci z enkoderow oldLeftEncoder = leftEncoder; leftEncoder...
Zawsze jest systick, albo prawie zawsze. Jak Ci systick chodzi to inne tez powinny. Masz debugger? - masz wyprowadzone pewnie piny SWD. W przerwaniach zewnętrznych i tak musisz miec jakaś podstawę czasu aby zrobić debouncing. No chyba że szef zrobił to "na pałę" z delayem w przerwaniu (chodzą takie przykłady w internecie) - co zresztą podejrzewam.
Ja próbowałem wyłączać zegar, resetować rejestry i nic się nie udało standardowymi metodami. Więc napisałem protezę WG: - SysTick z najniższym priorytetem, - funkcja typu: void COMMON_softwareWatchdogReload()&... g_watchdogCount = 0; } - w przerwaniu od SysTick jest coś takiego: if(g_watchdogCount>WATCHDOG_RELOA...
Na stronie 114 poradnika z tego tematu https://www.elektroda.pl/rtvforum/topic3... masz gotowca, wystarczy podłączyć przez transoptor twoje wejście do portu zliczającego, zamiast diody przez tranzystor i przekaźnik otwieranie dźwi, a do systick (który generuje impulsy) dać reset stanu licznika (i zmienić częstotliwość). Zakładam, że nie ma drgań...
Mam problem z komunikacją po magistrali CAN. Próbuję uruchomić prosty program do odbioru danych po CANie i niestety nie działa. Uruchomiłem parę przykładów znalezionych w internecie i nic. Program generuję za pomocą SMT32CubeMx i korzystam z biblioteki HAL - bo tak chyba najprościej. Korzystam z gotowej płytki STM32F103C8T6 do której podłączyłem MCP2151...
O tym, że test z machaniem pinu jest bez sensu już Koledzy pisali. Nie zamierzam nawet z tym polemizować, za to zrobiłem mały eksperyment, nazwijmy go "optymalizacja machania" :) STM32F051 pędzony 48 MHz i oto wyniki dla optymalizacji 01 oraz 03: https://obrazki.elektroda.pl/1055823600_... https://obrazki.elektroda.pl/6644752300_...
W poradniku Szczywronka opis konfiguracji zegara był dokładnie opisany dla STM32F103. Przepisanie kodu stamtąd powinno dać Ci poprawny wynik konfiguracji. Teraz piszę z pomocą CMSIS". Pracę z STM zaczynam zawsze od przygotowania funkcji SystemClockConfig() jak to opisano w poradniku, posiłkuję się zarazem schematem z zegarów z CubeMX . Całość odbywa...
Witam, Dopadłem taki Example Mass storage pobawiłem się nim troche, działa z debugiem i bez debugu co oznacza ze podłączam urządzonko do PC i otwiera się dysk bez względu czy jest podłączony debug czy nie. Połączyłem to z softem do FAT i rozwijałem pod debugiem i fajnie to działa. Przyszła pora odpalić bez dabugu i niestety po podłączeniu do PC dysk...
Witam, Zaczynam zabawę z STMami i mam pewien problem. Z kilku kodów w internecie zlepiłem swój kod i niestety jak to zwykle bywa coś jest nie tak. Docelowo chciałem obsłużyć wyświetlacz TFT wykorzystując FSMC. Napotykam problem gdy próbuje zrobić w pętli głównej wysyłanie danych przy użyciu FSMC w pewnych odstępach czasu. Jeżeli w kodzie umieszczam...
Cześć, od 2 dni zmagam się z modułami NRF24L01 i dwoma płytkami STM32. Płytki STM32 NUCLEO L053R8 i STM32F103 wykorzystujac biblioteki HAL i cubemx. Niby oba układy zwracają poprawne rejestry : https://obrazki.elektroda.pl/1575646300_... Ale sama komunikacja w sobie nie działa. Nie odbieram żadnych pakietów. PYTANIE - czy w biblioteka...
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...
Zmieniłem TRISE na 6 i dalej bez zmian. Podciągnięcia mam na 2,2k ze wspólnym napięciem 3,3V. Czy porty w STM32f103C8T6: PA11 i PA12 mają jakieś ograniczenia ? Mam je podłączone do USB z podciągnięciem dla USBDP rezystorem 10k, ale nie mogę je ustawić jako wyjście. Są to jedyne piny którymi nie mogę "pomigać diodą".
Masz rację, że szkoda całego tygodnia na taki problem:). Oto cały kod: Main: http://obrazki.elektroda.pl/2257364500_1... podłączenie do STM'a wygląda nastepująco: RxD do PA10, TxD do PA9. Więc nadal stoję w miejscu, ale nie poddaje się;).
Witam, Od dłuższego czasu używam Eclipse Indigo wraz z CodeSourcery i GDB od Atollica do tworzenia i debugowania programów pod STM32. Taki "zestaw" działa bardzo dobrze przy klasycznej, jednowątkowej aplikacji. Jednak przy próbie uruchomienia FreeRTOS na STM32F103 program wchodzi w HardFault_Handler z komunikatem Suspended: Signal 'SIGTRAP' received....
Witam wszystkich serdecznie! Potrzebuję pomocy z pewnym zadaniem z systemów wbudowanych, 4 rok studiów. Programuję w języku C środowisku CooCox CoIDE procesor STM32F103ZET6 użyty w module HY-RedBull_V3 posiadający 3,5-calowy ekran dotykowy TFT LCD HY35A (kontroler LCD SSD1963, kontroler ekranu dotykowego ADS7843 lub XPT2046), który ma wykonać poniższe...
może popatrz na to: https://stm32.eu/2012/04/11/timer-systic... Nie mam doświadczenia z STM32. Moja odpowiedź raczej dotyczyła licznika 4-bitowego.
Bierzesz przykładowy projekt z mojej strony, wrzucasz do tego FreeRTOSa - czyli dodajesz katalogi FreeRTOSa do odpowiednich pól w Makefile: [syntax=bash]# additional directories with source files (absolute or relative paths to # folders with source files, current folder is always included) SRCS_DIRS = FreeRTOS FreeRTOS/portable/GCC/ARM_CM3 FreeRTOS/portable/MemMang...
Witam, Chciałbym zapytać jaka jest zależność RTC i Systicka. O ile tak owa jest? - Kwarc 12Mhz (HSE_VALUE=12000000 , #define SYSCLK_FREQ_HSE HSE_VALUE) - Kody źródłowe poniżej - Keil - RTC zasilam z HSE (LSE nie trybi z przyczyn fizycznych) - STM32F103RBT6 - STMF4_Discovery jako debugger po SWD Problem: 1) A więc problem jest taki iż po wgraniu programu...
Ok. Przeszukaj pliki w swoim projekcie po nazwie "SysTick_Handler". Znajdziesz tą nazwę w pliku asemblerowym (lub w pliku *.c) w tablicy wektorów przerwań. Ta tablica zawiera między innymi adres funkcji o nazwie SysTick_Handler. Linker umieszcza tablicę pod odpowiednim adresie w pamięci (zgodnie z datasheet procesora).
Funkcja _delay_ms() [syntax=c] volatile uint32_t usTick; volatile void _delay_us(uint32_t us){ usTick = us; while(usTick); } volatile void _delay_ms(uint16_t ms){ _delay_us(ms*1000); } void SysTick_Handler(void){ if(usTick != 0)usTick--; } [/syntax] I w funkcji main() jeszcze to: SysTick_Config(72000000/1000000);
A kto definiuje funkcje wewnatrz main? Tzw "nested functions" to jest rozszerzenie gcc, tak zadeklarowana funkcja jest lokalnie widoczna w scope funkcji, w której jest zadeklarowana. Tak ze wywołujesz te "weak" przenieś ja poza funkcje main. W main.c czarów nie ma Czyli jednak są. Wywal te miliony komentarzy i pustych linii z funkcji. Przez to zaciemniasz...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
Ech, mam dzisiaj dzień dobroci... [syntax=c]#include "stm32f10x.h" #define SYSCLK_FREQ72000000 // jesli srodowisko magicznie nie skonfigurowalo zegara -> zmienic na 8000000 #define SYSTICK_FREQ100 #define LED_BIT13// PC13, active low //======================================... int main(void) { // enable peripherals...
Bardzo dobra myśl. Sprawdziłem za pomocą SysTick [syntax=c] void SysTickConfig(void) { SysTick->CTRL &= ~SysTick_CTRL_CLKSOURCE;// AHB / 8 = 9Mhz SysTick->LOAD = 8999999; //1 sek SysTick->CTRL |= SysTick_CTRL_ENABLE; } [/syntax] W main() mam fragment [syntax=c] GPIOC->BSRR |= GPIO_BSRR_BS6; while(!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG)); GPIOC->BRR...
Popełniłem coś takiego, pomijając jedno niezbędne słowo kluczowe. A tu niespodzianka - działa zgodnie z planem pomimo ewidentnego błędu. Oczywiście daje się to rozsądnie wyjaśnić i uzasadnić - nieźle się przy tym ubawiłem. [syntax=c]#include "stm32f10x.h" #define SYSCLK_FREQ72000000 #define SYSTICK_FREQ100 #define LED_BIT13// PC13, active low int main(void)...
Witam, wystarczyło wyrzuć wszystkie pliki z tego od lpc i wrzucić te od stm32f103. Teraz już nie mam błędów :). Muszę dokładnie przeanalizować różnice. Dzięki wielkie koledzy. Przy okazji mam jeszcze jedno pytanie dostaje takie oto warningi: DescriptionResourcePathLocationType Unused declaration of function 'PendSV_Handler'port.c/stm32f103/RTOSlin...
jest jeszcze "systick", tylko nie wiem czy w Arduino da się pod niego podłączyć. nie bardzo, jest uzywany do zadań bojowych w frameworku, lepiej nie ruszać
Może mi podpowiecie Ten sam uC STM32f103 ale odpaliłem Keila ARM. Czy w tym środowisku pisząc jakąś obsługę przerwania muszę na początku funkcji dodać prefiks __irq? Coś takiego kiedyś było, tylko nie mogę sobie przypomnieć? np coś takiego [syntax=c]__irq void SysTick_Handler(void) { } czy takiego ma być void SysTick_Handler(void) { }[/syntax] z tym...
Pomocy :) Jak to się odpala. Nigdzie nie mogę znaleźć jakiegoś przykładu. Jest tylko info, ze do przełączania tasków w RTOS można użyć SysTick lub PendSV, ale zawsze dają przykłąd na SysTick :) Potrzebuję tego, żeby mi obsłużył kod po przerwaniu od usarta, a jednocześnie nie blokował innych przerwań.
Chciałem stworzyć bootloader w oparciu o projekt EP. Przeniosłem wszystkie pliki do CooCox'a i podczas budowania otrzumuję poniższe błędy: [syntax=c] [cc] ..\obj\crt0_STM32F10x.o: In function `main_force': [cc] E:\Studia\Boot\src/crt0_STM32F10x.S:142: undefined reference to `_bss' [cc] ..\obj\crt0_STM32F10x.o:(.isr_vector+0x8... undefined reference to...
Najlepiej skorzystaj z jakiegoś przykładu na Twojego procka. Tak ogólnie to: - dodajesz katalogi include oraz portable/GCC/ARM_CM3 do include path - kompilujesz plik port.c z katalogu portable/GCC/ARM_CM3 - kompilujesz jeden plik z katalogu portable/MemMang (np heap_2.c) - kompilujesz wszystkie pliki zawarte w głównym katalogu FreeRTOSa W projekcie...
Firmowy bootloader mi nie wystarczy. Potrzebuje SPI i prawdopodobnie USB. Ustawiłem w pierwszym programie na: NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00003000); i w drugim na: NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00000000); Więc tablica wektorów powinna się przełączać, ale dalej miga tylko czerwona dioda. Uruchomiłem dodatkowo TIM4 i przeniosłem...
Niestety nie pomogło EDIT: Spróbowałem wygenerować za pomocą STM32CubeMX i napisać w HAL'u kod który by wysyłał cyklicznie dowolną ramkę CAN. Oto mój kod napisany w AC6 System Workbench: http://obrazki.elektroda.pl/9453638400_1... Przy okazji: 1. Jak wgrać program przez JTAG'a w AC6? 2. Da się dodać bibliotekę HAL do COIDE CooCox'a?...
Witam, Mam problem z odbiorem danych na magistrali CAN. Program wysyła dane na CAN co 500ms i to działa, natomiast kiedy pojawi się ramka na RX, program przestaje już wysyłać dane i wygląda jakby zawisł. Poniżej kod. Może ktoś sprawdzić i podać przyczynę problemu? [syntax=c]#include "stm32f10x.h" #include "stm32f10x_can.h" #include "hdr_rcc.h" #include...
Witam, znalazlem kawalek funkcji na ustawienie procesora na 72MHz i wydaje mi sie, ze działa bo uzywam system tick do togglowania pinu, ale chce uzyc poprostu funkcji dostarczonych od stm. Na screenie widze ze jest gdzies definicja o ustawieniu procesora typu "STM32F10X_LD_VL" przez co program chodzi na 24MHz. Gdzie ona jest? http://obrazki.elektroda.pl/5784698000_1...
Witam Mam zdaje się banalny problem - mianowicie chcę zamigać diodą - procesor STM32F103RBT6 :P O ile na STM32F4 nie miałem z tym problemów to tutaj nie mogę sobie z tym poradzić od kilku godzin. [syntax=c]void RCC_Config(void) { RCC->CR |= RCC_CR_HSEON; FLASH->ACR |= FLASH_ACR_PRFTBE | (1<<2); //konfiguracja flasha (latency = 2 takty) RCC->CFGR...
zujnik jest podłączony bez rezystorów wzmacniających, ponieważ odczytałem ze schematu, że nie są potrzebne(próbowałem także z rezystorami 4k7). Przy sprawdzeniu bufora z danymi w programie Stm Studio, nic się nie zmienia a flaga busy jest ustawiona jedynie przy odłączeniu kabla SDA od czujnika. Proszę o pomoc w znalezieniu przyczyny braku odczytu i...
Witam Niedawno zacząłem "zabawę" z zestawem Kamami ZL27ARM z procesorem STM32F103VB. Mam problem z przerwaniem od timera SysTick. Jest ono generowane 4 razy za często - miało być 1 raz na sekundę, a jest 4. Kwarc 8MHz, SYSCLK = 72MHz, SysTick_CLK= 72/8=9MHz czyli załądowanie do licznika wartości 9'000'000 powinno dać zgłoszenie przerwania co 1s, więc...
Witam, Na początku chciałem zaznaczyć ze jestem początkujący jeśli chodzi o procesory typu ARM, a tym bardziej o obsługę FreeRTOS. Mam problem z obsługą magistrali CAN pod tym system. Wykorzystuje biblioteki pobrane ze strony www.freertos.org . Niby wszystko ładnie się kompiluje ale na magistrali nic się nie pojawia . Odpaliłem proste zadania typu miganie...
Witam, staram sie wykorzystac karte SD do przechowywania danych uzywanych przez wyswietlacz (bitmapy etc). Korzystam z biblioteki FATfs i komunikacja SPI. Aby moc tego dokonac modul FATfs korzysta z sygnalu zegarowego, ktory co 10ms bedzie wywolywal funkcje [syntax=c]disk_timerproc()[/syntax] Do cyklicznego wywolania tej powyzszej funkcji staram sie...
Witam! Od rana borykam się z komunikacją STM32F103RBT6 z MPU9250 przez interfejs SPI. Próbowałem znaleźć w internecie jakieś rozwiązanie, nie udało mi się. Nie wiem gdzie popełniam błąd, poniżej wklejam kod: PA.5 - SCK PA.6 - MISO PA.7 - MOSI PB.8 - CS #include "stm32f10x.h" #include <mpu9250.h> #define READ_FLAG 0x80 int sleepTime =...
Mnie właśnie przydałby się sam scheduler, bo koncepcja działania peryferiów często bardzo zależy od użytego układu i samego projektu. Może powinieneś rozdzielić ten projekt na dwa, jeden to czysty scheduler i drugi projekt to cały system który z kolei jest oparty o ten pierwszy projekt. Zauważ, że im bardziej rozbudowany będzie ten projekt, tym trudniej...
systick interrupts stm32f4 systick systick dioda
płyta zewrzeć triak płyta biostar uruchomić spalić dioda podświetlić samsung
Nierównomierne wychylanie wskazówek w Radmor 5102 Kia Ceed 2009 - Jak znaleźć numer CANbus?