Jak widzisz na załaczonym obrazku nie masz ustawionych wektorów. Ale akurat mam coś takiego gotowego i Ci podeślę :) Zainstaluj Cube. Plik z wektorami weź stamtąd. Możesz też zaimportować projekt i wyrzucić HAL - będziesz miał przy okazji najświeższy CMSIS
Na początku rozdziału o USART w reference manual jest taki podrozdział "USART implementation" (29.4). Masz tam rozpiskę jakie "ficzery" są dostępne w jakich dokładnie układach - widać tam, że 7-bitową długość danych mają tylko niektóre układy z tej rodziny. https://obrazki.elektroda.pl/2466354800_...
1.Czy w CMSIS jest jakieś makro wywołania, czy trzeba to pisać ręcznie? Ręcznie. O tak - https://github.com/DISTORTEC/distortos/b... 2.Czy to przerwanie się inicjalizuje? Co przez to rozumiesz? 3.Czy trzeba mu ustawiać priorytet (domyślny ma chyba najniższy i o to mi chodzi)...
Sporo się namęczyłem, zanim ruszył mi slave transmitter w STM32F103. W 107 będzie tak samo. Po pierwsze zobacz do errat - tam między innymi napisali, że przerwanie i2c musi mieć najwyższy priorytet, bo inaczej się wiesza. Poza tym przykłady nie zadziałały mi od razu, a problemy mają też inni, o czym możesz poczytać na main.c // main.c main()...
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...
Pisałem gdzieś jak się je włącza, na co Freddie napisał, że są funkcje w CMSIS, które z resztą na forum też już wklejałem. [syntax=c]/** * (at)brief Enable Interrupt in NVIC Interrupt Controller * * (at)param IRQn The positive number of the external interrupt to enable * * Enable a device specific interupt in the NVIC interrupt controller. * The interrupt...
Jak wygląda sprawa z przerwaniami? Tam zamiast przerwań są używane callbacki. To nie tak jest. Callbacki są całkiem do czego innego. W programie HALowym, to użytkownik pisze obsługę przerwań sprzętowych (tak jak w klasycznym podejściu "rejestrowym") a specyfiką HAL jest tylko to że dostarcza pewnych gotowców na obsługę przerwań. Przykładowo weźmy uart....
Cześć, piszę z kolejną rozterką. Z góry mówię że wykorzystuję CMSIS'a Chcę zobić częściowy remap TIM1, ale wiąże się to z przepisaniem 8 pinów na PA i PB. Problem w tym że chciałbym wykorzystać równocześnie USART1(PA9 i PA10) i ADC12 (PA6). Zanim zabiorę się za kodzenie, chciałem spytać czy mogę zrobić częściowy remap i wykorzystać tylko TIM1_CH1N i...
Witam ponownie Troche czasu minelo i zdazylem bardziej doglebnie poznac ten zestaw ref. jak i sam procesor STM32. Niestety wraz z rozrastaniem sie projektu powracaja stare bledy i tak: W trybie SC USART nie generuje mi przerwan dla kazdego znaku, tzn.: Przy wysylaniu przez karte ATR w stanie RSTIN LOW moj soft dostaje tylko jeden bajt (pierwszy z ATR)...
W standardowym nagłówku z CMSIS masz przecież makra np USART_CR. Na forum wrzuciłem też całkiem przyjazną funkcję do konfiguracji IO, wtedy kod wygląda tak: [syntax=c]static void UsartInit(){ RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN; GPIO_Config(GPIOA, 9, AFPP_OUTPUT_2MHZ); USART1->BRR = FREQUENCY/BAUD; // set baud rate to BAUD USART1->CR1...
Toolchain : C:\Program Files\GNU Tools ARM Embedded\4.9 2014q4 Debugowanie programu : http://obrazki.elektroda.pl/8776950400_1... Gdzieś w sieci wygrzebałem: In case that link ever disappears, what you have to do is ensure that your gcc command has "-Wl,-u,vfprintf -lprintf_flt -lm". This translates to: force vfprintf to...
Okazało się, że biblioteka standardowa przy zdefiniowanym taktowaniu 70Mhz ustawiła SYSCLK na 42.5 Mhz - nie wpłynęło to jednak na gatunek krzaka pokazywanego na terminalu. Dopóki ta biblioteka, która wyłącza myślenie nie będzie wiedzieć jaką masz częstotliwość SYSCLK i APBCLK to funkcja, która liczy BRR na pewno nie ustawi prawidłowej prędkości. Także...
Widać że pisałeś na AVRy bo te magiczne liczby i ich przesunięcia są nie czytania. Używaj czytelnych dla ludzi definicji z CMSIS (a dla fanatyków poprawności - tego co dostarczył STM). Dlatego nie przeczytam tego ale z takich drobnych uwag to sprawdzaj zy możesz pisać do rejestu DR. Osobiście nie sprawdzałem ale we wszystkich przykładach STM ustawia...
Witam! Od kilku dni poznaje uC ARM Cortex-M. Do nauki wykorzystuje płytkę stm32f0discovery oraz darmowe IDE CooCox. Mój problem polega na uruchomieniu uarta. Od wczoraj męczę się z jego uruchomieniem i kombinuje na wszystkie sposoby a linia TX nadal milczy. Poniżej kod programu bez użycia bibliotek ST. [syntax=c] #include "cmsis_boot/stm32f0xx.h" #include...
Dodano po 31 Kiedy debuguje program, krokowo, zaraz po a = 124; z linii b = log10(a); wskakuje do nieskończonej pętli - void HardFault_Handler(void). Tak jakby sam adres procedury wywoływał błąd sprzętowy.
Szkoda słów <: Dobrze że do LPC i innych ARMów nie ma takich "superaśnych" bibliotek (; Ależ są ;] Np: "LPC175x and LPC176x CMSIS-Compliant Standard Peripheral Firmware Driver Library (GNU, Keil, IAR) (Jun 21, 2011)" http://ics.nxp.com/support/documents/mic... Tyle, że chyba nie tak popularne. Nie wiem,...
Aby było prościej to zrezygnujmy z DMA. Przy zwykłym wysyłaniu stringa efekt jest taki sam. Wysyłam tak: GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2014q4\bin compile: [mkdir] Skipping C:\CooCox\CoIDE\workspace\DMA\dma\De... because it already exists. [mkdir] Skipping C:\CooCox\CoIDE\workspace\DMA\dma\De...
(at)CMSISDSAP , dzięki, działa! Niepotrzebnie sobie skomplikowałem to zagadnienie w głowie i nie mogłem zrozumieć o co chodzi i jak to działa, ale teraz już wiem, że to nie takie trudne :) Wystarczy wysyłać na USART1. Komunikacja po ST-Linku działa, odbieram wiadomości w Tera Termie. Dzięki za pomoc i cierpliwość! Zamykam.
łatwiej stosować ci te przesunięcia bitowe, gdy zdefiniowane masz wszystko elegancko w CMSIS do stm? Ci jest czytelniejsze? USART1_CR1_UE czy 1<<2 ?? BlueDraco czepianie się tego UL to przesada, i chyba tylko tobie wadzi. Lepiej by było jeśli gdzieś miałoby zabraknąć.
Definicja HSE_VALUE w stm32f4xx.h jest definicją 'awaryjną', kiedy wartość nie jest zdefiniowana w żadnym innym miejscu. A to wcale nie jest takie pewne. Co do SPL, to wybór należy do Ciebie. Ja mogę tylko podpowiedzieć, że SPL nie jest już używany przez ST - został zastąpiony przez CubeMX, w połączeniu z HAL, który jest bardzo podobny do rozwiązania...
zapewnijmy atomowość względem czegokolwiek: Kod: __ASM volatile ("cpsid i"); //USART2->CR1&=(~USART_CR1_TXEIE); /* zablokuj przerwanie */ pt->dat++; //USART2->CR1|=USART_CR1_TXEIE; /* odblokuj przerwanie */ __ASM volatile ("cpsie i"); Od czegoś jest CMSIS _enable_interrupts(); itd. Powyższy kod nie gwarantuje pełnej atomowości.
Kod: [syntax=c]/** ****************************************... * (at)file system_stm32f0xx.c * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 23-March-2012 * (at)brief CMSIS Cortex-M0 Device Peripheral Access Layer System Source File. * This file contains the system clock configuration for STM32F0xx...
Udało mi się odpalić UARTA, ale sypie krzakami zamiast konkretnych znaków. [syntax=c]void USART_Conf(void) { RCC->APB1ENR |= RCC_APB1ENR_USART2EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; //TX - PA2/AF7//RX - PA3/AF7 GPIOA->AFR[0] = (7<<8); //str 60 DS<<4*pin GPIOA->MODER |= (2<<4); GPIOA->MODER &= ~(2<<6); //APB1/4...
Te krzaki w sumie nie zależą w żaden sposób od tego co wysyłam ale się powtarzają fragmentami. A jak powinna być ustawiona ta częstotliwość? Poniżej wrzucam ten plik z ustawieniami zegara. Ciężko mi się w tym połapać ;/ [syntax=c]/** ****************************************... * (at)file system_stm32l1xx.c * (at)author...
Jak widać na screenach on używa innej niż Ty i w jego bibliotece tego makra nie ma. Jak widać na screenach używa dokładnie tych samych nagłówków CMSIS dla STM32F4 co każdy (chyba że znasz jeszcze jakąś "bibliotekę" która ma główny nagłówek o nazwie `stm32f4xx.h` i ma dokładnie takie same definicje dla USARTa, innych rejestrów GPIO czy dla RCC?). Ale...
Witam, W celu zrealizowania komunikacji z DS18S20 skorzystałem z następujących kodów dostępnych na forum: Kod od freddiego do konfiguracji GPIO: [syntax=c] #define GPIO_CRx_MODE_CNF_mask 0xf //4 bity - 2 bity na mode i 2 bity na configurację /*-----------------MODE-----------------... #define GPIO_CRx_MODE_IN_value 0x0 #define GPIO_CRx_MODE_OUT_10M_value...
Mam stm32f4 discovery, korzystam z CoIDE. Żeby użyć spzetowe FPU zmieniłem kompilator na linaro. Przy ustawnieniu na softwarowe- kompilacia przebiega poprawnie. Przy ustawieniu na sprzętowe mam błędy takie same jak w Sourcery CodeBench. GCC HOME: D:\stm32\linaro\bin compile: [mkdir] Created dir: D:\stm32\CoIDE2\workspace\pradnica3\...
1. Rozumiem że celowo startujesz transmisję 1000 razy na sekundę - o ile nie zminiłeś ustawień systicka? 2. Dlaczego nie właczysz przerwania funkcjami CMSISowym NVIC_EnableIRQ(I2C1_EV_IRQn); Te funkcje w HALu są mi nieznane (nigdy nie korzstałem) 3. Czy masz zdefiniowany wektor w tablicy? Zależy jaki masz startup w toolchainie (może to oczywiście być...
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...
Witam ponownie tym razem próbuję uruchomić przerwanie od TIM7 w mikro STM32 F303VC6 na płytce Discovery F3. Napisałem konfiguracje NVIC i TIM7 po czym uruchomiłem całość i owszem to co jest w funkcji obsługi przerwania jest wykonywane ale mam wrażenie, że pełną częstotliwością a nie co 1 sekundę tj ustawiłem. Prosiłbym o jakieś wskazówki bo pierwszy...
Próbuję bawić się systemem FreeRTOS. Mam problem, gdy uruchomię tylko jedno zadanie led lub tx to wówczas one działają. Gdy próbuję uruchomić 2 zadania, nie działa nic. Próbowałem zmieniać rozmiar stosu, priorytety zadań i nic. [syntax=c]#include <stm32f4xx_usart.h> #include <misc.h> #include "stm32f401_discovery.h" #include "usart.h" #include...
I kolejna sprawa o której już wspominałem to taka, że nie chce w projekcie mieć tysięcy plików, które nie będą mi do niczego potrzebne i których przybywałoby przy każdej aktualizacji distortosa. Warto tutaj dodać, że od dłuższego czasu całość jest zrobiona tak, że używając np. STM32F4 możesz po prostu wywalić wszystkie foldery innych rodzin mikrokontrolerów....
a tak wygląda log kompilacji: To co wrzuciłeś nie ma nic wspólnego z logiem kompilacji. Ma być widać DOKŁADNE wywołania kompilatora, a nie info o tym jak się nazywają Twoje pliki i to ile warningów generują. Proponuję wiec poszukać jak skompilować projekt z opcją "verbose". Dodano po 4 Wrzuciłem ten Twój kod do pierwszego lepszego projektu jaki mam...
Napisałem Ci funkcję ustawiająca AF, celowo rozbitą na poszczególne kroki. [syntax=bash]FAILED: test/CMakeFiles/distortosTest.dir/main.c... /home/freddie/arm-none-eabi-gcc-8.3.0-19... -DLFS_NO_DEBUG -DLFS_NO_ERROR -DLFS_NO_MALLOC -DLFS_NO_WARN -I../test -Iinclude -I../include -I../source/board/ST_32F746GDISCOVERY/in... -I../source/chip/STM32/peripherals/GPIOv...
Chodzi ci o tą funkcję z CMSIS Dodano po 1 Nie o to ci chodziło :) Doczytałem i zrobiłem tak jak jest to opisane w readme.txt linaro opcje dla linkera LD_FLAGS += --specs=rdimon.specs -Wl,--start-group -lgcc -lc -lc -lm -lrdimon -Wl,--end-group usunąłem plik syscals.c i wszystko ładnie się skompilowało Odpaliłem OpenOCD z opcjami openocd -f scripts/board/stm32f4discovery.cfg...
Wygenerowany jest bezpośrednio z CooCoxa Linkera tutaj nie ma chyba jest zaszyty w środowisku. Wersja CoIDE to: Version: 1.7.8 [syntax=c] /** ****************************************... * (at)file startup_coide.c * (at)author Coocox * (at)version V1.0 * (at)date 20/07/2010 * (at)brief M0 M3 Devices Startup code. *...
No wiec tak, te dwie rzeczy są takie same w obu twoich przykładach i ich nie zmieniałem: __main_stack_size = 0; __process_stack_size = 1024; Przedstawiam poniżej to co teraz mam w moim projekcie: STM32F103RC_rom.ld [syntax=c]/*****************************... * author: Freddie Chopin, http://www.freddiechopin.info/...
No dobra. Coś mam. Nie udało się tego zrobić na STM32CubeIDE, ponieważ wejście do opcji projektu (prawym na projekt > Properties ) a następnie do istotnych C/C++ General > Preprocessor Include Paths, Macros etc. powoduje u mnie pojawienie się okienka z błędem że "The currently displayed page contains invalid values" i tyle mogę sobie tam pozmieniać......
Witam. Aktualnie walczę z kompilatorem GCC non-eabi. Chcę utwożyć projekt w C++ używając własnego skryptu linkera, jednak po długiej walce nie mam już pomysłu na rozwiązanie. W jaki sposób skonfigurować kompilator, linkera oraz skrypt linkera tak abym mógł własne tablice zdefiniowane w plikach .cpp wstawić w wybrane prze zemnie miejsce w pamięci? Wersja:...
cmsis stm32 stm32 cmsis cmsis stm32 error
option globetrotter naprawa aparatów schemat betoniarka
Citroen C3 Picasso 1.4: Podłączenie czujnika wałka rozrządu Zamiana tranzystora BD135 gr10 na BD135 gr16 w stabilizacji termicznej