The very first step jest modyfikacja pliku stm32_eth.h, plik ten zawiera definicje adresu rejestru statusowego zastosowanego PHY, oraz definicje masek bitowych zawierających informacje na temat położenie bitów prędkość oraz duplexu w tymże rejestrze. W przypadku ste100p jest to rejestr “XCVR Configuration Information and Interrupt Status Register”...
TIM1 jest tu specjalny, bo ma kilka wektorów przerwań (TIM1_BRK_IRQHandler, TIM1_UP_IRQHandler, TIM1_TRG_COM_IRQHandler, TIM1_CC_IRQHandler). Reszta timerów ma jeden. TIMx_IRQHandler, przeglądnij sobie -> 10.1.2 Interrupt and exception vectors
(1 << 27) Tego nie będę rozszyfrowywał. I przy okazji nie mieszaj kodu HAL-a z rejestrami - w tch samych funkcjach - no chyba że dokładnie wiesz co te halowe robią na poziomie rejestrów (ja np poza kilkoma nie wiem i nie chce mi się grzebać) Procedurę masz opisaną w RM Reception using DMA DMA mode can be enabled for reception by setting the DMAR...
Idea generalnie jest prosta - jeśli po wystąpieniu przerwania będziesz chciał zrobić coś co trwa "długo", to nie robisz tego w przerwaniu, bo blokujesz tym cały program - wtedy stosujesz polling flagi programowej lub sprzętowej. Jeśli chcesz zrobić coś co trwa "krótko" lub jeśli chcesz zrobić coś co musi być zrobione "natychmiast" po wystąpieniu przerwania...
Jeśli timer jest 16-bitowy to musisz dorzucić coś więcej - 16-bitów to zbyt mało. Licznik z którego korzystają run-time stats musi być 32-bitowy... Ja na STM32 mam to zrobione tak... 1. W FreeRTOSConfig.h mam: [syntax=C]... /*--------------------------------------... | Runtime...
Witajcie. Dalej mam podobny problem. Używam STM32F407. Posiadam staram się obłużyć 3 różne USARTY (USART1, USART3 i UART4) wszystkie pracują w trybie asynchronicznym. Pod te usarty podpięte są następujące urządzenia: -USART1 - GPS z protokołem NMEA wysyłający dane co 1 sekundę -USART3 - datalink łączący płytkę z STMem z komputerem. -UART4 - akcelerometr...
KEELOQ + rolling code można wykorzystać w swoim projekcie DIY bez przeszkód? Oczywiście. Dodano po 33 Mogę zainteresowanym podać kod KEELOQ dla pilota i odbioru , oczywiście z innymi danymi pilota ;). PILOT: Dodano po 10 Bardzo ciekawy i użyteczny projekt, właściwie to prototyp, który może przekształcić się w produkt. A czego mu brakuje żeby już nie...
(at)ElektrodaBot Dzień dobry, zmagam się z nietypowym problemem. Zepsuł mi się ostatnio moduł I2S2 MOD podłączony do stm32f407, który zawierał zarówno ADC jak i DAC działający po I2S. Kupiłem coś tańszego - jako ADC PCM1808, oraz jako DAC PCM5102. Wcześniej działałem na full-duplexie, teraz jestem zmuszony działać na half-duplexie. Napisałem prosty...
W main.c czarów nie ma , bo stworzyłem nowy projekt golasa na potrzebę uproszczenia szukania problemu. Nie jestem programistą ani elektronikiem ,a do sprawy podchodzę hobbistycznie jako początkujący. Korzystam z System Workbenach for stm32 + Stm32CubeMX z bibliotekami HAL. Cube szykuje wszystko po czym ja tylko dodaję funkcję HAL_SYSTICK_Callback. plik...
Witam !!! Uruchamiam projekt https://hackaday.io/project/158256-hover... https://github.com/isabellesimova/Hoverb... Projekt jest napisany na STM 32 W swojej desce mam GD32. Po uruchomieniu błąd systemu zgłasza watchdog /* IWDG init function */ static void MX_IWDG_Init(void) { __HAL_RCC_WWDG_CLK_ENABLE(); hiwdg.Instance = IWDG; hiwdg.Init.Prescaler...
Kod: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np. brakuje jakiejś flagi) i podczas debugowania nic ciekawego...
A więc tak: - dopisałem do syscall funkcję _exit() - usunąłem -march skopiowałem do flash.ld twoją definicję sekcji .bss. oto wynik: make ========================================... Build info: BOARD: maple MCU: STM32F103RB MEMORY_TARGET: flash See 'make help' for all possible targets ========================================...
No tak: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
Próbuje mierzyć częstotliwość sygnału wykorzystując przerwanie i Timer2 Napisałem taki oto kod przy pomocy CubeMX: 249992 Hz i niby ok. Jednak znalazłem kurs STM32 na FORBOT ( 249986 Hz. I teraz nie wiem czy prawidłowo należy skonfigurować timer do tego zadania tak jak zrobiłem czy tak jak w kursie?
Tak, tylko ta linia nie wnosi nic do problemu. Wróciłem do starej posklejanej wersji: Dodano po 5 Nerwy mnie już biorą... powyższy kod... po kolejnych próbach grzmoci się totalnie - inaczej tego ując nie moge (przepraszam). Zawiesza się od razu po załączeniu diody LED, USB wysiada przy BR = 9600 przy okazji sypiąc mi totalnie terminal...
Programiści wykorzystujący STM32 z serii L najczęściej korzystają z biblioteki HAL do obsługi tego typu przerwań. Chciałbym skonfigurować przerwanie które resetowałoby procesor po rozłączeniu zasilania bez jej wykorzystania. Układ zaprojektowany mam tak aby na pinie PA2 pojawiła się jedynka w momencie odcięcia zasilania. Według dokumentacji załączonej...
Zmieniam zdanie - wg standardu EABI atrybut ten jest KONIECZNY. Sorry. Poniżej info z dokumentacji GCC: interrupt Use this attribute on the ARM, AVR, CRX, M32C, M32R/D, m68k, MeP, MIPS, RX and Xstormy16 ports to indicate that the specified function is an interrupt handler. The compiler will generate function entry and exit sequences suitable for use...
Hmmm. Wgrałem oryginalny program z Stm32 MassStorage. vectors.c startup.S i .ld o kolegi Freddie Chopin. Mam obecnie dwa przerwania z Usb: USB_HP_CAN1_TX_IRQHandler i USB_LP_CAN1_RX0_IRQHandler ( w vectors.c było bez jedynek kolo CAN ). Zrobiłem takie coś, orginalny program void USB_HP_CAN1_TX_IRQHandler(void) { CTR_HP(); }...
Jednak Cię okłamałem - tablice IP mają dla każdego przerwania osobny element (; Sorry W razie wątpliwości zawsze można podejrzeć kod z CMSISa (; [syntax=C]/** * (at)brief Set the priority for an interrupt * * (at)param IRQn The number of the interrupt for set priority * (at)param priority The priority to set * * Set the priority for the specified interrupt....
Witam Próbuje to połączyć z tym co piszą na stornie ARM. Czyli jeśli np w M3 rejestr AIRCR bity http://obrazki.elektroda.pl/8148216600_1... 1. To dla Stm32 wygląda tak że nie ma pozycji PRIGROUP: 0b000 0b001 0b010 tylko zaczyna się od 0b010 do 0b111 ? Z tego wychodzi że Interrupt priority level value w STM32, nie jest PRI_N[7:0] tylko...
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...
sorry za pomyłkę: Dodano po 4 z funkcji "HAL_I2C_IsDeviceReady" też zwraca 1 Dodano po 9 Użyłem oscyloskopu i jakieś dane wysyła, SCL też jest. Dodano po 10 debuger oczywiście pokazuje HAL_ERROR dla tych "1" z STM Studio Dodano po 26 Podłączyłem MAXa do Arduino z jakąś biblioteką znalezioną w necie i działa
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:...
Witam, Próbuje skomunikować ze sobą STM32F4 z Arduino UNO po UARTcie. Skonfigurowałem UART1 i płytka komunikowała się bez problemu z Arduino. Lecz do mojego projektu potrzebna jest komunikacja przez UART2 (piny PA2-TX i PA3-RX), po skonfigurowaniu UART2 i podłączeniu do do Arduino nie mogę odczytać żadnych danych. Jeżeli podłącze UART1 z UART2 na płytce...
Witam, Temat: Program ma zrobić przerwanie na przycisku PC2 i PA0 tak aby zaświecić LED-ami na płytce. Zacząłem przygodę z STM32. Przerabiam poradnik ściągnięty z tego forum "Poradnik STM32 v1.9" . Bardzo interesująca lektura i bardzo wciągająca. Niestety napotkałem problem. Nie znalazłem odpowiedzi na forum więc piszę zapytanie tutaj. Chodzi o przerwanie...
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/...
Mały przykładzik z ustawieniami NVIC, priorytety przerwań i gdzie znaleźć opis w dokumentacji(PM0056): static void NVIC_conf(void){ //--------------------------------------... SCB->AIRCR |= (3<<8); //[Optional] Define interrupt fielding group, PRIGROUP[1:0]=11. see: PM0056 Programming...
W pliku vectors.c znalazlem taka definicje: main() { ... Konfiguracja NVIC (); Konfiguracja Timera (); ... void TIM1_BRK_IRQHandler(void) { ... obsluga LCD ... } } Czy to co napisalem jest prawidlowe? Jesli tak to skad mam wiedziec ktora funkcje z vectors.c najlepiej wybrac do moich potrzeb - czy jest...
Witam! Uczę się programowania mikrokontrolerów STM32 (aktualnie męczę STM32F103). Programy piszę w C, ale co jakiś czas zerkam w to co spłodził kompilator - w celach edukacyjno-poznawczych. Napisałem prostą funkcję obsługi przerwania od SysTicka. Deklaracja funkcji ma postać: [syntax=c]void SysTick_Handler(void) __attribute__((interrupt));[/syntax]...
To kod, który u mnie na STMF107 działa - może znajdziesz jakieś róznice... W przerwaniu mam obsługę klawiatury 4x4 + kilka liczników, ale to tutaj nieistotne, więc nie zamieszczam. [syntax=c] //--------------------------------------... // Inicjalizacja TIM2 //--------------------------------------...
[syntax=c]/* USER CODE BEGIN Header */ /** ****************************************... * (at)file : main.c * (at)brief : Main program body ****************************************... * (at)attention * * <h2>© Copyright (c) 2020 STMicroelectronics. * All rights reserved.</h2>...
Witam Jednak problem jest nadal.... idę teraz w konfiguracje przerwań. w FreeRTOSConfig.h [syntax=c]/* The lowest interrupt priority that can be used in a call to a "set priority" function. */ #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x0f /* The highest interrupt priority that can be used by any interrupt service routine that makes calls to interrupt...
Sam main.c raczej nic nie da ale proszę. /** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * This notice applies to any and all portions of this file * that are not between comment...
Witam, męczę się z pisaniem prototypu programu do falownika 1 fazowego. Wykorzystałem tim1 mikrokontrolera f103rb, wygenerowałem (najpierw) na jedym kanale 2 komplementarne sygnały PWM. Po przepuszczeniu przez filtr RC dostałem sinusa. Problem jest w tym że ustawiając jakąkolwiek wartość deadtime (wiem, że odpowiednio się ją wylicza) efektów nie widzę...
Witam Pracuje aktualnie nad obsługą diod WS2812 za pomocą mikrokontrolera stm32 (nucleo-f401re i stm32f0discovery). Komunikacja odbywa się za pomocą SPI z DMA. Problem w tym, że diody zachowują się praktycznie losowo. Zazwyczaj świecą się na biało. Nie jestem także w stanie kontrolować ich ilości. Poniżej udostępniam kod. https://obrazki.elektroda.pl/6687811200_...
Witam Wysyłam przykładowe ramki z terminala do STM32 przez driver MAX3485 i cały czas sypie mi błędami w odpowiedziach. Nie mam też pewności czy to co wysyłam z terminala do STM32 dociera bez błędów. Poniżej fragment kodu oraz zrzut ekranu. Powinienem otrzymać to co wysyłam. Czarny kolor to odebrane ramki. Proszę o pomoc http://obrazki.elektroda.pl/7456669500_1...
Dla CM3 interrupt latency wynosi 12 cykli i może być zaimplementowane do 256 priorytetów przerwań. Stellarisy mają zaimplementowane 8, STM32 ma ich 16, a LPC17xx ma ich 32. I nie ważne z kiedy ten dokument jest, jest nieaktualny. [url=http://ep.com.pl/files/2085.pdf]Lin... Wtedy był jeszcze na papierze, ale dokumentacja do rdzenia była dostępna. w tym...
Witam wszystkich! Nie udało mi się wygenerować PWM na wyjściu PA10 mimo tego, że poniższy kod: [syntax=c]void TIM1_Init (void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct; TIM_OCInitTypeDef TIM_OCInitStruct; NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef IO_InitStruct; u16 PrescalerValue; /* TIM1 clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP...
Trochę powoli mi to idzie ale do przodu. Przeglądam różne rozwiązania, klasa CDC jest interesująca ale skupiam się na czymś już zdefiniowanym w Windows i na razie będzie to HID. No więc z tego co narazie widzę to transfer interrupt (funkcja WriteFile) może maksymalnie nadawać 64B/ms co wynika bezpośrednio ze standardu USB. Udało mi się w końcu odpalić...
Nie przemawia to do mnie, w stm32f0xx.h mamy coś takiego: #define TIM_SR_CC1IF ((uint16_t)0x0002) /*!<Capture/Compare 1 interrupt Flag */ jak na mój gust zapis: TIM1->SR = ~TIM_SR_CC1IF; spowoduje najpierw zanegowanie TIM_SR_CC1IF a potem przypisanie do rejestru SR, czyli de facto wrzucimy tam wartość 0xFFFD. Zapis: TIM1->SR...
Witam i dzięki za zainteresowanie! Cytat z RM: DMA interrupt status register (DMA_ISR) ja pytam o sposób dostępu do tego rejestru, gdzie znajdę to napisane? Czy mam sam przez podobieństwo próbować czy coś takiego zadziała: DMA->ISR=0x......; ? Czy taka jest zasada? Gdzie te nazwy są zdefiniowane? Gdzie jest ich opis? Padają pytania-po co komu biblioteka...
Witam Mam problem z płytką portem usb w trybie cdc (inne też nie działają) w stm32 z bibliotekami HAL. Próbowałem go uruchomić (używam płytki stm32f429i-disco) ale komputer wogóle nie widzi że został podłączony. main.c [syntax=c] /** ****************************************... * File Name : main.c * Description : Main...
https://obrazki.elektroda.pl/4768835200_... Introduction to the course In order to understand what kind of device we will be designing today, let's first briefly recall what soldering stations generally are, and how they differ from each other. The entire lower price segment of such equipment, as you might guess, is captured by Chinese...
Mógłby ktoś rzucić okien na mój kod funkcji delay. Siedzę nad tym od paru godzin i nie mogę znaleźć błędu. Timer jest 2 razy szybszy nić powinien być. Używam TIM6, skonfigurowanego do ustawiania flagi przerwania przy overflow, ale nie obsługuję tego w przerwaniu tylko w funkcji delay sprawdzam, kiedy flaga zostanie ustawiona. Do prescalera wstawiam...
Jest i na stronie FreeRTOSa jak wspomniał autor A special note for Cortex M3 users: Remember that Cortex M3 cores use numerically low priority numbers to represent HIGH priority interrupts, which can seem counter-intuitive and is easy to forget! If you wish to assign an interrupt a low priority do NOT assign it a priority of 0 (or other low numeric...
Witam Dlaczego podczas obsługi przerwania TIM2 dwukrotnie jest ustawiana flaga "tim_up" ? Pierwszy raz natychmiast (błędnie) oraz drugi raz po ustawionym w preferencjach czasie (prawidłowo) [syntax=c]volatile uint8_t tim_up = 0; int main(void) { myinit (); TIM_Cmd(TIM2, ENABLE); while (1) { /* * You can do whatever you want in here */ if( tim_up ==...
Wiec, probowalem jeszcze raz ale z innymi pinami sterujacymi - wybralem do tego PORT_B_PIN11 i PORT_B_PIN_12, nie jestem pewien czy dobrze to sprawdzilem w nocie katalogowej, ale wydaje mi sie ,ze one powinny byc 5V tolerant. Ponizej zalaczam caly config. h oraz main.c - probowalem znowu przetestowac mozliwe wartosci dla nowych pinow sterujacych niestety...
No ale w czym problem - patrzysz w manual i po prostu zmieniasz prędkość. Pewnie nawet niczego nie trzeba wyłączać, tylko trzeba zadbać o to, by w momencie zmiany nie yło NIC wysyłane. A jakbyś się kiedyś zastanawiał, czy konfigurowanie wszystkiego w setce linijek z samymi ORami i AND-NOTami jest dobre, to zastanów się nad tymi linijkami, zbliżonymi...
Cześć. Dalej nie udaje mi się uruchomić tego modułu (RFM22B). Po tym jak staram się wysłać dane odczytuję rejestr przerwać i okazuje się, że mam błąd FIFO overflow/underflow. Nie wiem też jak sterować GPIO_0 i GPIO_1 dla tx i rx states. Czy ktoś kto już przeszedł przez podobne sprawy mógłby coś mi podpowiedzieć. Rejestry ustawiałem zgodnie z excelem...
stm32 timer interrupt freertos interrupt interrupt event
wirnik silnik jednofazowy synology ds220j pozycjoner obrotowy
migomat powermat migomat powermat
Problem z otwieraniem zdjęć JPG na starym telefonie z klapką Czarny ekran po wymianie T-CON w telewizorze