PM0056 Programming manual strona 151 The RELOAD value is calculated according to its use: ● To generate a multi-shot timer with a period of N processor clock cycles, use a RELOAD value of N-1. For example, if the SysTick interrupt is required every 100 clock pulses, set RELOAD to 99. ● To deliver a single SysTick interrupt after a delay...
Super, w życiu bym na to nie wpadł. Przyzwyczajenie z windows z tym cpp :) Co do SystemCoreClock - działa (pewnie dlatego że mam domyślne taktowanie i mieści się w zakresie argumentu) Dodano po 42 W każdym bądź razie problem rozwiązany ;)
HCLK = 24MHz , Cube w funkcji void SystemClock_Config(void) ustawia SysTick w taki sposób: [syntax=c] /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()... /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKS... /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn,...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
Kolego Piotrus_999 po imporcie projektu do eclipse wygenerowanego z cube widzę że kod jest napisany w hal. Nie widzę opcji w cube aby nie generował w hal jak i opcji USE_HAL_DRIVERw eclipse . Oto fragment kodu ustawiającego zegary: [syntax=c]void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Initializes...
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...
Hej, dzięki za odpowiedź - nie działało, bo wywaliłem pliki z USARTem, a w jednym miejscu użyte było printf, co co ciekawe nie wywalało się w czasie kompilacji, ale po wywaleniu tego fragmentu jestem w stanie uruchomić debug. (Faktycznie nie popisałem się z tym .elf, noob ze mnie) Teraz jednak mam problem - SPI1->SR po kilku (około 20 - 40) odczytach...
No właśnie, żeby całkowicie wyczerpać temat i zakończyć go chciałem zapytać jeszcze o dwie rzeczy a mianowicie: o ten SysTick timer i o tryb porównania w liczniku. 1.Może najpierw ten SysTick. Wiem że w ten sposób: [syntax=c] SysTick_Config(FREQUENCY/1000); [/syntax] będę miał przerwanie co 1 milisekundę. Wiem także że przerwanie mogę zawrzeć w: [syntax=c]...
SysTick_Config() to przykład całkowicie bzdurnej funkcji, która "za Twoimi plecami" ustawia na sztywno że SysTick będzie taktowany z zegara rdzenia podzielonego przez 8. Tak wiec dla Twojego mikrokontrolera taktowanego zegarem 48MHz, SysTick był taktowany zegarem 6MHz. A powiedz mi dlaczego zewn a nie zegar procesora? [syntax=c]__STATIC_INLINE uint32_t...
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...
Witam, mam krótkie pytanko. Od jakiegoś czasu korzystam z bibliotek HAL i ostatnio stwierdziłem, fajnie by było posprzątać w main.c. HAL po wygenerowaniu kodu podpina w mainie wszystkie funkcje konfiguracyjne np. [syntax=c] void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /**Configure the main...
Witam, mam następujący problem: napisałem dwa proste programy, pierwszy testuje przerwanie od timera a drugi testuje przerwanie SysTick. Problem polega na tym że oba nie działają. W pierwszym przypadku program zamiast skoczyć do funkcji obsługi przerwania, wpada w nieskończoną pętlę.(w pliku startup_LPC11xx.s w linijce 196), a w drugim programie przerwanie...
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:...
Tak to jest jak się używa bibliotek, które "wszystko ułatwiają"... [syntax=C]/** * (at)brief Initialize and start the SysTick counter and its interrupt. * * (at)param ticks number of ticks between two interrupts * (at)return 1 = failed, 0 = successful * * Initialise the system tick timer and its interrupt and start the * system tick timer / counter...
Bardzo dziękuje za zainteresowanie. Jeśli chodzi o wartość ARR to się pomyliłam użyte wartości to : ARR - 99 PSC - 99 CKD - 0. Konfiguracja zegara: Funkcja inicjalizacji timera : Funkcja do sterowania: [syntax=c]void pwm_tim3_set(uint16_t duty) { if (duty < 1) { pwm_duty = 0; TIM3->CCR4 = 0; } else if (duty > 99) { pwm_duty = 99; TIM3->CCR4...
Witam od pewnego czasu probuje uruchomic żyroskop l3gd20 na płytce Discovery stm32f0072B-disco , niewiem gdzie robię błąd . [syntax=c] SPI_HandleTypeDef hspi2; void SystemClock_Config(void); void Error_Handler(void); static void MX_GPIO_Init(void); static void MX_SPI2_Init(void); uint8_t data; uint8_t setting; int main(void) { HAL_Init(); SystemClock_Config();...
Witam, Napotkałem ostrzeżenie przy kompilacji kodu: [syntax=csharp]#include "stm32f10x.h" int main(void) { RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; //Wlaczenie zegara portu A /*dioda*/ GPIOA->CRL |= GPIO_CRL_MODE5_1; //Wyjscie 2MHz GPIOA->CRL &= ~GPIO_CRL_CNF5_0; //Open-drain SysTick_Config(4000000); while(1) { }/*while*/ }/*main*/ __attribute__((interrupt))...
Nie wiem czy mogę mieć prośbę, ale czy możecie mi wskazać w którym miejscu i w jakiej dokumentacji jest opisane ile zajmuje interrupt latency?
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...
Gdy utworzysz pusty project dla F0Discovery w TrueStudio najnowszym to on automatycznie wygeneruje pierwszy program do mrugania LEDami. O taki: [syntax=c]#include <stddef.h> #include "stm32f0xx_rcc.h" #include "stm32f0xx_gpio.h" /* Private typedef */ /* Private define */ /* STM32F0_DISCOVERY board definitions */ #define LED_PORT GPIOC #define...
oto kod programu [syntax=c]/* Includes */ #include <stddef.h> #include "stm32f0xx_rcc.h" #include "stm32f0xx_gpio.h" #include "lcd_hd44780_lib.h" /* Private typedef */ /* Private define */ /* STM32F0_DISCOVERY board definitions */ #define LED_PORT GPIOC #define LED1 GPIO_Pin_9 #define LED2 GPIO_Pin_8 #define KEY_PORT GPIOA #define KEY GPIO_Pin_0...
Wygeneruj sobie projekt w cube i podejrzyj. Jest to najszybsze i najprostsze. Dodano po 11 [syntax=c]void HAL_UART_MspInit(UART_HandleTypeDef* huart) { GPIO_InitTypeDef GPIO_InitStruct; if(huart->Instance==USART1) { /* USER CODE BEGIN USART1_MspInit 0 */ /* USER CODE END USART1_MspInit 0 */ /* Peripheral clock enable */ __USART1_CLK_ENABLE(); /**USART1...
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, wykorzystywałem Sistick w w swoich programach do generowania przerwań, jadnak wydawały mi się za częste. Więc sprawdziłem to na prostym przykładzie. Chciałem wygenerować przerwanie co 1s, wiec zapisałem SysTick_Config(8000000); (taktowany wew generatorem RC 8MHz). Po spradzeniu analizatorem okazało się, że wykonuje się ono 10 razy na sekundę....
Udało się rozwiązać problem, kod poniżej. Rzeczywiście wystarczyło się dostosować do tego, że USB ISP zakłada że jest wywoływane po resecie. Nie brałem tego co tam jest napisane wcześniej na powożenia, bo w poprzednim projekcie problem nie wystąpił. Nie wiem do końca która linijka jest kluczowa, na pewno nie wszystkie mają znaczenie. Delay prawdopodobnie...
Witam. Na początku muszę zaznaczyć, że jestem raczej początkującym w temacie mikrokontrolerów i ogólnie elektroniki. Kupiłem sobie stm32f0 discovery oraz termometr ds18b20, podłączyłem wszystko jak trzeba - pin 1-wire do pc7, oraz piny zasilania odpowiednio do 3v i GND na płytce. Korzystam z IAR Embedded Workbench EWARM. Termometr działa, bo procedura...
i kurczę nie działa :( Napiszę co i jak mam wstawione: [syntax=c] void SysTick_Handler(void) __attribute__ ((interrupt)); void SysTick_Handler(void){ uint32_t stan; stan = (GPIOE->ODR &= 0x8000); GPIOE->ODR |= ~stan; }[/syntax] Ten kodzik mam wstawiony w main.c pod 'int main(void){. tutaj w którejś linijce siedzi "SysTick_Config (7813);" .}' A może...
AVE... LChucki ma ten problem, że on zna się na tych swoich ARMach i jest zaślepiony swoją miłością do nich. Wsadzałby je wszędzie, nawet tam, gdzie byle ATTiny czy PIC10/12F da radę. Dzielnikami i buforami rozwiązuje problemy, których by nie miał używając ośmiobitowca. A co do pisania prostych funkcji, to pozwolę sobie posłużyć się przykładem programu,...
Nie wiem jak wygląda Twój projekt. Ja mam w pliku port.c gdzieś tam dopisane tylko 3 linijki: [syntax=c] void PendSV_Handler(void) __attribute__ ((interrupt, naked, alias("xPortPendSVHandler"))); void SysTick_Handler(void) __attribute__ ((interrupt, alias("xPortSysTickHandler"))); void SVC_Handler(void) __attribute__ ((interrupt, naked, alias("vPortSVCHandler")));...
Nie mam oscyloskopu pod ręką :( Gdy zrobiłem tak: [syntax=c]#include "stm32f0xx.h" #include "stm32f0_discovery.h" volatile uint8_t x=0; int main(void) { RCC -> AHBENR = RCC_AHBENR_GPIOCEN; // port C GPIOC -> MODER |= GPIO_MODER_MODER8_0; // wszystkie piny jako wyjścia GPIOC -> PUPDR |= GPIO_PUPDR_PUPDR8_0;//pull-up dla całego portu SysTick_Config(16000000);//SysTick...
Wiesz co ja dopiero zaczynam z programowaniem stm ale jedna sprawa rzuciła mnie się w oczy. twoja funkcja jest prawie funkcją z biblioteki której definicja i rozwinięcie znajduje się w pliku core_cm4.h [syntax=c] __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible...
Włąśnie jestem w rozdziale o systick. Według mnie zmiana stanu diody powinna odbywać się co 1 sekundę a odbywa się szybciej. Nie zmieniałem taktowania procesora czyli w przypadku mojej płytki Nucleo F103rb powinna działać na 8 MHz. https://obrazki.elektroda.pl/8575770400_... [syntax=c]#include "stm32f10x.h" int main(void) { RCC->APB2ENR...
(at)habrat włączasz taktowanie AFIO? Dodano: Tak sobie myślę, że grono osób chętnych do analizowania Twojego kodu byłoby większe, gdyby był ładnie sformatowany i ogołocony ze wszystkiego co nie potrzebne, ale to Tobie powinno zależeć ;) Bo teraz to... szybciej można to napisać od zera: [syntax=c]int main(void) { RCC_InitMax(); /* HSE, PLL, 72MHz */...
Zresztą to też jest źle bo na "clobber list" nie mogę umieścić r7 - dlaczego? No ale przecież teraz też masz źle, przecież Ty nie "zastępujesz" tego co jest w tych rejestrach, tylko odczytujesz - one nie są dla Ciebie clobber, tylko właśnie input. A R7 to jest frame pointer. W "clobber" powinieneś mieć tylko "memory". Przy okazji wcale nie modyfikujesz...
Dodałem konfiguracje SysTick do obu projektów. Zero efektu. Już mi się kończą pomysły. Przejrzałem konfiguracje linkera, kompilatora i nic. Nie wiem czego się złapać. Wszystkie inne projekty działają a nie umiem uruchomić żadnego RTOS'a. Dodano po pewnym czasie Odpaliłem FreeRTOS Wiedza dla potomnych. Wystarczyło w pliku port.c włączyć aliasy przerwań...
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...
Tak to jest jak się z tej ogłupiającej biblioteki korzysta. Zajrzałem do core_cm3.h , tam funkcja SysTick_Config(ticks) przyjmuje postać: static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk)...
Witam, otóż mam problem, a mianowicie chciałbym obsłużyć przerwanie z pinu ALRT z przetwornika ADS1115 w celu wyeliminowania opóźnienia które teraz stosuje przy odczycie każdego z kanału (delay(20)) dokumentacja: https://cdn-shop.adafruit.com/datasheets... z góry dziękuję za pomoc mój dotychczasowy kod: [syntax=c] /* Includes ----------------------------------------...
Cześć, mam skonfigurowanego i działającego FreeRTOSa na STM32L452, priorytety w FreeRTOSConfig.h są skonfigurowane następująco: [syntax=c] #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... 5 #define configKERNEL_INTERRUPT_PRIORITY 255 #define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent...
Ja tego nie wymyślam. Jeśli byłoby samo inline, to kompilator oprócz rozwijania funkcji utworzyłby osobne ciało, które można byłoby wywołać (call). W przypadku static inline tego nie zrobi. Co do sensu lub nie, przykład z core_cm3.h [syntax=c]static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1);...
Witam, chciałby podglądać tablice bool oraz zmienna bool, jednak Stm Studio nie widzi tych zmiennych. Jeśli zmieniam typ na int zmienne stają się widoczne. W czym może istnieć problem? Z góry dzięki. [syntax=c]/* USER CODE BEGIN 0 */ bool mySwitches[16]; int mySwitches2[16]; int zmienna_int; bool zmienna_bool ; /* USER CODE END 0 */[/syntax] Cały plik...
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 przy generowaniu sygnału komplementarnego na timerze 1 w mikrokontrolerze STM32F427ZIT6 (płytka STM32F429I-DISCO) przy pomocy bibliotek HAL. Udało mi się wygenerować sygnał komplementarny ale nie udaje mi się skonfigurować deadtime-ów. [syntax=c] /** ****************************************... *...
Nie zauwazylem zadnej struktury dla SysTicka poza tymi definicjami. Zajrzyj do core_cm3.h , tam jest gotowa funkcja z CMSIS SysTick_Config(uint32_t ticks) i tam też znajduje się odpowiednia struktura w tym headerze. SysTick jest dostarczany z rdzeniem przez ARM. Dlatego konfigurację NVIC, ITM czy SysTick nie szukasz na stronach producenta mikrokontrolera...
Witam. Rozpocząłem przygodę z programowaniem układów STM32F4. Nabyłem płytkę XNUCLEO-F401RE (kompatybilną z NUCLEO-F401RE) oraz skorzystałem z kursu który znajduje się pod tym linkiem [url=http://forbot.pl/blog/artykuly/prog...
Cześć Od razu na wstępie, programowanie idzie mi tragicznie opornie, ale zaciskam zęby i próbuję. Mam Nucleo L476RG i "ujeżdżam" go z pomocą poradnika kolegi Szczywronek. Jestem na etapie SysTick'a i mam problem sam nie wiem do końca z czym. Chcę sobie wygenerować przerwanie od SysTick'a i zmienić stan pinu a środowisko System Workbench nie zgadza się...
Witam. Dla ćwiczebności napisałem sobie funkcję zwracającą ilość cykli zegara w celu pomiaru długości wykonywania funkcji itp. Aby to osiągnąć odczytuję "PENDSTSET" oraz stan licznika SysTick. Jednak pomiędzy tymi dwoma odczytami upływa trochę czasu i wartość licznika jestem w stanie skorygować znając czas jaki upłynął miedzy tymi dwoma instrukcjami...
Droga, którą obrałem to wpierw HAL, ze względu na bardzo przyjazną graficzną możliwość konfiguracji, a potem wraz z przeglądaniem dokumentacji powolne przechodzenie na rejestry. Po prostu po kolei np. obsługę portów (wejścia/ wyjścia) stosuję już bezpośrednio na rejestrach. I tak krok po korku ;) Co do wcześniej opisanego problemu, to moduł BT sterowany...
Dzień dobry, Napisałem sobie program (korzystam z: STM32CubeMX oraz Atolli TrueStudio, mam BluePill STM32F103C8, port szeregowy podłączony za pomocą UART2 oraz konwertera FT232RL (ustawionego na 3,3V - bo w dokumentacji wyczytałem że te wejścia nie tolerują 5V) do portu USB, gdzie łączę się za pomocą BrayTerminal). Na BluePill mam wbudowaną jedną diodę,...
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...
Tutaj jest kod przykładu, który przerabiam dla swojego uC: [syntax=c] int main(void) { RCC->APB2ENR = RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_TIM1EN; gpio_pin_cfg(GPIOB, PB0, gpio_mode_output_PP_2MHz); gpio_pin_cfg(GPIOA, PA8, gpio_mode_input_pull); BB(GPIOA->ODR, PA8) = 1; TIM1->CCER = TIM_CCER_CC1P; TIM1->SMCR = TIM_SMCR_SMS | TIM_SMCR_TS_0...
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...
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...
Cześć, Próbuję się skomunikować pomiędzy RPi i stm32f4. Na RPi korzystam z biblioteki bcm2835 a na stm32f4 z HAL. Być może nie do końca rozumiem zasadę działania SPI i sta te problemy. RPi jest masterem i co 1000ms wysyła dane w postaci tablicy o rozmiarze równym 4 elementy. Te dane są w poprawny sposób odbierane na stm32f4. Na stm32f4 korzystam z DMA,...
Bawię się na KA-NUCLEO F11. sprintf oraz funkcja uart_read_line(&huart2, buffer, 1024) wywołuje wyjątek HardFault. Znalazłem podobny temat, związany za liczbami zmiennoprzecinkowymi ale tam program nie "zawieszał się". Przykłady kodów zaczerpnąłem z https://stm32.eu/2017/11/28/3-stm32cube-... Fragment kodu [syntax=c] char buffer[1024];...
Dopiero jak "z palca" zrobię NO DEBUG to wtedy - no ale wtedy jest to zrobione świadomie bo sam tak wybrałem. Ale jaką wartość widzisz tam bez ruszania czegokolwiek? Dla jasności daję całą funkcję bo coś pisałeś że w user code. Sytuacja bez żadnej ingerencji w ustawienia (Nucleo-f103): [syntax=c]void HAL_MspInit(void) { /* USER CODE BEGIN MspInit 0...
Ok kod już wklejam - wczoraj na szybko przed spaniem posta piałem. Konfiguracja pinu od przerwania oraz samego przerwania: GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_... ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode...
Witam Jak w przerwaniu timer0 lub SysTick można zmieniać stany pinów (seryjne wysyłanie linijki matrycy LED do 74hc595) Wszystko ładnie działało (UART , SPI, I2C) do momentu włączenia obsługi nabijania matrycy danymi. Program się wiesza nawet jak próbuje zmienić stan jednego pinu. Piny normalnie się zmieniają w głównej pętli main ale w funkcji wywołanej...
Witajcie ponownie :) Wybaczcie, że dopiero teraz odpisuję. Ogólnie "odpaliłem" wreszcie te emulację EEPROMa w FLASH. Działa, ale mam jedno pytanie, wirtualny adres zmiennych, czy muszę jakoś uważać na to co tam wpiszę? Chodzi mi o tę linijkę kodu: [syntax=c]uint16_t VirtAddVarTab[NB_OF_VAR] = {0x5555, 0x6666, 0x7777};[/syntax] To pytanie dedykuję głównie...
Witam, próbuję uruchomić wyświetlacz monochromatyczny ze sterownikiem PCD8544 obsługiwanym za pomocą SPI. Wygenerowałem kod za pomocą CubeMx, utworzył mi strukturę "SPI_HandleTypeDef hspi2; " W pliku nagłówkowym biblioteki wyświetlacza chcę wysłać dane za pomocą : " HAL_SPI_Transmit( &hspi2, byte, LCD_BUFFER_SIZE, 100); " co powoduję błąd : 'hspi2'...
Jeżeli chodzi o zegar dla SYSCFG to włączam w funkcji: [syntax=c] void system_init(void) { RCC->IOPENR |= RCC_IOPENR_GPIOAEN | RCC_IOPENR_GPIOBEN | RCC_IOPENR_GPIOCEN; RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; // do przerwań zewnętrznych chyba konieczne //SysTick konfiguracja SysTick->VAL = 0; SysTick->LOAD = FREQUENCY...
Od niedawna posiadam moduł oparty na procesorze lpc1343 nauczyłem się m. in. uruchamiać komunikacji prze COM, mrugać diodą. Mam także moduł zegara czasu rzeczywistego ds1307, komunikacja po i2c to dla mnie nowość. W przykładach lpcxpresso znalazłem taki kod i2c if ( I2CInit( (uint32_t)I2CMASTER ) == FALSE ) Proszę o przykład i2c najlepiej do ds1307...
Witam wiem że stary temat ale poradziłeś sobie z nim, ja ma ten sam problem na stm32F2. (Program grzęźnie w funkcji vListInsert ) Problem jest jak używam Can Jak jestem w przerwaniu i robię tak to działa: [syntax=c]xQueueSend( xRxCanData, &m, 0 ); // send data /* Release FIFO0 */ CAN1->RF0R |= CAN_RF0R_RFOM0;[/syntax] Jak dam tak: [syntax=c]portBASE_TYPE...
Witam. Na początek pochwalę się kodem : Tak wygląda main: [syntax=c]int main(void) { /* This sample code shows how to use STM32F4xx GPIO HAL API to toggle PG13 IOs (connected to LED3 on STM32F429i-Discovery board) in an infinite loop. To proceed, 3 steps are required: */ /* STM32F4xx HAL library initialization: - Configure the Flash prefetch, instruction...
[syntax=armasm]g_pfnVectors: .word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler .word 0 .word PendSV_Handler .word SysTick_Handler /* External Interrupts */ .word WWDG_IRQHandler /*...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Tylko tyle zdążyłem napisać: [syntax=c]/** ****************************************... * (at)file main.c * (at)author Ac6 * (at)version V1.0 * (at)date 01-December-2013 * (at)brief Default main function. ****************************************... */ #include "stm32f0xx.h" #include...
Witam, modyfikuję bibliotekę pod klawiaturę matrycową 4x4. W funkcji "Keypad4x4_ChangeColomn" dla określonego warunku należy zmieniać ustawienia pinów z PushPull na Oped Drain. Wszystko funkcjonuje dobrze : dla pierwszego warunku "if(colNum_0_to_3==0)" bity w rejestrze zostają ustawione poprawnie, jednak dla kolejnych warunków pozostają one bez zmian,...
Funkcja SystemInit jest wywoływana w obu przypadkach na początku main. Podałem ją w kodzie. Może tutaj faktycznie jest problem. Pliki startup.s Keila i Cube się różnią. Zauważyłem, że funkcja SystemInit jest wywołana w pliku dla Cube. Niestety te pliki to dla mnie czarna magia. Czytałem o nim artykuł waszego kolegi z elektrody. https://www.elektroda.pl/rtvforum/topic3...
https://www.olimex.com/Products/ARM/ST/S... [syntax=c]/** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * * COPYRIGHT(c) 2016 STMicroelectronics * *...
Witam. Wygenerowałem kod w STM32CubeIDE. Problem polega na tym, że gdy debuguje go, to mogę swobodnie przechodzić krok po kroku do kolejnych instrukcji programu. Po wyłączeniu debugowania w celu pozwolenia mikrokontrolerowi działać swobodnie, ten nie chce działać. Znalazłem tako oto radę dotyczącą SysTicka: "You have to be very carefull when using HAL_Delay(),...
Niestety nie posiadam oscyloskopu. A tutaj kod: lib_ina219.c [syntax=c] #include "lib_ina219.h" extern I2C_HandleTypeDef hi2c1 ; uint16_t ina219_powerDivider_mW; uint16_t ina219_currentDivider_mA; uint16_t ina219_powerDivider_mW; /***************************************... /*! (at)brief Sends a single command byte over...
Wczoraj uruchomiłem RTC, działa ładnie, choć nie wiem dlaczego na koniec wpisu do rejestru RTC_CNT muszę dwa razy wyzerować bit RTC_CRL_CNF:) W następnej kolejności chcę uruchomić przerwanie od RTC, no i oczywiscie nie działa, inaczej nie pisałbym tu. Jak rozumiem z dokumntacji (tej cześci którą przeczytałem) i opisu przykladów, najpierw powinny być...
Witajcie, od dwóch dni próbuję ogarnąć przerwania EXTI. Już na to patrzeć nie umie... Gdy naciskam przycisk wszystko się zacina. Działanie programu (docelowe jakie ma być): dioda mruga co sekundę, po wciśnięciu przycisku gaśnie, po ponownym wciśnięciu zaczyna mrugać i tak w kółko. Działa: mruga, po wciśnięciu zostaje w stanie w jakim była podczas wciskania...
1. Jaka jest różnica pomiędzy gdb( flash ) a gdb ( flash ) + load W drugim program ładujesz do flasha i go debugujesz. W pierwszym nie wgrywasz programu, tylko debugujesz :) Jeśli masz inny program w procku a inny debugujesz wówczas będziesz miał bzdury w debugu. 2. Czy jest tutaj coś różnica pomiędzy kodem wynikowym skompilowanym pod debugowanie a...
Hehe, chyba ślepnę powoli :P Masz dobrą tablicę wektorów? Tablicę wektorów oczywiście napisałem sam, na podstawie twoich projektów dla µC LPC11xx i STM32. No i faktycznie, w tablicy wektorów zapisane miałem: Nie powinieneś działać na rejestrze 0? Tak, dokładnie, jedynka była wynikiem moich poszukiwań niepowodzenia, wcześniej widniało tam zero....
Całość kodu wygenerowałem za pomocą STM32Cube. Część odpowiedzialna za GPIO: [syntax=c]void HAL_ETH_MspInit(ETH_HandleTypeDef* heth) { GPIO_InitTypeDef GPIO_InitStruct; if(heth->Instance==ETH) { /*włączenie zegarów lini sygnałowych*/ __GPIOA_CLK_ENABLE(); __GPIOB_CLK_ENABLE(); __GPIOC_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); /* Peripheral clock enable */...
Chyba nie jest inicjowany 2x bo jedna inicjacja tyczy sie portu B a druga portu C.... Dodano po 2 Wiem, że wielu ludzi nie lubi STM32Cube. Włączyłem generator na parę minut i wygenerowałm 'drivery' dla pinu przycisk i pinu led. Nastepnie skopiowałem "logike" autora postu poprawaijac nazwy pinow. Roboty mało a szybki efekt w tak prostym programie. Nie...
Tak na szybko to powinieneś mieć plik prawdopodobnie o nazwie startup, w którym umieszcza się wektory obsłygi przerwań wyglądający jakoś tak: [syntax=c] //Interrupt vector table __attribute__ ((section(".isr_vector"))) void (* const exceptions_vectors[])(void) = { &_estack, // The initial stack pointer reset_handler, // The reset handler unused_vector,...
[syntax=cpp]#include "stm32f4xx.h" #include "system_stm32f4xx.h" #include "cmsis/core_cm4.h" void RCC_Config(void); void GPIO_Config(void); void NVIC_Config(void); void CHECK_Reset(void); void RTC_Config(void); void EXTI0_IRQHandler(void) __attribute__((interrupt)); void EXTI1_IRQHandler(void) __attribute__((interrupt)); void EXTI2_IRQHandler(void)...
JAk to nie ma grupowania, cytat ze strony 37 pdf Interrupt priority grouping To increase priority control in systems with interrupts, the NVIC supports priority grouping. This divides each interrupt priority register entry into two fields: • An upper field that defines the group priority • A lower field that defines a subpriority within...
Spróbuj tak: [syntax=c] /* * Topic: * * Author: Juffre * */ /* BASIC HEADERS---------------------------------... */ #include "MKL46Z4.h" /* DEFINITIONS ----------------------------------------... #define SYSTICK 1 // 1 - enabled 0 - disabled #define FREQUENCY 3 // [Hz]...
Witam Idea działania programu jest taka, że po starcie na wyświetlaczu pojawia się komunikat "napis testowy", a po naciśnięciu przycisku wyświetlany jest napis "STANDBY MODE" i układ przechodzi w tryb standby. Po naciśnięciu przycisku napis wyświetla się, ale mikrokontroler nie pracuje w trybie standby (podłączony miernik na pinie IDD). Niestety nie...
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...
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...
Witam, Mam urządzenie z którym chciałbym się skomunikować. Za pomocą Realterm wysyłam do urządzenia 3 znaki: /#1 i urządzenie odpowiada całą paczką danych. Przepięcie linii USB/RS232TTL do mikrokontrolera sprawiła mi jak zwykle kłopot. A mianowicie wysyłam do urządzenia te 3 znaki z STM32 natomiast urządzenie nie odpowiada.... Może mi ktoś powie jak...
Czy plik wygenerowany przez nowy projekt ale z dołączonymi bibliotekami HAL będzie dobry? W nim znajdują się już te przerwania. Dodaj tylko to co Ci napisałem. Znajdz w dokumentacji procesora gdzie w tablicy przyrwan jest ten EXTI15_10 - i tam zamiast zera wstaw nazwe seojego handlera. I to wszystko. Tu masz zresztą tę tablicę - policz sobie gdzie...
Witam, Chcę skonfigurować timer tak aby po określonym czasie zostało wygenerowane przerwanie(jednokrotnie), fragment kodu: [syntax=c]TIM4->PSC = 7200; TIM4->ARR = 10000; TIM4->DIER = TIM_DIER_UIE; TIM4->CR1 |= TIM_CR1_URS | TIM_CR1_OPM | TIM_CR1_CEN; NVIC_EnableIRQ(30);[/syntax] obsługa przerwania: [syntax=c]__attribute__ ((interrupt)) void TIM4_IRQHandler(void)...
Witam, Uruchomiłem komunikacje po porcie szeregowym za pomocą USART1. Wszystko niby działa, ale przy deklaracji BaudRate w programie np 57600, na terminalu (program REALTERM) komunikacja działa przy ustawieniu Baud: 115200. Ta sama sytuacja ma miejsce przy ustawieniach innych prędkości. Prędkość na terminalu musi być 2x większa niż ustawiona w programie...
jest mały problem uruchomiłem wszystko jednak system się zawiesza dioda się zapala uruchamia się wyświetlacz i usart wszystko zawiesza :/ main.c [syntax=c]/*****************************... (c)*************************************... ** ** http://www.powermcu.com ** **--------------File Info------------------------------------...
Po małej dyskusji oraz przejrzeniu Cortex ™-M3 TechnicalReference Manual, Revision: r1p1, nasuwa się takie ciekawe pytanie. Wiadomo, że zewnętrzne przerwania od układów peryferyjnych są podłączane pod odpowiednie linie IRQ_n, w tym przypadku mamy numery od 0-239, czyli IRQ0-239. Natomiast poziom priorytetów można ustalić dla wszystkich przerwań...
1. Przepraszam, zapomniałem przesłać fragmentu kodu : SysTick_Config(SystemCoreClock / 800); 2. Czy wystarczy ta jedna funkcja? 3. Nie za bardzo wiem o co Ci chodzi, ale otrzymuję taki komunikat: Program received signal SIGINT, Interrupt. UsageFault_Handler () at ../startup/startup_stm32.s:96 96../startup/startup_stm32.s: No such file or directory.
W pliku CubeMx utworzyło mi automatyczne połączenie obsługi przerwań HAL z biblioteką niskapoziomową. W przerwań tych nie korzystam w chwili obecnej, dlatego tez zastanawia mnie czy jeszcze gdzieś należy po Cube posprzątac. [syntax=c]#include "stm32f1xx_hal.h" #include "stm32f1xx.h" #include "stm32f1xx_it.h" /* USER CODE BEGIN 0 */ /* USER CODE END...
main [syntax=c] #include "stm32f7xx_hal.h" #include "lwip.h" #include "main.h" #include <string.h> #include "tcp_echoserver.h" /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private variables ----------------------------------------... /* USER CODE BEGIN PV */ /* Private variables ----------------------------------------...
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]...
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, mam taki problem. Walczę z obsługą karty SD na stm32f4 discovery. Niestety po wywołaniu funkcji f_open w najlepszym przypadku otrzymuję wynik FR_NOT_READY oczywiście bez względu na to czy karta jest czy jej nie ma. Załączam kod funkcji main oraz funkcje związane z spi. Kody są pobrane z forum, ja dopisałem jedynie obsługę SysTick do wywoływania...
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ę;).
Cały plik main. [syntax=c]/** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * * COPYRIGHT(c) 2016 STMicroelectronics * * Redistribution and use in source and binary forms, with or without...
to mój kod. raz działa raz nie. Np ponowne uruchomienie Debugowania już go pogoni, a czasem nie da rady. wywala HardFault_Handler() lub inne. [syntax=c] /** ****************************************... * File Name : main.c * Date : 13/09/2014 10:34:06 * Description : Main program body ****************************************...
systick handler stm32 systick systick stm32
samsung opóźniony schemat zasilacz antenowy wymiana silnika nawiewu
Osłabione ciśnienie wody w lodówce z filtrem – przyczyny i rozwiązania Schemat lampki rowerowej Deilin - analiza i typowe rozwiązania