Próbowałeś zmieniać JTAG Clock Divider?
Witam Timer2 może być maksymalnie taktowany 36[MHz] (APB1)- przynajmniej tak zrozumiałem z RM0008 Figure 8 clock tree. Pozdrawiam Piotr Edit: I jeszcze - jesteś pewien, że PLL pracuje może działa ci na HSI 8 [MHz] wtedy migała by ci dioda co 9s
Niestety nie pomogło Teraz proc wyłącza się po 40 s Myślę , że jest jakaś niezgodność CB32 z STM32
Bzdury piszesz Kolego. Jak wpisałeś kwarc 32768 kHz, czyli 32.768 MHz(!) to nic dziwnego, że program się buntuje i musisz szukać rozwiązania do problemu, który sam stworzyłeś. Nie ma żadnej potrzeby edytowania tej wartości. Dodatkowo, kiedy najedziesz kursorem na pole, to program podaje komunikat o błędzie: "LSE OSC frequency must be = 32.768KHz" Wpisz...
And how about reducing debugger's clock speed?
Twoje problemy rozwiązałby jakiś TMS320 z serii C2000. Ale to tylko moje dywagacje. Jeśli chodzi o STM32F4 to musisz przemyśleć czy rzeczywiście 4 MHz jest niezbędne dla ADC. Kiedyś bawiłem się timerami w Keil'u więc kod wstępny na pewno Ci się przyda (kanały timera3 działają na GPIO->C6-C9): odznacz NVIC_EnableIRQ !!! ): [syntax=c]void TIM3_IRQHandler(void)...
Dzięki za to, że napisałeś odpowiedzi na Twój problem, przydało się ale niestety nadal mam problem... Poniżej jest mój kod do odczytu przez I2C i wysyłanie po UART. Putty niestety wyrzuca "S▒▒" co restart. Ktoś wie czemu? (wiem, że ten kod nie jest najlepszy ale powinno działać. [syntax=c]#include "stm32f30x.h" void SysTick_Handler(void);...
No i tak i nie, kiedy wpisywałem np. RCC_APB1ENR_PWREN to nie było, a było RCC_APB1Periph_PWREN. Ale być może mam nie te pliki .h dołączone. No chyba, bo w tym pliku o którym ja mówię jest np. #define RCC_APB1ENR_PWREN ((uint32_t)0x10000000) /*!< Power interface clock enable */ stm32f10x.h Co do reszty, to w ostateczności można popatrzeć jak to...
Będzie, wystarczą 3 piny - data clock i gnd do zrównania potencjałów.
Na stronie 154 jest taka cudna tabelka: I2C pinout-----------------Configuration----... configuration I2Cx_SCL-----------------I2C clock------------------Alternate function open drain I2Cx_SDA-----------------I2C Data I/O--------------Alternate function open drain Eh, ile ja jeszcze razy zobaczę tu tą bibliotekę :/ Lepiej jest napisać po...
Ściągnij sobie szablon ze strony www.freddiechopin.info i zobacz jak się konfiguruje rcc żeby hulało z hse. Porównaj to z notą. Możesz też w nocie w sekcji clocks poszukać takiego czegoś jak clock tree - wtedy załapiesz co w jakiej kolejności powinno być skonfigurowane. Jaki masz układ ? Jesteś pewien, że może działać na 72MHz ? :)
Panowie mam chyba zaćmienie , pomroczność jasną albo skutki Covid-19. Procesor STM32L552 STM32CugeIDE i HAL Mam zmierzyć częstotliwość sygnału prostokątnego ok. 2,8 – 3,1 MHz FCPU 100 MHz Licznik Tim2 kanał 1 Clock source - InternalClock Channel 1 - Input Capture direct mode Tim2 global interrupt - enabled. Przerwanie działa void HAL_TIM_IC_CaptureCallback(TIM_Handl...
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...
Ja mam najnowsze firmware i mi działa z OpenOCD. stlink_usb_version(): STLINK v2 JTAG v15 API v2 SWIM v0 VID 0483 PID 3748 Open On-Chip Debugger 0.6.0-dev-00448-gc59a441 (2012-02-29-17:05) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d... Warn : must select a transport....
Uruchomiłem poniższy kod na CubeIDE na płytce z mikrokontrolerem F407VET i przerwanie od DMA ładnie tu działa. Z F030 muszę niestety jeszcze powalczyć. Zauważyłem, że jak nie dodałem warunku while((SPI1->SR & SPI_SR_BSY) == 0) obraz był przekoszony, czyli były błędy w transmisji. https://obrazki.elektroda.pl/1742074200_...
Embedded boot loader The embedded boot loader is located in the System memory, programmed by ST during production. It is used to reprogram the Flash memory with one of the available serial interfaces: ● In low-, medium- and high-density devices the bootoader is activated through the USART1 interface. ● In XL-density devices the boot loader...
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...
Mam płytkę ZL27ARM oraz STM32F0Discovery. Chcę za pomocą ZL27ARM i komunikacji SPI sterować jasnością diody na płytce discovery. Wartość od 0 do 100 ma "przychodzić" poprzez SPI i ma być wpisywana do licznika TIM3, który za pomocą PWM steruje jasnością diody LED. Program się kompiluje, ale płytka discovery nie reaguje na dane z SPI. Przy debugowaniu...
Tutaj udokumentuję moją podróż z tanią płytką deweloperską / hobbystyczną STM32F103C8T6 "blue pill" zakupioną w Ali Express. Pomimo układu scalonego oznaczonego jako "STM32F103C8T6", wewnętrzna pamięć flash wydaje się mieć 128k zamiast 64k, co czyni go bardziej podobnym do STM32F103CBT6. Wydaje się, że nie jest to nieoczekiwane w przypadku podróbek/klonów...
Ta linijka chyba ustawia: Z dokumentacji ARM:
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...
W STM32 takie rzeczy nie miałyby prawa się dziać - wystarczy zaznaczyć connect under reset ;)
Zobacz sobie obrazek nr 8 (Clock Tree) w RM0008 w rozdziale o RCC. DO: TIM2,3,4,5,6,7,12,13,14 idzie częstotliwość: jeżeli APB1 prescaler = 1 to częstotliwość APB1 w przeciwnym wypadku - częstotliwość 2*APB1 podobnie jest z pozostałymi timerami na APB2 więc jeśli uC jest taktowany zegarem 72MHz i na APB1 jest 36MHz (prescaler = 2) to tim2 i tak "działa"...
Co ja mam mysleć na temat telnetu w kontekscie dogadania się z tą czarną kostką z nóżkami? W wielkim skrócie. Openocd po uruchomieniu z poprawnie skonfigurowanymi skryptami target oraz interface po wykryciu procesora uruchamia na portach ustawionych w skrypcie interface(domyślnie telnet:4444 gdb:3333) dwa serwery. Jeden z którym można się połączyć...
Było (jakieś milion razy) (; W manualu znajdujesz rozdział RCC, Clocks, a w nim coś takiego na samym końcu (pod obrazkiem Clock Tree): The timer clock frequencies are automatically fixed by hardware. There are two cases: 1. if the APB prescaler is 1, the timer clock frequencies are set to the same frequency as that of the APB domain to which the timers...
Np. czujnik temperatury i wilgotności Sensirion SHT2x w jednym z trybów: Co i tak nie zmienia problemu Autora. Jego slave działa nieprawidłłowo. Zakładam też że diagnoza jest prawidłowa i to SCL jest trzymany a nie SDA. Bo takie zwiechy po resecie mastera właśnie tak wyglądają. I wdety "do-clock-owanie" załatwia sprawę.
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()...
Pulse powinno robić robotę. Jednakże widzę dwie rzeczy które wydają się śliskie. Pierwsza to brak ptaka przy "internal clock" - jak więc timer jest taktowany? Druga: Fast Mode Enabled - coś mi się niejasno kojarzy (dawno o tym czytałem i pobieżnie), że ten tryb jakoś wpływa (ale nie pamiętam jak :-D) na sposób wyzwalania więc warto by o tym poczytać w...
Ponieważ np. I2C komunikuje się z urządzeniem zewnętrznym przez piny GPIO ustawionymi jako alternatywna funkcja pinu AFIO i dlatego trzeba te bloki włączyć ..najoględniej mówiąc. Najogólniej mówiąc to AFIO służy jedynie do remapowania pinów i pierwsze słyszę, że należy je włączać dla I2C, ADC etc. Zegar należy włączyć dla GPIO i dla danego peryferium....
ale co można jeszcze ustawiać To co jak byk pisze w DS? "Dummy Clock Cycle" dla komend które tego wymagają (0x04) Albert
Niestety, program działa tak jak zakładam dopiero, kiedy preskaler jeszcze pomnożę x8 (56) a dzielnik szyny APB1 ustawię na 8 tak jak poniżej: Nie wgryzałem się dokładnie w Twój opis, ale obstawiam standardowy problem przy pierwszym podejściu do timerów, którego rozwiązanie znajduje się pod obrazkiem "Figure 8. Clock tree", w rozdziale "7. Low-, medium-,...
Witam, W przypadku wykorzystywania przerwań EXTI trzeba włączyć zegar dla AFIO RCC_APB2Periph_AFIO. Cytat z STM100xx Referene Manual (RM0041, rozdział 7.4 pierwsza notka) To read/write the AFIO_EVCR, AFIO_MAPR, AFIO_MAPR2 and AFIO_EXTICRX registers,the AFIO clock should first be enabled. Więc aby poprawnie skonfigurować przerwania EXTI (zapis do rejestrów...
Masz zaj***ty kwarc skoro: 1) potrafi podjac sam decyzje na jakiej predkosci wstanie (inteligentny, nie?) 2) ma wbudowanego PLLa (??) 3) Szybki ten twoj kwarc... Rozroznij ZEGAR mikrokontrolera od KWARCU na podstawie ktorego generowany jest ten zegar... Skoro twoj mikrokontroler WSTAJE, ale czasami na 8MHz a czasami na 72MHz, to HSE rusza zawsze, ale...
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...
Czasem w momencie włączania I2C - podczas włączania zegara, gdy układ peryferyjny przejmuje kontrolę nad pinami - wykrywana jest niedozwolona transakcja i typowy kod przywiesi się w pierwszej pętli oczekiwania. Ustawiany jest któryś tam bit statusu, nie pamiętam już który RCC_APB1ENR_I2C2EN_bb = 1; // enable clock for I2C2 module I2C2_CR1_SWRST_bb =...
Wyłączyłem optymalizacje. Wprowadziłem zmiany w startup. http://obrazki.elektroda.pl/7964964200_1... Main wygląda tak: [syntax=c]int main(int argc, char* argv[]) { // At this stage the system clock should have already been configured // at high speed. int x=0; x+=10; // Infinite loop while (1) { ++x;// Add your code here. } }[/syntax]...
Pozwalam sobie odkopać temat, gdyż jest to jeden z niewielu o kalibracji ADC i pewnie sporo osób tu trafia (tak jak i ja). "Fakty" się zmieniły - stąd aktualizacja ;) Od czerwca 2014 "sporny" zapis w Reference Manual'u (RM0008): Before starting a calibration the ADC must have been in power-off state (ADON bit = ‘0’) for at least two ADC...
Witam Dodam że mcp jest zasilany 5V a stm 3,3. Nie wiem czy tak może być... Może tak być to cała konfiguracja Can bez filtrów, czyli przepuszcza wszystko [syntax=cpp]void CAN_Config(void) { gpio_pin_cfg(GPIOA, 12, GPIO_CRx_MODE_CNF_ALT_PP_50M_value); //GPIO_OType_PP gpio_pin_cfg(GPIOA, 11, GPIO_CRx_MODE_CNF_IN_PULL_U_D_value); // af tylko /* Setting...
Witajcie, siedzę i szukam błędu w bibliotekach do obsługi NRF24L01. Skopiowałem je z biblioteki, którą wykorzystuje w ATmega8. Działa nawet dobrze tam, niestety na STM32F0DISCOVERY już nie chce. Będę bardzo wdzięczny za pomoc. To najpierw kody, które wyrażają więcej niż tysiąc słów ;) : main.c http://obrazki.elektroda.pl/4732813300_1...
Trzeba też nauczyć się korzystać z pomocy googla, jak sam widzisz szuczna "inteligencja" ze pozwolę sobie zażartować, plecie bzdury, a ty chciałeś na tym kod oprzeć. ehh. wujaszek gugiel proponuje: https://www.arduino.cc/reference/en/libr... napisana przez Author: STMicroelectronics więc powinna być wporządku. chyba pisał ktoś ze wchodu...
W takim ustawieniu zapodaj 3.3V na NSS, lub ustaw SSM oraz SSI na 1 i sprawdź czy zadziała. Jeśli nie, ustaw rejestry według poniższego przepisu. Configuring the SPI in master mode In the master configuration, the serial clock is generated on the SCK pin. Procedure 1. Select the BR[2:0] bits to define the serial clock baud rate (see...
Witam, W oparciu o kody znalezione w internecie chciałem wykonać PWM na porcie A. Udało mi się to z pinem 7, natomiast piny 8-10 pozostają niewzruszone. Wydaje mi się, że problem leży w ustawieniu Timera 1, jednak nie potrafię go znaleźć. Timer 3 dla pinu 7 działa. Oto kod funkcji inicjalizującej PWM: [syntax=c]void initPWM() { RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;...
witam Próbuje uruchomić STM32F030F4P6 za pomocą st linka wbudowanego w stm32f0 discovery , podłączam wg takiego schematu : [syntax=c]STM32FO DISCOVERY(złacze CN3, wszystkie zworki zdjęte) STM32F030F4P6 Złacze CN3 1 VDD_TARGET - VDD from application --- 2 SWCLK - SWD clock PA14 3 GND - Ground VSS 4 SWDIO - SWD data input/output PA13 5 NRST - RESET of...
Witam Mam problem z prawidłowym skomunikowaniem się z prockiem STM32F100. Używam JTAG-a ARM-USB-OCD i OpenOCD. Inne STM32 mi chodzą bez problemów (testowałem na kilku różnych 103 i 107). Może ma ktoś jakieś doświadczenia z tym związane. OpenOCD pluje : Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed under GNU GPL v2 For bug reports,...
Witam, Od 2 tygodni mam moduł STM32-Mini z STM32F103VC. Próbuje uruchomić wewnętrzny termometr i przesłać temperaturę przez USART do komputera. USART działa bez problemu i odczytuję wartości w Terminalu. Jeśli chodzi o termometr to nie działa i nie wiem dlaczego. Według Reference Manual (RM0008) procedura jest taka: 1. Select the ADCx_IN16 input channel....
uff udało się jakoś. Użyłam Inicjalizacji z postu wikktora z linku który podałeś, resztę zostawiłam tak jak miałam i teraz działa, tak więc wielkie dzięki :) podsumowując dla przyszłych pokoleń, aby uruchomić I2C w podstawowej konfiguracji: najpierw w main najpierw wywołuje funkcję: RCC_Configuration(); void RCC_Configuration(void) { /*...
Witam, Nie wiem co kryje ta funkcja: [syntax=c]gpio_pin_cfg(GPIOA, GPIO_Pin_4, GPIO_AF5_PP_50MHz); // NSS[/syntax] ale jak używasz SPL to GPIO_Pin_4 =4 a nie [syntax=c]#define GPIO_Pin_4 ((uint16_t)0x0010[/syntax] albo napisz np tak: [syntax=c] /* Connect SPI pins to AF5 */ GPIOA->AFR[0]&= 0x000FFFFF; GPIOA->AFR[0]|= 0x55500000;[/syntax] albo [syntax=c]gpio_pin_cfg(GPIOA,...
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,...
Już to kilka razy wrzucałem, ale u siebie mam tak: [syntax=C] io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain, 10M io_pin_cfg(SCL_GPIO, SCL_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SCL - alt output, open-drain, 10M...
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,...
Witam. Ostanio próbuję uruchomić obsługę wyświetlacza ILI9341 na STM32. Pod STM32F072 działał wyśmienicie, lecz na STM32F103 już nie. Największym problemem było to że wcześniej ST inaczej rozumiało ideę pinu NSS, więc musiałem zrealizować go programowo, ale to dalej nie pozwala mi na prawidłową komunikację z wyświetlaczem. Za pomocą analizatora stanów...
Reference manual: 8.2.8 RTC clock whereas the HSE and LSI clocks are not .
Ok no to zaczynamy na początku (po konfiguracji itp.) powinieneś mieć coś takiego: [syntax=c] if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5) /* Sprawdzamy czy trzeba ustawić zegarek */ { /* Zawartosć licznika RTC nie jest prawidłowa, należy ustawić zegar */ /* Konfiguracja oscylatora, preskalera itp. */ RTC_Configuration(); /* Funkcja w której ustawiasz...
good day i m catch signal for NSS and SCK . It works in wrong way http://obrazki.elektroda.pl/7826648700_1... What should i do? description programm:NSS -low , delay then NSS-high OSC yellow - NSS. blue - sck. When i push Reset button clock is going, when i realise button - clock is stopping, NSS -low, delay, up
Tylko tego keila nie potrafię za bardzo okiełznać. CoIde wydaje się prostszy. W sumie trzeba tylko wskazać mu ścieżkę do toolchaina. Jak dla mnie może być i Keil, tylko żebym wiedział po kolei co i jak zrobić dla mojego procka, tj 302, gdyż nie czuję się na siłach jeszcze skorygować definicję modułu RCC (nawet nie wiem, co to jest?) dla ST32F429. Producent...
Boję się, że sąsiednie bity portu doznają krzywdy. Zaproponowany kod nie zmieni ustawienia pozostałych bitów, więc tu się nie musisz obawiać. Przy każdym najdzikszym zastosowaniu / zaprogramowaniu, na wyjscie / odbiór / open dren / trzeci stan i co wszyscy święci wymyślili ? ? W czasach dinozaurów (rodzina Inte 8080 / kontrolery 85xxx) to były konteksty,...
Witam problem jest następujący, inicjalizacja SPI przechodzi (wydaje mi się że poprawnie). Niżej podam wartości rejestrów SPI3. Problem polega na tym że nie mogę nic wpisać do DR w interfejsie SPI, nie mam jeszcze nic podpiętego do SPI ale mam zamiar przetestować całość na modułach MMcc1100 i płytce ewaluacyjnej z STM32 na pokładzie (stm32-p107 z OLIMEXu)....
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...
Sprawdzalem, co jest w rejestrach SystTicka: Pod adresem 0E000E010 jest wartosc 07 00 00 00 (po skonfigurowaniu) i 07 00 01 00 (po odliczeniu czasu) - czyli OK Może ktoś ma pomysł o co chodzi? Czy czegoś brakuje? Nie jest OK! Zamiast 07 powinno być 03 ! SysTick control and status register (STK_CTRL) Bits 31:17 Reserved, must be kept cleared. Bit 16...
Czy dobrze masz ustawione w konfiguracji SPI bity Clock PHAse i Clock POLarity?
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, Jestem dość początkujący jeśli chodzi o STMy dlatego proszę o wyrozumiałość. Do pamięci flash procesora wrzuciłem kod, który prawdopodobnie zawiesza procesor. Od tego momentu nie mogę się połączyć z uC używając OpenOCD. Komunikat j/n: D:\ARM\openocd-0.5.0\bin>openocd-... -f interface/olimex-arm-usb-ocd.cfg - f target/stm32f1x.cfg...
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;...
Dziękuje za odpowiedź. Zdecydowałem się jednak na komunikację poprzez I2C. Jeśli prędkość nie będzie wystarczająca to spróbuje po tym SPI. Jednak niestety natrafiłem na następujący problem. Napisałem sobie kilka funkcji pomocnych przy obsłudze I2C. Chcę odczytać dane tylko z żyroskopu na razie z jednej osi. Podczas odczytywania cały czas wyświetla mi...
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, Jestem nowy jeśli chodzi o ARM, dlatego proszę o wyrozumiałość. Jako środowisko w którym chciałbym rozpocząć naukę programowania stm32 wybrałem corssworks. Kupiłem JTAG-lock-pick od Freiddiego i płytkę ewaluacyjną z STM32F103. Niestety nie mogę się połączyć z procesorem. JTAG został zainstalowany pomyślnie, crossworks go wykrywa jako...
Tak dokładnie to powinno być: if (USART1->ISR & USART_ISR_TC) GPIOA->BRR = 1u << DE_BIT; Pomogło, urządzenie sygnalizuje że otrzymało ramkę - jednak nie do końca działa. Po restarcie procesora jest kilka zapytań i nagle cisza. Pomaga tylko restart. Debugerem nie jestem w stanie wychwycić gdzie się wysypuje... Dodano po 24 Byłbym jeszcze...
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...
Cube nie wygenerował odpowiednio kodu funkcji: [syntax=c]static void MX_GPIO_Init(void)[/syntax] na podstawie starannie "wyklikanej" konfiguracji. Funkcja do inicjalizacji GPIO powinna wyglądać następująco: [syntax=c] static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE();...
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,...
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);...
dzięki za podpowiedź choć akurat dla STM32F107 jest to troszkę bardziej pogmatwane, konfiguracja z uwzględnieniem magistrali dla I2S wyszła tak, ale pytanie czy tak jest na prawdę pozostaje otwarte.... [syntax=c][/syntax]void RCC_traktowanie(void) { //reset ustawien do wartoci domylnych RCC_DeInit(); /*właczanie rezonatora zewnetrznego*/ RCC_HSEConfig(RCC_HSE_ON);...
Według noty powinno być 0x04 dla HSI, dla HSE jest 0x08. Ja używam HSI, tj. 16MHz. Kod: /** * (at)brief Returns the clock source used as system clock. * (at)param None * (at)retval The clock source used as system clock. The returned value can be one * of the following values: * - 0x00: MSI used as system clock * ...
Ja bym proponował użycie pinu o nazwie TIMx_CHx_ETR. pin ten w timerze służy jako zewnętrzny clock. Ustawiasz go na jakie zbocze ma reagować i po wykryciu takiego zbocza licznik sam się inkrementuje ; ] W tym momencie jedynym twoim zadaniem to odczytanie liczby zliczonych impulsów a następnie jego wyzerowanie aby od początku zliczał (bo inaczej on se...
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();...
U siebie I2C konfiguruje tak: io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain, 10M io_pin_cfg(SCL_GPIO, SCL_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_... GPIO_CRx_CNF_ALT_OD_value));// SCL - alt output, open-drain, 10M...
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ę,...
Chyba coś średnio, bo mówiłem, że mieszasz kontrolę software'ową z hardware'ową i dalej tak masz. Skoro sterujesz pinem SS ręcznie, to powinieneś bit SSM ustawić i do tego jeszcze ustawic bit SSI. U siebie mam ustawione tak jak poniżej, tyle że korzystam z DMA. [syntax=C]io_pin_cfg(GPIO_SPI_MISO, SPI_MISO_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_IN_v...
Pisze program na STM32F429i DISC1 Wygenerowałem kod w CubeMX na ADC i LCD ale nie chce działać razem. Działa ADC albo LCD i zależy to od kodu w sekcji "USER CODE BEGIN 2" Jeśli pierwsze są linijki ADC_START to działa ADC, jeśli BSP_LCD to działa LCD. Ktoś wie jak odpalić oba naraz? [syntax=c]int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END...
Podczas kolejnego dnia walki orżnąłem kod praktycznie ze wszystkiego. Doprowadziłem do sytuacji odwrotnej - by działał 2 kanał PWM dla TIM1 należy zainicjalizować TIM3! W dodatku, zmiana wartości delay() w main również powoduje zaprzestanie działania PWM (podobnie jak wyłączenie TIM3). Kompletnie nie wiem, co robię źle. Wymieniłem już nawet uC na egzemplarz...
Mam mikrokontroler stm32f103rb. Chciałbym wystawić stan wysoki na pin PA10. Oto kod: [syntax=cpp] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" #include "misc.h" GPIO_InitTypeDef GPIO_InitStruct;//inicjalizacja void clock_init(void) ; int main(void) { clock_init()...
Biblioteki ? Nie, na pewno nie :) Ale możesz użyć makr dostępnych w CMSIS. Wygląda to mniej więcej tak: [syntax=c] RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // enable clock for alternate function AFIO->EXTICR[0] = AFIO_EXTICR1_EXTI3_PA; AFIO->EXTICR[2] = AFIO_EXTICR3_EXTI8_PA; NVIC->ISER[0] = NVIC_ISER_SETENA_9 | NVIC_ISER_SETENA_23; EXTI->IMR = EXTI_IMR_MR3...
Spróbowałem maski, ale też wspomniałem, że dokładnie takim samym błędem kończy się poszczególne ustawianie bitów jak robię to na całej reszcie rejestrów. Salmona widziałem, z tym, że on korzystał z STM32 C031, co prawda dokumentacja z której korzystał jak na razie pokrywa się, tak jemu sterowanie diodą zadziałało od razu, tak mi już nie działa. Inna...
[syntax=c] void Clock_Setup(void) { RCC->CR |= RCC_CR_HSEON; while(!(RCC->CR & RCC_CR_HSERDY)); FLASH->ACR |= FLASH_ACR_LATENCY_2; RCC->CFGR |= RCC_CFGR_PLLMULL9; RCC->CFGR |= RCC_CFGR_PLLSRC; RCC->CFGR |= RCC_CFGR_PPRE1_2;//APB1 - 36Mhz RCC->CR |= RCC_CR_PLLON; while(!(RCC->CR & RCC_CR_PLLRDY)); RCC->CFGR |= RCC_CFGR_SW_1;//SYSCLK = PLL while(!(RCC->CFGR...
Faktycznie, a to ciekawa sprawa, bo te fragmenty kodu są wygenerowane automatycznie przez STM32CubeMX. Automatycznie owszem, ale ja bym tu jednak rozważył "czynnik ludzki" w błędnym wskazaniu portu w CubeMx. Ale może przemilczmy to. Spróbowałem zmienić wszędzie zarówno na GPIOD jak i na GPIOB, w żadnym wypadku dioda się niestety nie zaświeciła. Diody...
GPIOD->AFR A cóż to ma wg Ciebie robić? Przecież masz ustawić na ostatnich 4 bitach (PD15) liczbę 2 - co odpowiada AF2, zatem: Dodano po 14 Jeszcze tu masz błąd: TIM4->CCR1 = 50; Powinno być: TIM4->CCR4 = 50; Dodano po 1 Działający kod wygląda tak: [syntax=c] RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; RCC->APB1ENR |= RCC_APB1ENR_TIM4EN; //...
Będe czekał na komentarz Freddiego, lecz pod podłączeniu pinu P0.14 do Vcc, podczas debugowania i naciśnięciu pause w Debug menu mam: http://obrazki.elektroda.net/22_12614412... Okno disassembly wygląda tak: http://obrazki.elektroda.net/50_12614413... Okno Console jest puste. Po naciśnięciu terminate i remove launch w oknie console...
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?
Nie wiem czy to co napiszę coś pomoże Koledze, ale mam pewne przemyślenia. Podobny problem też na początku swojej drogi miałem, tzn. problemy przy programowaniu klonem ST-Link do płytki z STM32F103C8T . Objaw polegał na tym, że musiałem ustawiać w STlink Utility opcję Connect Under Reset i co gorsza w odpowiednim momencie musiałem nacisnąć przycisk...
Po podłączeniu dostaję takie błędy od OpenOCD: Open On-Chip Debugger 0.5.0-dev (2011-06-07-18:11) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge... Info : only one transport option; autoselect 'jtag' 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 #0 : stm32.flash...
Ciągle nic. Nie mogę zacząć debugowania ba cały czas dostaje śmieci jak poniżej. Może Freddie masz pomysł co jeszcze mogę pozmieniać? G:\arm\openocd\tcl>openocd -f interface/rlink.cfg -f board/stm32f10x_128k_eval.c fg -c "jtag_khz 300" Open On-Chip Debugger 0.4.0 (2010-07-27-20:27) Licensed under GNU GPL v2 For bug reports,...
Tak już widzę te tłumy czychające na Twój kod z polskojęzycznej strony. Jak poszukasz to znajdziesz np. tłumaczenia na rosyjski. Jeden z przykładów: https://radioparty.ru/device/stm/693-clo... z tego tematu: https://www.elektroda.pl/rtvforum/topic3... Autor ze schematu usunięty. Wskaż mi tylko jeden taki przykład w którym ktoś...
rozdział 5.1.2 : • Access to the RTC and RTC backup registers 1. Enable the power interface clock by setting the PWREN bits in the RCC_APB1ENR register (see Section 7.3.13 and Section 6.3.13) 2. Set the DBP bit in the PWR power control register (PWR_CR) for STM32F405xx/07xx and STM32F415xx/17xx and PWR power control register (PWR_CR) for STM32F42xxx...
W dodatku przez UART nie da się popranie przesyłać danych bez przerw, więc przesyłanie napisu powinno następować co jakiś czas a nie ciągle. Masz jakieś argumenty na poparcie tej tezy? Bo ostatnio zdarzyło mi się napisać program który, wysyłał dane przez port szeregowy z prędkością 921600 w paczkach o długości 8192 bajy. Każda paczka miała 16 bitową...
Mam funkcję sin(x) zapisaną w tablicy y_sin_obl[100] czyli 100 próbek (przeliczone na wartości 0-4094 żeby do DAC można było od razu wpisać). Konfiguruję PLL: void pll_init(void) [syntax=c]{ // HSI enable RCC->CR|=RCC_CR_HSION; // HSI enable while(!(RCC->CR&RCC_CR_HSIRDY)); // wait for HSI ready RCC->CFGR |= RCC_CFGR_SW_HSI; //Select HSI...
wpisuje 1600000. Częstotliwość układu 62,5MHz. Z tego wynika że częstotliwość mrygania to 39Hz ( co można zaobserwować szybkim mryganiem). Natomiast jeśli by dzieliło przez 8, częstotliwość mrygania byłaby znacznie mniejsza. Znalazłem coś takiego: Indicates whether the device provides a reference clock to the processor: 0 = reference clock provided...
Wywal z pliku oocdlink linijkę "jtag_khz 5" Bardzo ciekawa jest ta linia: Info : clock speed 500 kHz, a ciekawa jest o tyle, że w plikach konfiguracyjnych jest najpierw 5, a potem 1000, więc skąd nagle wzięło się 500? Czy Twój JTAG ma dwie linie resetu (TRST i SRST)? Bo tak jest skonfigurowane stm32 - "reset_config trst_and_srst" - a jeśli masz inaczej,...
Jednak dane nadawane przez EEPROM się spóźniają powinny być zatrzaskiwane na zboczu narastającym a one na narastającym się dopiero zmieniają jakby miały być zatrzaskiwane na opadającym choć wyraźnie w manualu jest napisane że pracuje przy narastającym. Coś źle doczytałeś The READ instruction outputs the serial data of the addressed memory location...
C-SKY Flash Programmer jest oprogramowaniem dostarczanym do pobrania przez XuanTie na stronie https://www.xrvm.cn/community/download?i... https://obrazki.elektroda.pl/1504579400_... Narzędzie to współpracuje z programatorami CK-Link do odczytu i zapisu w pamięci flash procesorów C-Sky z rdzeniem RISC. Procesory...
Jeśli podejrzewasz opóźnienia, to po prostu tymczasowo powiększ je kilkukrotnie (od "zbyt dużych" nic się nie dzieje) i jeśli wtedy będzie dobrze, to będziesz miał winnego. Jesteś 100% pewny tych 42MHz na timerach? Wiesz o tym, że jeśli na magistrali od timerów dzielnik wynosi 2, to timery taktowane są podwojoną częstotliwością magistrali (przyjrzyj...
clock stm32 stm32 external clock stm32 system clock
livebox router bezprzewodowo rozrząd carisma expression error
Identyfikacja urządzenia USB JMicron Technology VID_0C76 PID_161F Kody do pilota uniwersalnego dla klimatyzatora Home Deluxe