Nie modyfikowałem jej, więc nie wiem. Gdzie można ją podejrzeć? edit: Ok, znalazłem. Kiedyś grzebałem w cudzym projekcie i widziałem fajny wizzard. Czy on przypadkiem nie odnosi się do funkcji SystemInit?
SPI zawsze coś "zwraca", niezależnie od tego, czy ktoś do niego nadaje. Ten temat jest tu wałkowany co 2 miesiące. Transmisja SPI jest ZAWSZE dwukierunkowa, nawet wtedy, gdy nie jest. ;) SystemInit jest wołany przez asemblerowy kod startowy zaraz po resecie uC, zanim zostanie zawołany main. Nie wierzysz - to sprawdź, co jest pod ResetHandler w pliku...
BlueDraco zrobiłem tak jak powiedziałeś, zakomentowałem SystemInit() z pliku system_stm32f0xx.c i odkomentowałem moją wówczas częstotliwość zmieniła się na 0,5kHz michalko12 Następnie zmieniłem tak jak napisałeś: [syntax=c] SysTick->LOAD = 1000;//SYSCLK_FREQ / SYSTICK_FREQ - 1; [/syntax] wówczas mam 4kHz. Widzę, że mam chyba źle konfigurowany sygnał...
Może wypada zacząć od tego, co to jest CMSIS. W zależności od fantazji może to być albo tylko minimalna obsługa procesora, albo również biblioteka obsługi peryferiów. Ta minimalna obsługa procesora zawiera pliki nagłówkowe, definiujące wszystkie zasoby mikrokontrolera oraz pliki definiujące zasoby rdzenia i podstawowe operacje na nich. Ponadto mamy...
Dzięki m.ki . Zmieniłem w pliku core_cm3.c "=r" na "=&r" w funkcjach, które są na podane na stronie: http://www.freddiechopin.info/pl/artykul... W repozytorium zazwyczaj zaznaczam tylko "CMSIS BOOT" Marek_Skalski zmieniasz coś w tych plikach? Pewnie funkcję SystemInit ?
OK błąd znaleziony,-d przy parametrach jest zbędne dla jasności: # C++ definitions CXX_DEFS = USE_STDPERIPH_DRIVER CXX_DEFS += HSE_VALUE=8000000 # C definitions C_DEFS = USE_STDPERIPH_DRIVER C_DEFS += HSE_VALUE=8000000 C_DEFS += SystemInit=low_level_init_1 Dziękuje bardzo za pomoc.
Twój artykuł o ARM toolchain czytałem. Chętnie bym nawet użył tego(zamiast ograniczonego truestudio), ale niestety OpenOCD nie obsługuje ST-Linka... Chyba że jest jakaś alternatywa dla tego rozwiązania? [EDIT] Utworzyłem projekt w Keilu, dodałem startup code, pustą funkcję SystemInit. Teraz wszystko działa "normalnie", tj predkosc zgodna z wyliczona...
HSE_VALUE jest potrzebne funkcji SystemInit, poza tym w pliku "stm32xxx.h" masz coś takiego [syntax=c] #if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ #endif /* HSE_VALUE */ [/syntax] najlepiej dodaj do opcji kompilacji coś takiego "-DHSE_VALUE=(tu częstotliwość kwarcu w Hz"
Jeśli chcesz mieć periodyczne przerwanie, to ustaw stosowny okres timera i użyj przerwania końca okresu. Czy zablokowałeś wywołanie SystemInit lub wyedytowałeś ustawenia? Jeśli nie, to zapewne masz zegar 72 MHz, co by wiele wyjaśniało.
Może Wam ten nieszczęsny ukryty SystemInit() psuje krwi w domyślnym startupie jeśli używacie takich środowisk jak Atollic czy inne dziwne IDE :P
Z tego co wymieniłeś wszystko jest OK (zakładam, że 3. to wskaźnik na funkcję, a nie jakieś dziwne rzutowanie). Ja bym się jednak początkowo skupił na zainicjalizowaniu w main() wszystkiego co inicjalizuje Keil w startupie, czyli po prostu wywołaniem SystemInit() - jeśli to zrobiłeś to następnym krokiem będzie zastanowienie się, czemu kod w Keilu generuje...
Chyba tak jest, tutaj plik startup_stm32f10x_md.c [syntax=c]/** ****************************************... * (at)file startup_stm32f10x_md.c * (at)author Coocox * (at)version V1.0 * (at)date 12/23/2009 * (at)brief STM32F10x Medium Density Devices Startup code. * This module performs: * - Set the initial SP * - Set...
Spróbuj takiego kodu. Niestety nie sprawdzałem go bo nie mogę skompilować Twojego kodu. [syntax=c] #include "stm32f10x.h" #include "TouchPanel.h" #include "systick.h" #include "GLCD.h" #include "stdio.h" #define TP_INT_IN GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6) void TPintInit(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP...
Cześć, Potrzebuję wykonać komunikację w 2 strony pomiędzy komputerem PC i mikrokontrolerem przez ethernet. Sprzętowo wybrałem stm32F103 oraz moduł z układem ECN28j60. Układ nie będzie włączony do żadnej sieci, będzie to połączenie punkt-punkt. Znalazłem biblioteki, dostosowałem pod swój mikrokontroler. https://github.com/xaionaro/stm32-enc28j... Generalnie...
Może zbyt namieszałem. Zasadniczo chodzi po prostu o to jak stworzyć projekt w SW4STM, który nie zawierałby tych wszystkich śmieci z SPL i HAL i dało się pisać na rejestrach. Taki czysty podstawowy projekt pod rejestry z tylko niezbędnymi rzeczami jak w przypadku pisania na AVRy. Ja robię to tak: I. Potrzebne narzędzia: 1. System Workbench for STM32...
Bey startup to Ci raczej nic nie ruszy. Jeśli bardzo nie podoba Ci się SystemInit - zmień nazwę tej funkcji w stmxxx_systemxxx.c i napisz własną - może być pusta. Ostatnio w Keil/ST zmieniły się poglądy nt. SystemInit, co można poznać po tym, że nowe wersje pakietów Keil (które wyszły dla połowy serii STM32) na ogół nie inicjują taktowania procesora....
1. Pokaż jak wygląda wywołanie openocd. Jak masz płytkę discovery to spróbuj po prostu z linii komend wywołać: [syntax=bash] openocd -f board/stm32f0discovery.cfg [/syntax] 2. Prawdopodobnie rozbiegówka oraz SystemInit zajmują ten 1KB pamięci FLASH. Wywołaj polecenie: [syntax=bash] nm --size-sort plik.elf [/syntax] aby zobaczyć wszystkie symbole w Twoim...
Witam Rozpoczynam zabawe z STM32 i napotkalem problem. Chodzi o uruchomienie USART2 i wyslanie znaku na terminal do PC. Rx i Tx mam podpiete do portu A PA2->Tx i PA3->Rx. Siedze z dokumentacja procesora ale jakos nie moge znalesc bledu w swoim kodzie. Moze co podpowiecie. Kompilator AtolicTruestudio Petla główna: [syntax=c] int main(void) { int...
Witam wiem ze temat wałkowany, czytając poprzednie posty jak zwykle mam mętlik. STM32F103ZET Używając: monitor reset halt (lub reset_halt ) load dla ram i flash program staje zawsze w startup.s: Reset_Handler: /* +---------------------------------------... | Initialize the process stack pointer +---------------------------------------...
Witam Hmm, walczę od jakiegoś czasu z uruchomieniem toolchaina Eclipse + CodeSourcery itd dla STM32 (dokładnie STM32F107VCT) i mam pewien problem. Przejrzałem kilka różnych projektów, w których podpatrywałem pliki skryptowe linkera (*.ld) jak i pliki makefile. Na razie kompiluje mi się gdy przykładowo zrobię plik main.c z takim kodem: STM32F10x_StdPeriph_Lib_V3.5.0...
A nie masz tam przypadkiem przed main() funkcji SystemInit() ze SPLa, która "coś" robi z zegarem? P.S. Ta deklaracja przerwania przed main() naprawdę jest zbędna... Czemu to niby miałoby służyć? P.S.2 - PSC też powinno być 499. 4\/3!!
Uff, wreszcie ruszyło uparte zwierze. Wersja tego oprogramowania to Keil uVision MDK-Lite Version 4.21. Obecnie jest to najnowszy soft pobrany ze strony: https://www.keil.com/download/product/ Nie chcę się chwalić a nawet nie wiem czy na tym forum mogę takie coś zrobić ale dla mojego bezpieczeństwa nie zrobię tego tak po prostu ale dla tych co będą...
(at)Freddie no fakt, trzeba by często w to trafiać. Sprawdzę to jeszcze u siebie jak wrócę z roboty, teraz nie mam STMa pod ręką. A mimo wszystko nalegam, aby Autor pokazał kod asemblerowy programu. Dodano po 2 Data race o którym piszesz faktycznie tam jest - wczytałem się wreszcie porządnie if((zapalona) && (TIM9->CNT > 5000) ) pomaga...
SystemInit jest w dołączonym do projektu pliku ...system...c, a to, co w niej jest, zależy od tego, ile miesięcy temu wyszedł pakiet do danej serii. Nowsze wersje SystemInit nie robią prawie nic, starsze dość sporo. Zawsze możesz zmienić nazwę oryginalnej prcedur i napisać własną SystemInit(); Obsługa LCD w przerwaniu timera ma m.in. tę zaletę, że jest...
Bo jest napisana na magicznych hexach (po części) :) Kawałek tejże inicjalizacji: [syntax=c]void SystemInit (void) { /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */ #ifndef STM32F10X_CL RCC->CFGR &=...
To po co w SystemInit() od ST jest możliwość zmiany SCB->VTOR? Funkcja ta jest odpalana w startupie. https://my.st.com/public/STe2ecommunitie...
W ogóle ciekawi mnie, po co chcesz znać ten układ aż tak dobrze ? Może kiedyś będę chciał zaprojektować jakiś swój układ więc warto wiedzieć dokładnie jak one działają ;) Trochę jak z religią uwierz, że Bóg jest i już - bo tak jest napisane i wszyscy to wiedzą. W kwestii "jednym poleceniem Init": Fragment ze strony: w linii C_DEFS dodatkowo dopisujemy...
Piszę w System Workbench for STM32 . Faktycznie w pliku system_stm32f10x.c usunięcie ciała funkcji SystemInit pomogło. Musze zainteresować się kolegi startupem. Oto jej ciało: [syntax=c] /* Reset the RCC clock configuration to the default reset state(for debug purpose) */ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset SW,SWS, HPRE, PPRE1,...
Zamówiłem dwa Cortex'y STM32F103ZET6, czekam na przesyłkę... W między czasie, patrzę na przykłady z STM32 i nie mogę się nadziwić.... no cóż czasem człowiek potrafi skomplikować proste sprawy... Używam startup.S i vectors.c od kolegi Freddie Chopin. Niby wszystko ok, ale jak ktoś przerabia jakieś rzeczy z USB, niech zwróci uwagę na dwie rzeczy. w ST...
Cześć, Korzystam z płytki STM32VLDiscovery (z programatorem ST-LINK), Keil uVision. Po raz kolejny wziąłem się za ARMy. I wszystko pięknie szło do czasu, aż zamarzyłem o fatfs. Bibliotekę dołączyłem, przepisałem kod tak, żeby nie korzystał z biblioteki stm32 standard peripherials. Uruchomiłem debugowanie - 17KB ma kod i... właśnie - w debugerze jak...
Witam problem jest następujący, inicjalizacja SPI przechodzi (wydaje mi się że poprawnie). Niżej podam wartości rejestrów SPI3. Problem polega na tym że nie mogę nic wpisać do DR w interfejsie SPI, nie mam jeszcze nic podpiętego do SPI ale mam zamiar przetestować całość na modułach MMcc1100 i płytce ewaluacyjnej z STM32 na pokładzie (stm32-p107 z OLIMEXu)....
Witam, Na wstępie dodam, że bardzo długo walczę z konfiguracją projektu z stm32l w Eclipse. Udało mi się stworzyć projekt z automatycznie generowanym plikiem makefile (na podstawie ustawień C/C++ Build -> Settings ), ale były problemy z FreeRTOS, więc postanowiłem przerobić przykład Freddiego dla STM32F10x (stm32_blink_led), aby mieć większy wpływ na...
Bootloader przestawia wektory przed skokiem do softu użytkownika więc wydaje mi się że nic dodatkowo nie trzeba robić poza kompilacją pod 0x08001000. Niestety. CubeMX robi to tak że ustawia na początku rejestr VTOR (funkcja SystemInit): [syntax=c] SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ [/syntax]...
spróbuj zegary zainicjalizować funkcją SystemInit(), musisz tylko dołączyć do projektu plik z C:.........\Keil\ARM\Startup\ST\STM32F10... + włączyć odpowiednie peryferia, jeżeli zacznie działać to znaczy że z zegarem coś jest źle ustawione
Używam sobie takiej chińskiej płytki: http://obrazki.elektroda.pl/8610848000_1... aby ten mikrokontroler zadziałał z zewnętrzną pamięcią RAM jako pamięcią danych programu?
Pobierz sobie STM32CUBEMx. Tam możesz sobie stworzyć szablon, wygeneruj projekt do SW4STM32 (znajdziesz w ustawieniach projektu). Pobierz System Workbench for STM32, zaimportuj projekt i wszystko będzie śmigało... Będziesz miał kod, który działa na najnowszych bibliotekach HAL, wszystko jasno i przejrzyście opisane, łatwy dostęp do konfiguracji peryferiów...
Jeśli korzystasz z stm32f4 discovery, to sprawdź czy masz dobrze ustawionego st-linka. Musisz mieć zainstalowany w systemie sterownik do niego, Keil nawet zaktualizuje w nim soft jeśli zajdzie taka potrzeba. Jeżeli chodzi o konfigurację st linka w Keilu, wszystko znajdziesz w dokumentacji u ST na stronie. Nie wiem też czy dobrze się zrozumieliśmy. Debug...
Wygląda to tak, nie posiadam takiej wiedzy żeby tu coś samemu zmieniać może powiesz mi co jest nie tak :) [syntax=c] .syntax unified .cpu cortex-m7 .fpu softvfp .thumb .global g_pfnVectors .global Default_Handler /* start address for the initialization values of the .data section. defined in linker script */ .word _sidata /* start address for the .data...
Witam, Mam problem z nawiązaniem komunikacji między dwoma zestawami STM32F103ZET6+nRF24L01. Bazowałem na informacjach z tej strony: "[url=http://maniacbug.github.io/RF24Net... Ściągnąłem odpowiednie pliki z klasami RF24 i RF24Network, oraz klasą SPI(wykorzystywana przez poprzednie klasy), przerobiłem je pod STM32, po czym spróbowałem...
Dzień dobry, Sprawa wygląda tak, że chciałem zrobić zadanie 8.4 z poradnika na temat stm32. Wymodziłem sobie takie coś: Open On-Chip Debugger 0.9.0-dev-00186-g30203b3 (2014-11-09-22:49) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Info : The selected transport took over low-level target control....
Nie korzystam z systemInit ani zadnej innej biblioteki, cały kod który mam jest napisany w 100% przeze mnie. Czyli dobrze założyłem, to 16Mhz, pytanie ktore dalej pozostaje bez odpowiedzi to co jest nie tak ? :( Chyba jednak nie cały. Nie napisałeś nic o środowisku - obejrzyj SystemInit(). Najbardziej nie tak jest to, że nie pokazałeś poprawionego...
W drugim projekcie - właściwej aplikacji przed włączeniem przerwań zmieniasz offset czyli tak jak masz w funkcji SystemInit, a Twój VECT_TAB_OFFSET jest rozmiarem bootloadera zaokrąglonym w górę do 0x200. Zdecydowanie lepiej zrobić to w bootloaderze, bo niby czemu zadanie to ma być powierzone aplikacji? 4\/3!!
Zmieniłem : 2. change The initial stack pointer in the vector table: (void *)&pulStack[STACK_SIZE-1]... to (void (*)(void))((... long)pulStack + sizeof(pulStack)), w startup_stm32f10x_md_vl.c Dalej to samo. [syntax=c]/** ****************************************...
Witam, na początek to niech kolega zerknie na płytkę i nie jest tam zainstalowany 25MHz tylko 8MHz rezonator kwarcowy. Druga sprawa, po nazwie pliku domyślam się, że to CoCoox. Jeśli tak to musisz zmodyfikować dwa pliki startup aby przed main wywołać plik konfiguracji zegarów (SystemInit czy coś takiego). Dodatkowo musisz zmodyfikować obliczenia pll...
Wygenerowałem sobie prosty projekt na układ STM32F070CBTx w CubeMX i odpaliłem w Keilu. Jedyne co włączyłem w CubeMX-ie to w RCC zegar - zewnętrzny kwarc 12 MHz i USB_FS skonfigurowane jako VCP (CDC). Po załadowaniu do Keila i skompilowaniu programu wgrywam go (J-Linkiem po SWD) do mojego układu na płytce. I nic się nie dzieje, a komputer (do którego...
Przeorałem wszystko co było w internecie i niby proste pod warunkiem że odczyta 4 bajty z sterownika. I tu się niestety pojawia problem. mimo tego że mam przykład do komunikacji z dotykiem po SPI to w przypadku tego urządzenia komunikacja nie działa :/ Jeżeli ktokolwiek miałby rzeczowe rady chętnie wysłucham zamieszczam cały projekt w KEIL biblioteka...
Witam, Mam problem - mam za zadanie zrobić coś w stylu skanera 3D na STM32. Na razie nie mogę opanować samej obsługi kamery w konfiguracji STM32F103VE+ wyśw. SSD1963 7" (zestaw EB-STM32_08_LCD7) i kamera OV7725 . Do zestawu dostałem przykładowe projekty w keilu. Bazując na projekcie do sprawdzania kamery z wyświetlaczem 4.3' wkleiłem działające biblioteki...
Oczywiscie tak. Dodam ze uzywam programu System Workbench [syntax=c] /** ****************************************... * (at)file startup_stm32.s dedicated to STM32F103C8Tx device * (at)author Ac6 * (at)version V1.0.0 * (at)date 2018-04-06 ****************************************...
Na pewno nie budzi się. Przed wprowadzeniem procesora w tryb STANDBY jest impuls na diodę LED i to się nie wykonuje po podaniu '1' na WAKEUP. Procesor się nie budzi i nie rozpoczyna sekwencji resetu. Kod programu: [syntax=c]#define _MAIN_C_ #include "stm32f10x_conf.h" #define LED1_ON GPIO_SetBits(GPIOB,GPIO_Pin_7) #define LED1_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_7)...
(at)sulfur Dopiero teraz znalazłem czas żeby dalej zająć się CANem. Ustawiłem tak jak mówiłeś i dalej nic. Nie mam pomysłu co sprawdzić . Tak jak wcześniej wspomniałem mam przejściówkę USB/CAN za pomocą której próbuję przetestować CANa. Program do obsługi tej przejściówki w ustawieniach transmisji wygląda następująco : http://obrazki.elektroda.pl/8802608800_1...
Tak. W zasadzie włączam taktowanie wszystkich portów zaraz po funkcji "SystemInit()". Dodano po 13 Próbowałem też na przykładzie z "hy mini". Zmieniłem tylko pin adresowy(RS), chip select na NE4 no i dorzuciłem obsługę DEMUX'a. I dalej nic. Załączam kod z tego przykładu: main: [syntax=c]void MUXInit(); //void TestChipSelect(); int main(void) { SystemInit();...
Witam posiadam płytkę Butterfly2, z procesorem STM32F107VCT6, do programowania używam CooCox IDE i stlinka (ustawione przez swd) po zaprogramowaniu układu dziś kilka razy, w pewnym momencie zaczął pojawiać się komunikat: Error: Flash driver function execute timeout Wie może ktoś jak można to naprawić lub co się stało...? proszę o pomoc. problem pojawił...
Zwykle funkcja SystemInit jest wywoływana przez moduł startowy przed wywołaniem main().
Keil startując CPU odpala funkcję SystemInit() która to jest zdefiniowana w pliku system_stm32f4xx.c . Plik ten możesz napisać sobie sam, lub możesz skorzystać z gotowca. Gotowce masz w przykładach od STM lub możesz wygenerować go za pomocą Excela jak wspominał kolega imarszi . Tutaj masz opis jak się tym narzędziem poslugiwać i skąd je wziąć : Clock...
W F0 bufor prefetch jest domyślnie wyłączony, więc wypada go włączyć, np. w SystemInit. Również w SystemInit włączam PLL, a przełączam zegar już w main - tak jest szybciej.
Standardowo jest taktowany 168MHz na wewnętrznym źródle sygnału: Dodano po 13 Dodano po 28 [syntax=c] /** ****************************************... * (at)file system_stm32f4xx.c * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 30-September-2011 * (at)brief CMSIS Cortex-M4 Device Peripheral Access...
(at)BlueDraco:"Pudło. Przy uruchomieniu aplikacji z Flash, pamięć Flash jest mapowana na adres 0, a domyślnie VTOR zawiera 0 (a przynajmniej powinien)" Hmm, w takim razie to ja czegoś nie wiem. Owszem, może tuż po resecie tak jest, ale potem, nie wiem czy można to nazwać "w aplikacji" wykonuje się kupa kodu inicjująca pracę procesora, który to kod jest...
witam ponownie, po dłuższym czasie walczenia z uruchomieniem mikrofonu i odtworzeniem nagranego dźwięku niestety nie udało mi się osiągnąć zamierzonego celu. Po poszukiwaniach w internecie znalazłem pomoc na forum ST pewnego użytkownika jednak również po jego instrukcjach występuje kilka błędów. Instrukacja zgodnie z którą próbowałem uruchomić mikrofon...
Witam, Jestem niedoświadczonym użytkownikiem więc proszę o wyrozumiałość. Podobnie jak kolega chciałbym aby mój STM32 discovery Examples/GPIOToggle i chciałbym go tak zmodyfikować żeby zaczął rozmawiać po I2C, stworzyłem plik I2C.c oraz I2C.h. Dodam ze używam Keil'a Dostałem od kolegi przykładowy kod który powinien działać ale w praktyce jest oczywiście...
Chciałbym zrealizować komunikację pomiędzy aplikacją napisaną w C# a stm32 Discovery . Mam w aplikacji 4 przyciski . Każdy wysyła coś innego do stm32 . Oto kod z Coocoxa [syntax=cpp] #include <stdio.h> #include "stm32f4_discovery.h" #include "usbd_cdc_vcp.h" /* Private macro */ /* Private variables */ uint32_t button_sts; __ALIGN_BEGIN USB_OTG_CORE_HANDLE...
Reasumując: 1. Włączasz zasilanie = nie działa 2. Wykonujesz reset STM'a = działa ? Mógłbyś jeszcze "main'a" pokazać, albo najlepiej odchudź kod do obsługi tylko SPI i wrzuć cały projekt. dokładnie... Wydaje mi sie że SPI po uruchomieniu mikrokontrolera nic nie wysyła, dopiero po resecie. Nie mam oscyloskopu aby to potwierdzić. int main(void)...
No mówiłem, że po kilku modyfikacjach, bo kompilator krzyczał, że niema paru rzeczy. ;) Co do problemu. Stos się raczej nie przepełnia. Podczas debugowania szczytowa wartość rejestru sp to 0x1fbc czyli jakieś 44 bajty. Sam program również odchudziłem do granic możliwości i zauważyłem pewną rzecz. Tutaj cały obecny program. [syntax=c] #include "stm32f0xx.h"...
SystemInit(); A czy przypadkiem SystemInit(); nie jest wywoływane przez cmsis przy starcie procka? :) Niech autor zajrzy do wskazanej ścieżki z plikiem *.elf i zobaczy czy taki plik tam się znajduje...
Witam. Postanowiłem zgłębić tajniki mikrokontrolerów STM32. Wybór padł na procesor STM32F3 Discovery. Mam problem z poniższym kodem. Jest to przykład działania przetwornika ADC. Problem polega na tym, że nie wiem dlaczego to nie działa. Uruchamiam debugger, biorę krokową pracę, a program w zasadzie zatrzymuje się na linii ADC1ConvertedVoltage jest równa...
Pobawiłem się z tym trochę, niestety coś mi dalej nie wychodzi. W pliku stm32f10x.h przedefiniowałem częstotliwość HSE (domyślnie do Connectivity Line była 25000000, zmieniłem na 14745600). Zmieniło to tyle, że na terminalu wyskakiwały inne krzaczki, niż wcześniej. Pogrzebałem dalej. Częstotliwość mnożona przez 5 faktycznie wychodzi za duża. Puściłem...
Volatile i nigdzie nie używana, system_init() wszystko pozmieniane jak trzeba. Uarty pracują poprawnie, RTC teoretycznie też.
a pytanie brzmi? bo różnica jest oczywista i wystarczy sie zastanowić co te funkcje przynajmniej powinny robić. 1 konfiguruje cały układ zegarowy 2 wyłącznie startuje PLL
Witam serdecznie Kolegów! Aktualnie jestem w trakcie pisania gry typu labirynt z kulką na procesor ARM STM32F103VCT6. Wszystko mam pięknie i ładnie obsłużone (symulacja odbić od powierzchni płaskich, detekcja kontaktu z otworami) no ale zostało jeszcze najważniejsze - symulacja odbić kulki od kantów prostokąta. I tu niestety zaczynają się schody. Z...
Cześć, Platforma: STM32F769I-DISCO, środowisko: System Workbench for STM32 Wydawało mi się, że poprawnie skonfigurowałem FreeRTOS, ale ten znowu mnie zaskoczył :) Jak tworzę wątki przed vTaskScheduler(), to wszystko działa super, ale jak próbuję stworzyć wątek po uruchomieniu planisty, to wątki nie uruchamiają się. Może czegoś nie rozumiem, ale wydaje...
Wygląda to na nieprawidłowo zdefiniowaną prędkość transmisji. Z jaką częstotliwością pracuje STM? W jakim środowisku to programujesz? Jeżeli używasz na starcie funkcji SystemInit(), to sprawdź czy HSE oraz SystemCoreClock mają prawidłowe wartości; odpowiednio 8000000 oraz 168000000. To jest konieczne jeżeli używasz nieszczęsnego SPL'a.
Cześć, Ponieważ pojawiła się prośba o możliwość udostępnienia uproszczonej wersji na inny uC to przedstawię krótką instrukcję jak dostosować projekt do potrzeb. Generalnie w obecnej wersji obsługiwane są dwie rodziny procesorów czyli STM32F4xx i STM32H7xx - prawdopodobnie nie powinno być większych problemów z innymi podobnymi układami STM natomiast...
Niby można i tak, ale normalnie robi się to inaczej - programujesz SysTicka na jakąś ładną, okrągłą częstotliwość, np. 100 lub 1000 Hz, a w przerwaniu odliczasz programowo i co ileś przerwań coś robisz. Wrzucam Ci program na STM32F0, który miga dwiema diodami przy użyciu SysTick, co pół sekundy. [syntax=c] /* STM32F0DISCOVERY SysTick-based blinker gbm,...
Do wstępnej konfiguracji korzystam puki co z SystemInit() dostarczonego przez ST z uwzględnieniem przeze mnie rzeczywistej prędkości zegara (8mhz). Funkcja opóźniająca oparta na SysTick wydaje się że działa dobrze (stan diody zmienia się co 1s): [syntax=c]void Czekaj_ms(int ms) { int i; for( i=ms; i; i--) { SysTick->LOAD = (21000)-1; SysTick->VAL =...
Witam. Jestem początkujący w świecie st32 i na początek stworzyłem sobie projekt w którym mam tylko pliki : main.c , startup - który dołączył keil (usunięte 3 linie odpowiedzialne za automatyczne uruchomienie funkcji SystemInit), Oraz 3 pliki z CMSIS: stm32f10x_it.c , stm32f10x_it.h , system_stm32f10x.c . Program wygląda następująco: [syntax=c]#include...
o liniach PA13 i PA14 czytałem oczywiście ale u mnie te porty są na liniach 19 i 20, ja w programie używam tylko linii PA9 i PA8 więc odpada chyba, że kompilator coś dodał. Czy komenda GPIO_StructInit (&GPIO_InitStructure); to jest inaczej SystemInit(), który często na początku programu się wrzuca? Tutaj faktycznie tego zapomniałem dodać. Dodano po...
Witam wszystkich. Od jakiegoś czasu ćwiczę STMy. Przyszedł czas na bootloader, ale stanąłem w zasadzie na początku drogi. Mój zestaw to: - ARM GCC (Linaro) w wersji 4.7 2012q4 - CooCox - STM32F4 Discovery - przykład AN3965 "STM32F40x/STM32F41x in-application programming using the USART" Po kolei: - istniejący i działający program zlinkowałem z użyciem...
Witam, Załączam program skrócony do minimum, ilustruje problem polegający na tym, że wysyłanie danych poprzez DMA na port USART nie działa. Program był migrowany z STM32F1xx i pewnie czegoś brakuje. Jeśli odkomentuje się linię z USART_SendData(USART3, 45);, to dane są wysyłane, czyli konfiguracja samego portu USART jest dobra. W załączonym programie...
Cześć, Projekt zaraz będę konfigurował od początku. Fakt, podałem za mało danych, wybaczcie, skrajna nerwica mnie na to wzięła. Od początku: Używam SW4STM32, ale chciałbym od tego odejść mocno, bo za dużo automatów i za mało szczegółów, może dlatego, że nie potrafię tego wszystkiego ogarnąć. Kompilatora używałem poprzez naciśnięcie "build". W ustawieniach...
Cześć, nadszedł czas zmierzyć się z linkerem i innymi cudami ;) Wybaczcie, jeśli będę pisał głupoty, dopiero próbuję to ogarnąć :D Czy możecie podpowiedzieć jak uwzględnić w Eclipse dwa warianty kompilacji i linkowania: 1. program w trybie DEBUG, który startuje klasycznie z 0x08000000 2. program w trybie RELEASE, który ma startować z 0x08002000 Odnośnie...
Najprostszy projekt zawiera tylko startup i main.c. Main napisz sam, umieść w nim dwie puste procedury: void SystemInit(void){} i int main(void){} Otwórz ten startup i sprawdź, czuy jest w C, czy w asemblerze. Jeśli w asemblerze - trzeba mu zmienić rozszerzenie na .s. Czytaj komunikaty o błędach, a jeśli nie potrafisz czytać - wklej je tutaj.
Witam. Mam problem z wgrywaniem programu do STM32F0 przez ST-LINK. Środowisko, z którego korzystam to Keil (próbuje na nie przejść). Układ programuje się bez wyrzucania jakichkolwiek błędów, ale zaczyna działać dopiero w przypadku kilkukrotnego zresetowania (w tym przypadku proste świecenie diodą). Wrzucam zrzuty konfiguracji Keil'a. Proszę o odpowiedź....
Witam Mam problem ze zmianą czasu w STM32F0Discovery. Konfiguracja i inicjalizacja modułu jest dobrze wykonana - w debugerze zlicza sekundy, ustawia flagi itd. Problemy zaczynają się gdy chcę załadować do rejestru czasu TR i daty DR aktualny czas. Podczas pracy krokowej wszystko idzie ładnie - flagi się ustawiają, rejestr ładuje i wartości się zmieniają....
Witam, Mam problem z komunikacją STM32 z komputerem. Moja płytka to STM32L-Discovery [url=http://www.st.com/internet/evalboar... Chciałem napisać sobie najprostszy program do komunikacji z komputerem. Jak na razie nic nie działa. Pisałem program z pomocą książki "Mikroprocesory STM32 w praktyce" Krzysztofa Paprockiego. Musiałem...
Witam, Pozwolę sobie trochę odgrzać temat, jako że mam bardzo podobny problem. Korzystam z zestawu STM32F401VC Discovery, w którym mam już wbudowany żyroskop L3G4200D, podłączony za pomocą SPI1. Próbuję odczytać wartość rejestru WHO_AM_I, ale jak do tej pory program grzęźnie w pierwszej pętli while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S...
Ponieważ ja zawsze byłem zbyt leniwy, by pisać tak dużo instrukcji, ile potrzebują wywołania bibliotek, a jednocześnie lubię używać mikrokontrolerów z małą pamięcią, popełniłem na STM32F0 (płytka DISCOVERY) takie coś do włączania i wyłączania diod guzikiem. Program jest mało ambitny, bo ma ledwie ze 6 instrukcji w C, ale działa dobrze i może komuś się...
Super, jakoś udało mi się Eclipsa uruchomić fakt że w innej wersji Version: Mars Release (4.5.0) ale bez problemu spiąłem to. Przerzuciłem kod i co się okazało. Ruszył. Ale do szczęścia trochę brakuje, okazuje się, że nie rozpoznaje USB. Tzn ten sam dokładnie kod śmiga na Keilu, a na eclipse już nie. definicje: DEBUG USE_FULL_ASSERT TRACE OS_USE_TRACE_SEMIHOSTING_DEBUG...
Witam Dopiero zaczynam swoją przygodę z mikroprocesorami z rodziny ARM. Posiadam moduł prototypowy: STM32 LCD3.2" ARM Cortex, z procesorem: STM32F103VCT6 . Korzystam ze środowiska Kyle uVison4. Problem pojawił się przy próbie uruchomienia magistrali I2C. Obecnie mam 3 ATMEGI połączone ze sobą po I2C i między nimi komunikacja przebiega prawidłowo. W...
Witam, napisałem mini-programik na odczytywanie wartości prądu z dwóch kanałów ADC i zapisywanie ich przez DMA. Po wciśnięciu przycisku rozpoczyna się pojedynczy pomiar z dwóch kanałów ADC1. Po pierwszym wciśnięciu przycisku wartości zapisywane w tablicy są poprawne, jednak po następnych wciśnięciach przycisku wartości te nie zmieniają się. W manualu...
adamusx Ma znaczenie i to duże. I nie w kwestiach mechaników to należy rozpatrywać tylko funkcji zdefiniowanych w plikach "startup_stm32f4xx.c", "system_stm32f4xx.c" i "system_stm32f4xx.h". Dla CM4 wygląda to tak: Startup wywołuje funkcję SystemInit(); Ta funkcja przy domyślnych ustawieniach konfiguruje system taktowania uC na 168MHz, ale dla kwarcu...
Witam. Zaczynam dopiero swoja przygodę z STM32. I na samym początku mam problem. Posiadam płytkę z stm32f429ZIT6U i chciał skonfigurować sobie RCC i GPIO, zgodnie z książką Galewskiego. Po przewertowaniu Internetu napisałem kod, który miałby konfigurować te dwie funkcje. W celu sprawdzenia chciałem aby program zapalił tez odpowiednie diody. Niestety...
Może za krótko czekasz po włączeniu zasilania i próbujesz komunikować się/inicjalizować zewnętrzne urządzenie zanim zdąży zakończyć sekwencję POR. Mogę tylko gdybać bo nie wiem co masz do tego uC podłączone, ale widać że jakieś magistrale szeregowe masz wyprowadzone. No ale koniec sekwencji POR oznacza wykonanie kodu z Reset Handler ? [syntax=c]int...
mrh Nawiązując do tematu. Mam problem z tym akcelerometrem. Raz zaskoczył i działał gdy odpaliłem projekt z lis302dl, ale niestety już nie działa. Po czasie ogarnąłem ze to lis3dsh. Chciałbym w końcu uruchomić ten sprzęt. Używam CooCox IDE #include <stm32f4xx.h> #include <stm32_ub_led.h> //#include <stm32_ub_spi1.h> //#include <stm32_ub_lis302dl.h>...
Dzięki, dobrze wiedzieć, jak coś to zgłoszę się do Ciebie po najnowsze OpenOCD. Na razie spróbuje na tym starociu co mam - 0.6.1. Przeglądnąłem sekcję RCC. Znalazłem tam jakieś różnice w rejestrach do włączania zegarów dla poszczególnych peryferiów i ich resetowania. Co do samego ustawiania SYS_CLK nie znalazłem różnic, czyli wszystkie funkcje w projekcie...
Jeśli w pliku .lss nigdzie nie znalazłeś wywołania tej funkcji, to nie ma znaczenia co w niej jest. Pokaż lepiej jak ją wywołujesz, cały łańcuch wywołań od main() albo od SystemInit(). 4\/3!!
BOOT powinien być podciągany za pomocą 10K, a nie 100K Prawda , zalecane są 10K , choć zdaje mi się że gdzieś ST mówiło że max R dla BOOT to 100K , ale nie mogę teraz tego znaleźć. Zmieniłem na 10K. właściwie te piny nie są ściągnięte do masy Piny BOOT są połączone do masy przez zworkę. pin VBAT nie może sobie wisieć w powietrzu If no external battery...
Albo inaczej - dlaczego przy włączonych tych opcjach kompilacji program uC ląduje w DH bez SystemInit, a działa poprawnie _z_ SystemInit ? Wrzuć projekt (lub choć ten listing assemblera), albo udaj się do wróżki (;
Nie jestem jakimś super znawcą od FreeRTOS-u, ale udało mi się go uruchomić na płytce STM32F4Discovery - hurrrra. Moje śdorowisko to Eclipse + GCC. Zrobiłem tak: 1. Utworzyłem folder RTOS i do niego upchałem pilki systemu, jak na zdjęciu. http://obrazki.elektroda.pl/6925105700_1... 2. Plik FreeRTOSConfig.h skopiowałem do głównego katalogu...
Domyślnie SystemInit ustawia nominalną częstotliwość maksymalną dla procesora, czyli 168 MHz. Można to skonfigurować w pliku zawierającym funkcję SystemInit().
Zobacz też czy nie wywołujesz dwukrotnie funkcję SystemInit: w startupie oraz mainie. SystemInit tylko w mainie. No to zrób step into do tej funkcji debugerem i zobacz co jest nie tak. Prawdopodobnie ta funkcja odblokowuje przerwania gdzie nie powinny one zostać odblokowane przed vTaskStartScheduler. W tym miejscu wyrzuca: The init function pointer...
Rozważmy na początek taki kod: [syntax=c] #include "stm32f10x.h" void Delay(unsigned int delay); void SetClock(); int main() { FLASH->ACR = 0x10; FLASH->ACR = 0x00; FLASH->ACR = 0x10; SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP... ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode...
stm32 f103rb ssd1963 stm32 stm32 adres
unitra r8040 czujka bramy pasek klinowy citroen
hewalex sterownik hewalex sterownik
Migające zielone światełka na routerze Thomson Podłączenie zewnętrznego źródła dźwięku do Volvo HU-803