Skąd wziąłeś pomysł na wstawki z FLASH->ACR? Czytam RM0401 Jest dedykowany do tego rozdział: 3.4.1 Relation between CPU clock frequency and Flash memory read time Latency zależy od częstotliwości taktowania oraz napięcia zasilania, tak w skrócie. Co do ustawień zegara dla STM32 to warto zapamiętać sobie schemat działania, który wynika bezpośrednio...
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);...
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);...
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,...
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...
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...
Witam, Mam problem z odblokowaniem pamięci Flash do zapisu. sekwencja: FLASH->KEYR = 0x45670123; FLASH->KEYR = 0xCDEF89AB; Działa na pewno dobrze, na co wskazuje Lock (FLASH->CR & 0x80). Pozwala mi to na przeprowadzenie tylko jednej operacji na flash'u, na przykład mogę skasować jakąś stronę czy zapisać jakąś daną. Problem pojawia się gdy...
i tam napisane jest iż MLA trwa dwa cykle a np ADD, MUL jeden czyli ja zysku nie widzę przy wykorzystaniu tego rozkazu Moja odpowiedz mogła być trochę źle zrozumiana ale MLA trwa tyle samo (2 cykle) co (ADD 1cykl + MUL 1 cykl) no i tak jest, jednak czytałem że zaleca się używanie MLA. Następnie drodzy forumowicze co tak naprawdę oznacza wait state...
choć wydaje mi się że wskazane obszary pamięci są poprawne (0x80000000 przy BOOT0 ustawionym na 0 powinien wskazywać początek flasha). Co do tego żebym zerknął do noty to nie bardzo rozumiem, jedyne do czego można by się na upartego przyczepić to podciąganie NRST do zasilania, bo jest ono i tak podciągane przez wewnętrzny układ mikrokontrolera, także...
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 &=...
//wlaczenie opoznienia FLASH FLASH ->ACR |= (FLASH_ACR_LATENCY_1); Dla częstotliwości 72 MHz, żeby pamięć Flash działała musisz ustawić jej dwa cykle opóźnienia a nie jeden.
Przeczytaj sobie np ten temat: http://www.elektroda.pl/rtvforum/topic17... Od siebie napiszę tylko tyle, że jak porównasz kody bez bilioteki ze źródłem biblioteki to zauważysz jedną rzecz: coś co często można zrobić w dwóch linijkach (konfiguracja) tam jest robione w dwustu. Jest tam mnóstwo niepotrzebnych obliczeń do sprawdzania jaki bit gdzie...
Zapomniałeś oczywiście o FLASH LATENCY. Musisz ustawić odpowiednio rejestry pod 72MHz, łatwo to znajdziesz w RM.
Gdy ją od komentuję, podczas debugowania wszystko się sypie. W Zakładając że mówimy o projekcie stm32_blink_led, czyli tym dla F103. Jeśli w config.h ustawisz FREQUENCY na 24MHz max, w funkcji pll_start() wywalisz wywołanie funkcji flash_latency() (w F100 niby nie da się tego przestawiać), to powinno zadziałać, choć niekoniecznie optymalnie (w funkcji...
witam posiadam STM32F103RET6 i jeśli ustawię PLL mnożnik na więcej niż 6 razy (co odpowiada 48MHz) to procek wysypuje się, przechodzi do HardFault_Handler, jesli konfiguracje przeprowadziłem w THUMBie to jeszcze na 56MHz pracuje. Po pierwsze chciałbym zauważyć, że STM32 (Cortex-M3) obsługuje tylko thumb-2, więc niby w jakim trybie jesteś normalnie?...
A rejestr FLASH_ACR i latency to ustawiasz jakoś? Albert
Słyszałeś kiedyś o formatowaniu kodu ? [syntax=c]void RCC_Conf(void) { RCC->CR= 0x00000083; // to jest bez sensu, można wyrzucić RCC->CFGR= 0x00000000; // j.w. RCC->CIR= 0x00000000; // j.w. RCC->CR|=RCC_CR_HSEON ; while(RCC->CR & RCC_CR_HSERDY == 0); FLASH->ACR |= FLASH_ACR_PRFTBE; FLASH->ACR |= FLASH_ACR_LATENCY_2; RCC->CFGR |= RCC_CFGR_PLLMULL9 |...
Poradnik spoko - zauważyłem lepszą przydatność wygenerowania pojedynczego pliku nagłówkowego z rejestrami, skrojonego na miarę, w postaci struktury unii, niżeli używanie wyciętych fragmentów pliku nagłówkowego. Niestety trzeba uważać przy tworzeniu takiego pliku nagłówkowego i pilnować poprawności z dokumentacją: [syntax=c] #include <stdint.h>...
Wybaczcie ale jestem w pracy i już śpie, lepiej nie będę nic pisał :P Z programem Ci nie pomogę bo nie znam tej biblioteki, jedyne co mi się rzuca w oczy to "FLASH LATENCY", którego się nie ustawia bo przecież program uruchamia się z ramu
Witam Mam zdaje się banalny problem - mianowicie chcę zamigać diodą - procesor STM32F103RBT6 :P O ile na STM32F4 nie miałem z tym problemów to tutaj nie mogę sobie z tym poradzić od kilku godzin. [syntax=c]void RCC_Config(void) { RCC->CR |= RCC_CR_HSEON; FLASH->ACR |= FLASH_ACR_PRFTBE | (1<<2); //konfiguracja flasha (latency = 2 takty) RCC->CFGR...
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...
Template i konfiguracja RCC freddiego, mam nadzieję, że się nie obrazi :) Program używa tylko pinu TX i cyklicznie wysyła tablicę, w tym przypadku w kółko tą samą. [syntax=c]#include "inc/stm32f10x.h" #include "config.h" #define CRYSTAL 8000000ul // quartz crystal resonator which is connected to the chip #define FREQUENCY 72000000ul // desired target...
Witam! Timer generuje przerwanie periodyczne. W procedurze obsługi testowo chciałem przełączać stan na jednej z linii portu GPIO (prymitywny debug na LED), ale... okazało się, że nie działa. W pierwszej chwili szukałem błędów w inicjalizacji timera, ale później się okazało, że przerwania się generują, tylko ja tego nie widzę, bo nie wykonuje się przełączenie...
Masz nagłówek "stm32f10x.h" to z niego korzystaj. A nie stawiasz wszędzie (1 << X). Na poniższym przykładzie widać co chce zrobić... nawet nie potrzeba komentarzy, kto już jest obeznany trochę z STM32. [syntax=c]inline void RCC_conf(void){ FLASH->ACR |= FLASH_ACR_LATENCY_0; //set FLASH latency[2:0]=001, one state wait state, if 24MHz < SYSCLK...
Mam z jakiegos template od ST ;/ jak wróce to przerobie na wersje od freddiego aczkolwiek w komentazu jest * 5. This file configures the system clock as follows: *=======================================... *=======================================... * Supported STM32F4xx device...
wiec mam 8MHz tak jak fabrycznie dostalem stm32f0discovery. Napewno? "Fabrycznie" jest kwarc 8MHz natomiast MCU ma mnożnik PLL który można ustawić. Jakiego środowiska używasz? W "moim" eclipse standardowy szablon dla STM32F0DISCOVERY wygląda tak: Na pewno mam 8MHz. SysTick'iem sie upewnilem. Pokaż kod.
Witam, Po paru dniach ślęczenia udało mi się - tak myślę :) , skonfigurować rcc na 72MHz. : void rcc_init(void) //RCC init włączający procesor na 72MHz { RCC->CR|=0x1; //wlacz HSI wewnętrzny oscylator, włączany jako pierwszy po zasilaniu. while(!(RCC->CR&0x2)); //poczekaj na HSI sprawdza czy HSI się włączyło RCC->CFGR|=(0xF<<18);...
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...
Cześć, mam problem ze startem zewnętrznego kwarcu 16 MHz w STM32F030K6T6. Nota katalogowa mówi, że akceptuje on oscylatory z przedziału 8 - 32 MHz. Przy kwarcu są oczywiście dwa kondensatory 15 pF. W domyśle chciałbym uruchomić PLL x3, żeby mikrokontroler pracował z prędkością 48 MHz. Zmienna HSEStatus zostaje ustawiona na 0 po wygaśnięciu timeoutu...
(at)Marek_Skalski Tymbardziej nie rozumiem, dlaczego po przestawieniu na HSE w CubeMX wskazuje taktowanie szyn APB na 8 MHz a ja muszę takie zmiany wprowadzać. Co do funkcji ustawiającej zegar to jeśli projekt używa SPLa to wcale nie ma pewności, że faktycznie ten zegar masz ustawiony na 8 MHz, bo równie dobrze może być jednak ustawiony na zupełnie...
Próbuję zgodnie z DS ustawić częstotliwość APB1 na 42MHz. W związku z tym, że AHB ma zegar 84MHz należy zastosować dzielnik /2. http://obrazki.elektroda.pl/9304994000_1... [syntax=c]RCC->CFGR = (8<<16) | (4<<10) | 2;[/syntax] Niemniej ustawienie tego dzielnika w rejestrze CFGR na 2 nie przynosi skutku - APB jest tak samo...
Witam, zaczynam swoją przygodę z STM32, na początku chciałem się pobawić bibliotekami oferowanymi przez producenta i od razu nieprzyjemna niespodzianka. Mam taką funkcję: void RCC_Conf(void) { ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus...
Spróbuj dodać na początku linijkę: FLASH->ACR = 0x00000002; LATENCY: Latency 000 Zero wait state, if 0 < SYSCLK≤ 24 MHz 001 One wait state, if 24 MHz < SYSCLK ≤ 48 MHz 010 Two wait states, if 48 MHz < SYSCLK ≤ 72 MHz
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...
Wiesza się w tym samym miejscu co w moim programie - po włączeniu przerwania NVIC_EnableIRQ. W stosunku do oryginału zmieniłem tylko port GPIO oraz dodałem obsługę TIM3 i mryganie diodą na podstawie TIM3->CNT by wiedzieć czy licznik rzeczywiście działa. W skrypcie linkera ustawiłem oba stosy oraz tak jak sugerowałeś zmniejszyłem pamięć o połowę -...
Witam, Mam problem z odbiorem danych na magistrali CAN. Program wysyła dane na CAN co 500ms i to działa, natomiast kiedy pojawi się ramka na RX, program przestaje już wysyłać dane i wygląda jakby zawisł. Poniżej kod. Może ktoś sprawdzić i podać przyczynę problemu? [syntax=c]#include "stm32f10x.h" #include "stm32f10x_can.h" #include "hdr_rcc.h" #include...
Procek działa sobie z częstotliwością 8 MHz, powiedzmy, że sygnał ma z HSE. Chcę sobie go podkręcić na 72 MHz więc odpalam PLL. No i niby jest podkręcony ale Flash może działać tylko do 24 MHz więc trzeba dodawać latencje, np. za pomocą FLASH_SetLatency(FLASH_Latency_2); To z kolei powoduje, że kod programu jest wykonywany dużo wolniej i podniesienie...
A bawił się ktoś z Was tymi gotowcami od ST? Nie mogę tego uruchomić za bardzo. Na jednym małym projekcie działa ale jak chcę to dorzucić do FreeRTOS to już nie bardzo. Mam Taki kod: static void prvSetupHardware(void) { /* Start with the clocks in their expected state. */ RCC_DeInit(); /* Flash 0 wait state */ //FLASH_SetLatency(FLASH_Latency_2...
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...
Witam, mam problem z prawidłowym skonfigurowaniem wszystkich zegarów w moim procesorze. Zacząłem od bibliotek ST, jednak później po przeczytaniu wielu tematów na tym forum zabrałem się za dokumentacje i poustawiałem wszystkie bity tak jak trzeba.. i problem jest dalej ten sam. otóż najlepiej wytłumaczy to ten rysunek: http://obrazki.elektroda.pl/1942215800_1...
Skoro tak to rezystory wyrzuciłem. BOOT0 i BOOT1 są na masie. Oto fragment kodu rozruchowego: void RCC_Configuration() { ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { FLASH_PrefetchBufferCmd(FLASH_Prefet...
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...
Tak, to DIY. Ustawianie czegokolwiek w debuggerze nic nie da skoro openocd nie łączy się i kończy działanie. W plikach nic nie zmieniałem, oto one: stlink-v2.cfg stm32f4.cfg Only debugging on evaluation boards is allowed. Debugging on custom hardware is not supported and not allowed
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...
[syntax=c] void gpio_init(void) { // enable all possible GPIO ports RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN;// enable all possible GPIO ports } [/syntax] tak z ciekawości gdzie można znaleźć pliki nagłówkowe do procesorów stm32? Na stronie producenta w zakładce software są biblioteki SPL ale nagłówkowych nie ma. Przyznam...
Hard Fault jest podczas czytania czy podczas zapisu? Jakoś trudno mi uwierzyć w błąd podczas czytania. A próbowałeś rozbić operację na odczyt do zmiennej tymczasowej i zapis do rejestru? Wg mnie źle poustawiane zegary albo prefech czy też flash latency i wtedy w debugerze będzie miał faulty losowo. Bez jakichkolwiek fragmentów kodu to pewnie niewiele...
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
Krótkie pytanie czy ten kod powinien zapalać diodę LED podłączoną do pinu PB1? [syntax=c_loadrunner] #include "stm32f10x.h" void Clk_Init (void) { // 1. Clocking the controller from internal HSI RC (8 MHz) RCC_HSICmd(ENABLE); // wait until the HSI is ready while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); //...
Witam, Bawię się zestawem ZL27ARM i robię ćwiczenia z książki "STM32. Aplikacje i ćwiczenia w języku C" Jestem przy ćwiczeniu 18 i mam problem z DMA (pierwszy raz mam styczność z DMA). Zgodnie z przykładem wypełnienie PWM powinno zmieniać się od 0 do 100%. U mnie jest cały czas 50%. Dane z tablicy bufor_PWM nie są przekazywane do TIM1->CCR1 http://obrazki.elektroda.pl/9548353800_1...
Witam, Nie mogę rozwiązać jednego problemu, może będziecie w stanie mi pomóc. Próbuję na STM32F042 uruchomić biblioteki dla czujnika VL53L (biblioteki ULD), ale problem w sumie raczej nie w tym. Kompilacja przechodzi bez problemu, ale przy próbie wywołania funkcji wpada w HardFault i nie mam pojęcia czemu. https://obrazki.elektroda.pl/7548785900_...
FPU jest włączone (Opcja "FPU Hard" w Configuration -> Compile -> Options -> FPU). Jeśli wybiorę "Not use FPU" to mi się chyba licznik "przekręca" - jest różnica w czasach. W linku, który podałem gość używał opcji "FPU Soft" ale dlatego, że biblioteka PDM mu nie działała. Co do zegarów to wydaje mi się być ok. Czasy na TIM1, który wyzwala ADC...
Witam, Skonfigurowałem sobie zegar bazując na przykładzie znalezionym w sieci (kod poniżej). [syntax=c]void RCC_Config(void){ ErrorStatus HSEStartUpStatus; RCC_DeInit(); // Reset ustawień RCC RCC_HSEConfig(RCC_HSE_ON);// Włącz HSE HSEStartUpStatus = RCC_WaitForHSEStartUp(); // Czekaj aż zegar HSE będzie gotowy if(HSEStartUpStatus == SUCCESS){ FLASH_PrefetchBufferCmd(ENABLE);...
Wklejałem wcześniej kod konfiguracji zegara. Mógłbyś podpowiedzieć co może być źle w tej konfiguracji?? PS. Nie głoszę herezji tylko pytam. Wcale nie twierdzę że kod jest poprawny. Od tego chyba jest forum, żeby pytać o ewentualne źródła rozwiązania problemu. [syntax=cpp]void SystemClock_Config(void) { RCC_ClkInitTypeDef RCC_ClkInitStruct; RCC_OscInitTypeDef...
Witam. Właśnie próbuję napisać obsługę hd44780 ale mam problem że funckaj delay_ms nie odlicza odpowiednio czasu. Stm32 podłaczony do kwarcu 8 MHz i taktowane na 72Mhz. Proszę o wskazanie w czym jest problem, oczywiście dalej sam będę poszukiwał problemu. Pozdrawiam https://obrazki.elektroda.pl/1550611200_...
Witam wszystkich. Po wielu wysiłkach udało mi się skonfigurować środowisko do programowania STM32 w ECLIPSE. Mam jednak problem z konfiguracją projektu z użyciem biblioteki StdPeriph_Driver. Projekt ma zainkludowane pliki: stm32f10x_rcc.h i stm32f10x_flash.h z tej biblioteki w celu skonfigurowania układu taktowania ale nie chce się kompilować. /home/grzegorz/Programowanie/STM32_Toolc...
Podstawowe pytanie, używać będziesz biblioteki ST czy swojej. Jak ST to jest bardzo zagmatwana i uczy złych nawyków, niestety na niej się uczyłem i nawyki zostały ;]. konfiguracja zegarów za każdym razem wygląda tak samo (z biblioteki ST): [syntax=c]RCC_DeInit(); //reset do stanu początkowego zegarów RCC_HSEConfig(RCC_HSE_ON); //zewnętrzny szybki oscylator...
Mam taką konfigurację (też w Keilu): static void RCC_Configuration(void) { __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ /* Enable HSE */ RCC->CR |= ((uint32_t)RCC_CR_HSEON)... /* Wait till HSE is ready and if Time out is reached exit */ do...
Witam od dwóch dni walczę z bibliotekami Fatfs, i mam niezidentyfikowany błąd, wykończyły mi się pomysły. Sprawa wygląda tak posiłkuje się przykładami z książki STM32 w praktyce Autor: Krzysztof Paprocki. W zasadzie chce skompilować gotowy kod , (przykład R9 sd_fatfs) działam na układzie STM mini http://allegro.pl/zestaw-uruchomieniowy-...
Gdzie ustawiasz TIM_Clock_Division_CKD? Powinno być na TIM_CKD_DIV1 (0) - to są bity CKD w TIM1->CR1. Być może tutaj masz ustawione dzielenie przez dwa. Co do ustawień częstotliwości taktowania procesora to czy masz możliwość to jakoś sprawdzić? Żeby mieć pewność, że ustawiłeś 24 MHz albo coś innego? Z tego co widzę to na elektrodzie jest to mało spotykane,...
Pracuje obecnie na tym nowym discovery z F7 na pokladzie, chociaz rejestry z tego co widze ma te same co F4. Przyszla pora na uruchomienie RTC za pomoca wbudowanego tam kwarcu 32.768 khz i zupelnie nawet nie moge go wlaczyc. Moglby ktos zerknac co robie nie tak? HSE i glowne PLL dzialaja dobrze [syntax=c] void RCC_Init() { RCC->CR = RCC->CR = RCC_CR_HSITRIM...
Podaj zawartości jeszcze rejestrów od zegara itp, to tajemnica 72MHz się wyjaśni :) Oto kod inicjalizacji SPI1 void spi_init (void) { SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* Configure SPI1 pins: SCK, MISO and MOSI ---------------------------------*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7;...
Witam, Do obsługi wyświetlacza LCD chce użyć peryferia FSMC - SRAM (ten sam problem z NOR również). Niestety ale częstotliwość generowanych sygnałów jest dość niska. Czy mógłby ktoś spojrzeć na moją inicjalizacje FSMC, być może coś pominąłem i dlatego to tak powoli działa. U mnie czas pomiędzy kolejnymi impulsami na pinie NWE to 1.76us. Niewiele szybciej...
Witam, z góry przepraszam za mój nikły poziom obeznania w świecie STM32. Myślę, że problem będzie błahy dla wielkich myślicieli elektrody :) Otóż skonfigurowałem sobie TIM7 do pracy tak: [syntax=c]TIM_TimeBaseInitTypeDef TIM_InitStructure; TIM_InitStructure.TIM_Period = 4; TIM_InitStructure.TIM_Prescaler = 999; TIM_TimeBaseInit(TIM7, &TIM_InitStructure);...
Witam Żeby nie zakładać nowego tematu. Jeżeli nie jestem w dobrym miejscu to proszę przenieść. Mam problem z TIM3 z częściowym remapowaniem. Proc. STM32F050C6 Po prostu nie działa. Proszę kolegów o zerknięcie na ten kod. Siedzę trzeci dzień i już mnie coś trafia. Pewnie jakaś drobnostka ale nie widzę. TIM3 ma wygenerować PWM. Na razie o stałej częstotliwości...
Właśnie próbuje napisać program i nie chce mi się nawet zapalić LED, opieram się na STM32 w praktyce. Może podpowiecie co źle zrobiłem [syntax=c]#include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" void RCC_Conf(void) { ErrorStatus HSEStartUpStatus; // reset ustawien RCC RCC_DeInit(); // Wlacz HSE RCC_HSEConfig(RCC_HSE_ON);...
Panowie, A czy to nie jest jakieś dziwne, że problem wystepuje tylko przy debugowaniu? może coś sam projekt hw jest walnięty (sprawdzałem na dwóch egzemplarzach tego kitu i to samo). [url=http://www.elektroda.pl/rtvforum/do... Jeśli chodzi o konfigurację rcc i flasha to wygląda ona tak [syntax=c] void RCC_Conf(void) { ErrorStatus...
Witajcie, zbudowałem samodzielnie funkcję inicjalizacji zegarów i magistrali na podstawie biblioteki Standard Peripherals Library, jednak program nie rusza - na innej funkcji RCC_Configuration wszystko działa dobrze, jednak mi zależy na tym aby uC STM32L152 uruchomić przy jego maksymalnej prędkości 32MHz, a więc z użyciem pętli PLL. Podprogram stworzyłem...
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 Ja może rozwinę, choć przyczyną problemu jest wg mnie nie przeczytanie dokumentacji... Funkcja pll_start() z moich przykładów uruchamia PLL i konfiguruje niektóre rzeczy które do tego celu MUSZĄ być...
Zrobiłem najprostszy program z uruchomieniem jedynie RCC i GPIO. [syntax=c] #include "math.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" float a = 123.4; float b; void GPIO_Conf(void); void RCC_Conf(void); GPIO_InitTypeDef GPIO_InitStructure; int main(void) { RCC_Conf(); GPIO_Conf(); if (a < 40) { a = 123;...
Witam wszystkich, Rozpocząłem swoją przygodę z mikrokontrolerami stm32 od najprostszego z możliwych programów, a mianowicie miganie diodą. Po rozkręceniu PLL do 72 MHz, postanowiłem zmieniać stan diody co około 1s(w pętli opoźniającej zliczałem zmienną "int i" do 72000000). Problem polega na tym, ze stan diody zmienia się nie co 1s, a co kilka sekund....
Witam Zaczynam swoją przygodę z STM32 (nie chce rozmawiać dlaczego nie atmega itp). Zakupiłem zestaw STM32F429- DISCO. Postanowiłem pracować z książką "STM32 Aplikacje i ćwiczenia w języku C". Programy od producenta działają bez problemu. Jednak podczas przepisywania szkieletu programu z książki występują problemy z biblioteką stm32f4xx.h (tak, jest...
Witam. Posiadam moduł z mikrokontrolerem STM32F207ZGT6, problem w tym że GPIO działa za wolno, mam napisany prosty program do testów który zmienia stan pinu 0 portu C. podłączyłem się oscyloskopem i sygnał na tym wyjściu ma około 2,308Mhz. To chyba zdecydowanie za wolno jak na ten mikrokontroler. Częstotliwość ta jest taka sama, niezależnie od tego...
Dzień dobry, Zacząłem naukę STM32 i mam problem z USART2. Chciałem się połączyć z hyperterminalem. Od strony terminala wszystko działa poprawnie (sprawdzone przez zwarcie tx i rx). Od strony stm-a wygląda to tak, że kiedy chcę odebrać jakiś znak, to program wisi na fladze oczekującej na odebranie znaku. Natomiast kiedy chcę wysyłać, to nic się nie dzieje...
Nie używam przerwań, nie inicjuje NVIC, generalnie program jest prosty jak konstrukcja cepa (ale i tak coś zwaliłem :), i wiem że nie robi się tak opóźnień w programie :) #include "stm32f10x_conf.h" #include <stdio.h> void RCC_Conf(void); //void NVIC_Conf(void); void GPIO_Conf(void); void delay_ms(u16);...
Witam, rozpoczynam swoją przygodę z STM32F4 Discovery korzystając z książki "STM32. Aplikacje i ćwiczenia w języku C" Przy ćwiczeniu 0 tworzona jest funkcja RCC_Config(), gdy chcę jej użyc w swoim projekcie mam kilka błędów void RCC_Config(void) //konfigurowanie sygnalow taktujacych{ ErrorStatus HSEStartUpStatus; //zmienna opisujaca rezultat...
Witam, Zacząłem niedawno zabawę z STM32 i mam problem z przerwaniami oraz timerami. Chciałem uruchomić przerwanie zewnętrzne, a dalej przerwanie od timera co np 1sek. Jednak nie działa ani jedno ani drugie, czy ktoś mógłby nakierować mnie na dobrą drogę i powiedzieć co robię źle? Przeglądałem przykładowe aplikacje jednak dalej nie potrafię tego uruchomić....
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...
Witam, niestety muszę prosić o pomoc u podstaw, bo poległem. Problem jest taki: chciałem skompilować testowy program za pomocą arm-none-eabi-gcc z biblioteką CMSIS, bez żadnych eclipse, bez żadnych płytek rozwojowych - po prostu dioda podłączona do wyjścia procesora. Biblioteka chyba nie przewiduje bycia używanym przez arm-none-eabi-gcc więc: 1. utworzyłęm...
Jakieś sugestie ? Gdyby ktoś miał program do obsługi USART dla STM32F303RC w postaci pliku hex - nie pogardziłbym. Sprawdziłbym czy to wina kompilatora czy STM Edit Przeszedłem na środowisko Eclipse. Fajnie cacy, "obudowałem" sobie kompilator, wrzuciłem taki oto kod: For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Info : This...
korzystam z wewnętrznego generatora. PLL na 72Mhz, zegar dla APB2 ustawiony maksymalnie. GPIO jako push/pull/50Mhz. Sprawdzane na oscyloskopie cyfrowym. Obciążenie na wyjściu pinu, w sumie nie ma to znaczenia, ale jeżeli ma, to jest nieobciążony. void RCC_Configuration(void) { /* RCC system reset(for debug purpose) */ RCC_DeInit();...
Witam! Chciałem sobie zrobić prosty Counter zliczający ilość wciśnięć przycisku podpiętego do wejścia PA0. Skorzystałem z przykładu który zamieszczam poniżej. Niestety mój prosty Counter nie zlicza naciśnięć i zmienna cnt cały czas wynosi 0. Mam takie podejrzenie że przycisk nie jest programowo połączony z TIM2 tzn w funkcja TIM_TIxExternalClockConfig(TIM2,...
Hej :) Natknąłem się na pewnie problem którego nie mogę rozwiązać otóż spróbowałem sobie zrobić prosty generator przerwań przy użyciu SysTicka (przykład z książki paprockiego) który zapalałby mi diode po 500ms. Nie wiem w czym może leżeć problem ale dioda mi nie miga. Poniżej wklejam kod main i funkcji void SysTickHandler(void): main: #include <stdint.h>...
Mam dosyć nietypową prośbę. Potrzebowałbym plik bin który ustawia i resetuje pin PA3 co 500ms. Niestety albo ja czegoś nie doczytałem albo to "coś" nie jest napisane: Z PLL wychodzi 64Mhz (kwarc 16Mhz) void RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; //RCC system reset(for debug purpose) RCC_DeInit(); //Enable...
Witam Od niedawna bawię się uC STM32 i krok po kroku próbuję nauczyć się ich obsługi. Słowem wstępu: Mam płytkę ZL31ARM, pewne doświadczenie z programowaniem w C/C++ i zupełny brak doświadczenia z mikrokontrolerami. Mam już za sobą mruganie diodami i proste pętle opóźniające; obecnie chcę nauczyć się obsługi przerwać przy wykorzystaniu EXTI i IO. Korzystam...
Witam Szanowne Grono, Może mój problem okaże się lamerski, ale niestety nie znalazłem nigdzie informacji, które pomogły by mi rozwiązać mój problem. Otóż chciałbym móc pisac programy na STM32 w Keilu. Zainstalowałem sobie najnowszą wersję 4.21 i napisałem na poczatek bardzo prosty program do obsługi wyświetlaczy 7-segm. Jest w nim konfiguracja PLL,...
Witam, jakiś czas temu założyłem temat dotyczący komunikacji uC z DS1307 za pomocą I2C (http://www.elektroda.pl/rtvforum/topic1... jako że nie udało mi się tego zrobić aż do teraz - a potrzebuję RTC na gwałt, postanowiłem uruchomić wewnętrzny RTC. Przeglądałem kilka przykładów (w tym te od ST, oraz przykłady z książki o STM32 od Pana Paprockiego)....
Witam, najogólniej rzecz ujmując: mam problem z ustawieniem prawidłowej szybkości transmisji USART. Przy konfiguracji USART podaję dość "standardowe" 9600 bodów, lecz ARM ( STM32F107 ) wysyła sygnał ok. 2.5x wolniej (3846 Bd, zmierzone oscyloskopem). Dopiero po podaniu 24000 Bd (9600 x 2.5) szybkość transmisji to 9600 Bd. Od razu nasunęła mi się myśl,...
Witam, Mam mały problem z ustawieniem niestandardowej prędkości na STM32 powyżej 115200. Problem pojawia się zarówno przy użyciu funkcji niesocjalizującej jak i ręcznego skonfigurowania ( ręczne wyliczenie wartości dla rejestru BRR ). Nie ma problemu z różnymi transmisjami 9600, 28800 aż do 115200. Po tej wartości terminal milczy. Jedynie przy użyciu...
Witam, mam problem z uruchomieniem przetwornika cyfrowo analogowego na mikrokontrolerze stm32f103c8 . Według mnie konfiguracja przetwornika jest poprawna.Piny PA4 i PA5 są sprawne, mogę ręcznie ustawiać dowolny stan. Już spędziłem nad tym kilkanaście godzin i nadal nie moge wysterować pinu Pa4 napięciem z przetwornika DA. Zachowuje się jako do niczego...
Witam, nie chce zakładać nowego tematu, a problem mam z kategorii dlaczego nie działa :) Timer mi smiga, bo zmienia się wartość, diodka też się świeci, bo mam podłączoną pod PA11, z tym że jasność świecenia diodki się w ogóle nie zmienia jak zmieniam wartość rejestru TIM1 -> OCCR4 w czym problem ? Proszę o pomoc i pozdrawiam, a poniżej zamieszczam...
Witam, czy spotkał się ktoś z Was może z taką sytuacją, żeby uruchomiony zegar sterwonika FSMC uniemożliwiał generację sygnału start z i2c? Transmisja jest możliwa dopiero po jego wyąłczeniu, co może nie jest strasznie uciążliwe, ale nieprzyjemne i przede wszystkim nie wiem czemu tak jest... kod (pomieszany, ale po woli sie przesiadam z biblioteki na...
Drogi Gaskoin twoje gdybanie o mojej niewiedzy są trochę bezpodstawne. Po prostu po długiej walce w truestudio zacząłem mieć wątpliwości co może być przyczyną więc zacząłem atakować eclipse. Możecie do Eclipsa skorzystać z tutka Freddiego jak to postawić. Jak już napisałem środowisko działa, nawet debugowanie przez stlinka działa. No ale nie mogę zoptymalizować...
[syntax=cpp] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" #include "misc.h" #include "stm32f10x_exti.h" void Clock_init(void) ; void GPIO_init(void); void NVIC_init(void); void EXTI_init(void); int main(void) { Clock_init() ; GPIO_init(); NVIC_init(); EXTI_init();...
Witam, mam taki oto problem. Chciałbym przeprowadzić transmisję SPI jednocześnie nie obciążając CPU, a więc odpowiedź jest jasna czyli DMA. Napisałem sobie taką funkcyjkę do transmisji danych: [syntax=c]void CopyTo( UNSIGNED8_PTR pToMemory, MEM_UNSIGNED8_PTR pLocalMemory, UWORD wLength ) { UWORD wAddress; UWORD i; UBYTE data; DMA1_Channel3->CNDTR=wLength;...
Chciałbym wywołać przerwanie po naciśnięciu przycisku.Przycisk mam na porcie PA9, po naciśnięciu chciałbym zapalić diode na porcie pa10 niestety nie działa mi, co robie nie tak? [syntax=cpp] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" #include "misc.h" #include...
Witam niedawno rozpocząłem przygodę z STM32. Korzystam z zestawu uruchomieniowego olimexp103 w którym zamontowany jest przycisk normalnie otwarty podpisany "wake up". Chciałbym go użyć do moich prostych programików, jest to możliwe czy jest on przeznaczony do innych celów? Jeżeli jest możliwe użycie go do prostych programów to poniżej opisuję mój problem,...
Cześć wszystkim. Jestem początkującym ludzikiem który zaczyna swoja zabawę z stm32. Pracuje nad projektem do którego niezbędny jest mi RTC i tu pojawia się problem... otóż kompilacja przebiega bez błędnie ale UC nie reaguje. wstawiam kod całego programu. [syntax=c]#include "stm32f10x.h" #include "stm32f10x_rtc.h" void RCC_Conf(void); void GPIO_Conf(void);...
witam Podpiąłem włącznik pod gipo ustawiłem na nim przerwanie i zmienną która je zlicza. jak przycisk trzymam krótko to licznik powiększa się o jeden prawidłowo, przy dłuższym przytrzymaniu przycisku zliczenie ( przerwanie ) występuje na przyciśnięciu i puszczeniu guzika, proszę o pomoc [syntax=c]void Clock_init(void); void GPIO_init(void); void NVIC_init(void);...
Witam, otóż mam problem z konfiguracją zegara, tak aby mikrokontroler działał z prędkością 216MHz. Po próbie przetaktowania mikrokontrolera pojawia się problem z transmisją USART z czego wnioskuję, że robię coś źle przy konfiguracji zegara, bo transmisja USART przy standardowym taktowaniu działa bez problemu. [syntax=c] static void flash_latency(uint32_t...
Witam! Mam problem z uruchomieniem modułów radiowych RFM12 pod STM32. Uruchomiłem je bez problemu na ATmegach8 korzystając z funkcji opisanych w [url=http://www.elektroda.pl/rtvforum/vi... poście. Jest to programowy SPI i przepisałem funkcje od nadajnika tworząc coś takiego: [syntax=c] #include "stm32f10x.h" #include "GLCD.h"...
flash latency stm32 flash flash stm32
podgrzewanie przedniej szyby szyby poduszki toyota układ kombinacyjny multiplekser
Audi Chorus - konieczność wpisywania kodu po wyłączeniu zapłonu Głośność alarmu w kuchenkach gazowych: optymalne wartości