1. Przeczytaj dokładnie w manualu co robi ten bit. Kilka stron wcześniej masz obrazki które doskonale pokazują po co on jest. On tylko włącza bądź wyłącza buforowanie, a nie przeładowywanie czegokolwiek. 2. Rejestr ten w Twoim przypadku nie ma wpływu na częstotliwość, bo jego wartość ustawiona jest po prostu na połowę okresu timera, równie dobrze mogłaby...
Reasumując: 1. Włączasz zasilanie = nie działa 2. Wykonujesz reset STM'a = działa ? Mógłbyś jeszcze "main'a" pokazać, albo najlepiej odchudź kod do obsługi tylko SPI i wrzuć cały projekt.
z tego co rozumiem żeby dokonać jakiejkolwiek zmiany w rejestrze AIRCR należy tam również wpisywać 0x5FA po to by zapis nie został odrzucony. Chyba że źle kombinuje:P Dobrze kombinujesz, wcięło mi ten zapis :P SCB->AIRCR = AIRCR_VECTKEY_MASK | (3<<8); gdzie: #define AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000) Chociaż...
Twoje pytanie niewiele ma wspólnego z UART. Chodzi Ci po prostu o to, jak przesłać coś, co ma więcej niż jeden bajt. Rozbij to na bajty - sposobów jest wiele (np. unia typu, jaki chcesz przesłać i wektora bajtów), a potem wysyłaj bajt po bajcie.
Ten temat może pomóc w rozwiązaniu tej zakręconej kwestii http://www.elektroda.pl/rtvforum/topic14... pozdr.
Debouncing w przerwaniu - tylko nie mów, że robisz to przez aktywne oczekiwanie wewnątrz przerwania. Jeśli tak, to zauważ, że to, że skasowałeś flagę przerwania i jesteś w przerwaniu wcale nie oznacza, że flaga nie może zostać ustawiona ponownie. Możliwy jest taki scenariusz: wciskasz przycisk, pojawia się zbocze opadające które ustawia flagę a więc...
Nie bardzo wiedziałbym jak tego użyć. Chyba że jakiś przykład miałby ktos, kto to już robił. A może tak: [syntax=c] #include <time.h> ... struct tm * loctim ; // struktura zawiera pola typu tm_year czy tm_min time_t tt ; // odczytywanie licznika tt = RTC->CNTH; tt = tt << 16; tt = tt | RTC->CNTL; loctim = localtime(&tt) ; ......
Olej te ich dziwaczne wywody na temat obliczania wartości do rejestru odpowiedzialnego za baudrate i po prostu wpisz do tego rejestru wartość równą PRĘDKOŚĆ_ZEGARA_UART / BAUDRATE. Te całe zabawy w część stałą i ułamkową właśnie do tego się sprowadzają, chyba ktoś kto pisał dokumentację miał nadmiar fantazji. Wg tegoż BRR powinien być równy 6666 czyli...
Zakładając, że te wszystkie magiczne numerki są odpowiednimi bitami (tj dobrze je wpisałeś), to wszystko jest ok.
Przecież jak zaznaczysz je jako General Purpose CNF Bit 9 SSM: Software slave management When the SSM bit is set, the NSS pin input is replaced with the value from the SSI bit. 0: Software slave management disabled 1: Software slave management enabled Próbowałeś tego, jak wisi w powietrzu i masz ustawiony jako slave (chyba)? Chyba, że jako...
Spróbuj tak: [syntax=c]//GPIO_EXTILineConfig(GPIO_Por... GPIO_PinSource13|GPIO_PinSource15); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC... GPIO_PinSource13); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC... GPIO_PinSource15);[/syntax]
Hmm... dziwne. Fakt PC10, PC11 i PC12 tolerują 5V, ale R/W, RS i E to wejścia więc nawet jakby były podciągnięte do 5V to diody zabezpieczające wejść 3,3V ściągnęły by potencjał do 3,9V. Natomiast D4-D7 mogą być wyjściami i dołączenie ich do wejść innych niż tolerujących 5V mogłoby uszkodzić te wejścia. Powinieneś uważać na PC0-3. To była jednak wina...
Ale teraz jeszcze problem, czy w tym przypadku pin PA0 jest pinem, którym powinienem mierzyć napięcie ? Musisz zajrzeć do datasheeta Twojego układu - jeśli to F100, to jest to plik [url=http://www.st.com/internet/com/TECH...
Ok po pierwsze zdecyduj się czy używasz kanału 1 czy kanału 2 DAC bo odpalasz DMA dla kanału pierwszego DAC ale w rejestrze DAC_CR odpalasz kanał drugi. Do tego aby działał trigger inny niż software'owy musisz ustawić bit TEN1 oraz bity TSEL1[2:0] w zależności od źródła wyzwalania. Więc dla TIM6: [syntax=c]DAC->CR = DAC_CR_DMAEN1 | DAC_CR_TEN1 |...
tak to są makra, ale chodziło mi o używanie tych które są już zadeklarowane w nagłówkach a nie tworzenie swoich. Łatwiej nam będzie analizować kod po makrach niż po wartościach z kosmosu. Może ktoś bardzo biegły w głowie to przetrawi jak zna wszystkie bity kofiguracyjne, ale raczej mało kto po zapisie 0x3492 wysnuje to o co chodziło.
Dla mnie mało czytelne są te gotowe biblioteki STM32. To nie są funkcje z biblioteki STM32 przecież... Proponowałbym pinu ustawić na funkcję alternatywną, a nie na out/in. Ewentualnie RX może zostać na in, ale TX musi być "ALT". 4\/3!!
Czy działa Systick to łatwo sprawdzić w debuggerze. Zresztą wiele spraw można sprawdzić. Ja bym zaczął od tego czy właściwe rejestry podlegają zmianom. To nie jest nic trudnego, w krokowym trybie Też jaka wartość jest SystemCoreClock, to zmienna globalna. Może ląduje gdzieś w HardFault, zaraz po uruchomieniu. EDIT. Często problemem przy kopiowaniu plików,...
Skoro nie masz problemu z timerem, to po co w ogóle o nim pisać i po co testować program który ma też przerwania od timera? Niemniej jednak na początek brawa za to, że NIE używasz słynnego i popularnego badziewia (; Wg mnie (skoro chodzi o pin zerowy), powinieneś konfigurować rejestr AFIO->EXTICR[0], a nie 1. Problemem jest manual niezgrany z plikiem...
A nie PSC = 1124 ARR = 63999 zgodnie z wzorem Timx_hz = 72MHz / ((PSC+1) * (ARR +1))
daj "monitor reset halt" zamiast osobnych komend. Ale nie mam pojęcia czy to pomoże...
Globalne definicje przekazuje się przez kompilator, odpowiednimi parametrami. Powiem Ci w sekrecie, że wszelkie poszukiwania błędów w kompilatorze, szczególnie z takimi trywialnymi sprawami, są z góry skazane na śmieszność, tak więc to czy brnąć dalej w zaparte to już Twoja decyzja. Co z tego, że ty sobie w main.c zdefiniujesz, skoro pliki od UARTu...
No ale jaki jest w ogóle sens tego kodu? 1. Najpierw czekasz na zmienną którą ustawiasz w tej samej funkcji i ponoć nie masz przerwań (choć w komentarzach coś niby o nich piszesz), to po co czekać? (nie mówiąc już o tym, że się nigdy nie doczekasz poza pierwszym razem [może], gdyż nigdzie tej zmiennej nie zerujesz przy braku problemów) 2. Potem kopiujesz...
Na bazie jednego z przykładów od STM zrobiłem transfer DMA z urządzenia zewnętrznego i drugi układ z transferem do urządzenia zewnętrznego. W każdym przypadku miałem zewnętrzny sygnał taktujący (zegar) danych równoległych w takt którego dane są wysyłane/odbierane. W przykładzie był do tego zaprzęgnięty któryś timer, ale nie pracował jako licznik tylko...
Nie napisałeś w jakim formacie masz ramkę. Zakładam, że RGB565. Jeśli tak, to na początek niepoprawnie rezerwujesz miejsce na taką ramkę. W RGB565 1 piksel obrazu zajmuje 2 bajty(jak sama nazwa wskazuje). Czyli na przykład aby odebrać ramkę o rozdzielczości 160x120 potrzebujesz 160x120x2 = 38400 bajtów, dla 320x240 to już jest 153600 bajtów. I tak dalej....
Tylko czemu chciałbyś wywołać taką funkcję? Nie można naprawdę zajrzeć do manuala i machnąć tymi kilkoma bitami na krzyż, tylko od razu wywoływać jakieś dziwne funkcje z dziwnej biblioteki? Jak własnie widzisz - nie załatwia ona za Ciebie wszystkiego... 4\/3!!
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...
Problem mam w zrozumieniu jak liczą się linie EXTI_Linex, która odpowiada danemu portowi. Przykładowo przerwania obsługiwane przez void EXTI0_IRQHandler(void) obsługują piny PA0, PB0, PC0, PD0, PE0 z tym że nie jest chyba tak iż przerwania na tych pinach obsługuje linia EXTI_Line0 bo jak rozróżnić który pin wywołał przerwanie. Piny "0" ze wszystkich...
Pokaż log kompilacji po zrobieniu "clean".
Zdziwiłbym się gdyby pomogło ;-) Dalej nie masz definicji GPIO_TypeDef. W innych projektach może działać, jeśli w plikach źródłowych przed dołączeniem omawianego pliku dołączysz plik, który toto definiuje. Najlepiej znajdź który to i explicite dołącz na początku. Albert
I Zylin I GDB Hardware Debug korzystają z OpenOCD jako serwera GDB. OpenOCD odpalam jako: openocd.exe -f interface/jtag-lock-pick_tiny_2.cfg -f target/stm32f1x.cfg -c "adapter_khz 1000; reset_config trst_and_srst separate; $_TARGETNAME configure -rtos auto" W gdb hardware debugging: DSF Launcher, komendy inicjujące: monitor reset halt, monitor poll,...
www.st.com - tyle że nie interesuje Cię datasheet, a manual. Było o tym pisane ze sto razy. 4\/3!!
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...
W deskryptorach masz niespójne numerowanie EP. Pierwszy deskryptor znakowy jest błędnie przypisany dla kodu producenta oraz konfiguracji.
Czemu ty chcesz włączać konfig dla VSLINKa skoro masz ST-Linka? Przecież w OpenOCD jest nawet gotowy konfig dla płytki discovery, ale lepiej ponarzekać jak to wszystko jest beznadziejne bo nie działa tak jak Ty sobie to wymarzyłeś... Eeeej... poczekaj... nie to miałem na myśli. Jestem strasznym laikiem w konfiguracji Eclipse pod ARM. Otworzyłem twój...
Witam, mam problem z poprawną konfiguracją modułu Bluetooth. Chodzi o to, że na przetwornik ADC wyzwalany timer1 podaje sygnał z GPIOB i chcę próbkować go wg ustawień timera z częstotliwością co najmniej 500Hz. Dane pobierane są z rejestru ADC przez DMA do zadeklarowanego wcześniej buforADC (unsigned short int buforADC buforTx (unsigned char buforTx[4]={0};)...
Cześć piszę aplikację pod silnik krokowy wysyłam paczkę Period, Repetition Counter, 50 % Pulse. Bez konfiguracji USARTA program działa bez zarzutu inkremntowana jest wartość bufora DMA i przesyłana do timera. Jak mam konfigurację USARTA to nagle przestaje działać i silnik kręci się o stałych obrotach. Czy mógłby mi ktoś powiedzieć co robię nie tak ?...
Ten fragment obwodu po lewej (z jednym zwojem, opisany IN przez który płynie prąd +-Ip) to przewód na którym chcę wykonać pomiar, tak? Tak. 0V,5V to zasilanie OUT i ref to styki pomiarowe
Czyli z taktowaniem mam problem. Próbuję zrobić tak jak tutaj http://stm32f4-discovery.com/2014/04/lib... U mnie jest: Core Clock = ((HSE_VALUE / PLL_M) * PLL_N) / PLL_P Niestety po takiej konfiguracji STM wariuje, nawet USART wysyła śmiecie. Jak prawidłowo skonfigurować...
1. Przeczytaj początek tego: http://docs7.chomikuj.pl/492704393,0,0,0... 2. W systemie Windows istnieje funkcja wyszukiwania pliku o określonej nazwie. Czy użyłeś jej do zlokalizowania potrzebnego pliku ?
Witam, mam problem, mianowicie czy jest możliwość wyzwalania np. przez TIM2 w STM32 przetwornika ADC? Analizuje reference manual i nie mogę znaleźć konkretnej informacji. Każdy kanał timera może generować zdarzenie, ale nie do końca wiem jak zmusić ADC by na nie reagował. Korzystam z funkcji bibliotecznych. Włączyłem wyjście kanału OC2, przetwornik...
A może byś tak włączył pull-up? Domyślnie masz pull-down. Wskazówka - Tabela 20 w sekcji 9.1. ;)
Rzuc kawalkiem swojego kodu to sprobuje zerknac, urzadzenia USB moga wymagac pewnych szczegolnych operacji jak chociazby wybranie konfiguracji.
Odświeżam temat. Zapłacę za pomoc w konfiguracji w oparciu o tutorial http://www.elektroda.pl/rtvforum/topic21... Proszę o kontakt PW.
(at)szewcu12 Możesz skorzystać z bilbioteki E-Mail Client Library ([url=https://github.com/mobizt/ESP-Mail... dla ESP8266. Ale uwaga, wymaga to napisania programu dla ESP z użyciem Arduino Core ;) ESP może "nasłuchiwać" komunikaty z STM i po jego otrzymaniu dalej wysyłać jako maile. Alternatywnym rozwiązaniem jest wykorzystanie firmware AT...
Wykorzystując timer 16-bitowy oraz preskaler 65535 chciałbym wywołać przerwanie co 1 minute(59,6 sekundy) i w efekcie naprzemiennie zapalać i gasić diodę: [syntax=cpp] void Clock_init(void); void GPIO_init(void); void Tim1_init(void); int main(void) { Clock_init() ; GPIO_init(); Tim1_init(); while(1){;} } void Tim1_init(void) { TIM_TimeBaseInitTypeDef...
Procek: stm32f101 Scalak SPI: AD7322 (zewnętrzne ADC, 12bitow + znak), załączam pdf Control register (22 strona pdf): uint16_t reg=0; reg |= (1<<15); // Write reg |= (0<<14); // Zero reg |= (0<<13); // Register Select reg |= (0<<12); // Zero reg |= (0<<11); // Zero reg |= (1<<10);...
problem rozwiązany po wysłaniu danych na spi nie czekałem na zakończenie transferu
Witam, Mam mały problemik ze skonfigurowaniem przetwornika ADC i DMA. Założenia są takie aby odczytywać 6 kanałów za pomocą ADC1. Procek to STM32F103Vx kanały ADC_IN10 - 15 podłączone do PC0-PC5. Problem jest taki, że w tablicy do której powinna być przesyłana wartość z przetworników są ciągle zera, ale sporadycznie na pierwszej pozycji pojawia się...
STM32F10xxx I2C optimized examples AN2824
Co znaczy raz działa raz nie? Po za tym jaki to konkretnie stm? Pin 6 to który? Jaka jest częstotliwość SPI? Jaka jest odległości pomiędzy uC a rfm22?
Witam RUN->Run/Debug Configurations->AC6 STM32 ... dla stworzonej konfiguracji zakładka Debugger Show generator options Reset mode: Software system reset https://obrazki.elektroda.pl/7593618200_... Pozdrawiam
Skąd wiesz, że ustawia się na 4800 skoro nie wiesz czy nadajesz? Ta magiczna funkcja UsartInit skądś musi wiedzieć na jakiej częstotliwości chodzi jego APB. Sprawdź czy nie ma tam definicji od RCC. U Ciebie powinno być 8MHz bo nie konfigurujesz nigdzie HSE ani PLL.
1. Ustawiłeś sobie sprzętowe sterowanie pinem SS, a sterujesz nim ręcznie - generalnie raczej Twoje ręczne zabiegi nic nie dają. 2. Odbiór danych MUSI być poprzedzony nadaniem czegoś, a ty tylko odczytujesz rejestr DR, w którym nic nie ma. Najpierw sprawdzasz, czy możesz coś nadać, potem wpisujesz do DR cokolwiek, czekasz aż będzie coś do odbioru i...
Ostatnio przechodziłem "tą ciernistą drogę" kompilacja i poprawne wgranie pierwszego programu zajęło mi chyba 3 dni. Ale dałem radę sam (choć już miałem pytać na forum). Generalnie to dzięki szczywronek za poradnik! jesteś miszcz! A co do środowiska. Zaczynałem z pluginem i tam całe środowisko chodziło z tym że zaciągane są biblioteki a nie o to mi...
Podłączenie przez kondensator faktycznie pomaga, jednak jest to sygnał który zmienia się ~200 razy na sekundę, dlatego niestety odpada. 200Hz? Przecież to prąd stały... Kondensator 100n z rezystorem 10k mają stałą czasową odpowiadającą częstotliwości 1kHz, z rezystorem 100R już jest 100kHz, więc gdzie tutaj jakiś problem? Tak jak już rb401 napisał...
Według mnie, aby mieć inicjalizację danego peryferium w postaci pary osobnych plików, należy ustawić : Zakładka Project Manager -> Podzakładka Code Generator -> Ramka Generated files -> Oczko Generate peripherial initialization as a pair of '.c/.h' files . To jedna z tych opcji, które ja zawsze przestawiam właśnie w ten sposób i zawsze mam oddzielne...
Kiedyś wgrałem program do STM32 który zmieniał konfigurację pinów SWDIO i SWCLK . Potem nie mogłem połączyć się z mikrokontrolerem poprzez STLink. Pomogła opcja "Connect under reset". Musiałem przy łączeniu na starcie przytrzymać przez chwilę reset mikrokontrolera. Parę prób i połączył się.
w RxData jednak zawsze znajduje sie wartość różna od tej co wysłałem z PC. Wysyłam np 100, otrzymuję 49. Wysyłam 10 otrzymuję także 49. a jak wyślesz 2xx to otrzymujesz 50?
Załączyłem flagę: ADC1->CR1 |= ADC_CR1_EOCIE; Próbowałem też paru innych konfiguracji i już nie mam pomysłu. pozdrawiam !
Skoro STM nigdy nie jest slave, to sprawa się upraszcza. Tak jak pisałem, linie SS (ale tylko AVR i STM) łączysz razem. Dzięki temu i STM i AVR mogą być masterem w stosunku do SD, i masz wykrywanie konfliktu. STM może być masterem także w stosunku do AVR, ale nigdy nie odwrotnie. W takim razie od STM do AVR dajesz drugą linię, podłączoną pod IRQ AVR....
Będzie działać. Na początku - dla swojego bezpieczeństwa - możesz zrobić tak że port przestawiany jest np. po 10s od uruchomienia urządzenia - wtedy przed pierwsze 10s nie trzeba w ogóle kombinować. Bylebyś nie wyłączył resetu!
Pinów GPIO nie trzeba przypadkiem skonfigurować na funkcję alternatywną? 4\/3!!
Tak można. Odpalasz dwie instancje CubeIDE, ale najlepiej na dwóch różnych workspace - dla bezpieczeństwa. W każdej instancji definiujesz w ustawieniach debuggera dla każdej płytki inny STLINK, z innym numerem seryjnym. To samo można zrobić na jednym CubeIDE, włączyć dwa projekty, podzielić ekran na dwie części i w każdej wyświetlać pliki z różnych...
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...
(1 << 27) Tego nie będę rozszyfrowywał. I przy okazji nie mieszaj kodu HAL-a z rejestrami - w tch samych funkcjach - no chyba że dokładnie wiesz co te halowe robią na poziomie rejestrów (ja np poza kilkoma nie wiem i nie chce mi się grzebać) Procedurę masz opisaną w RM Reception using DMA DMA mode can be enabled for reception by setting the DMAR...
No bo wciąż ustawiasz rejestr IMR "odwrotnie" - zajrzyj do manuala co oznacza 0, a co oznacza 1. I w ramach testów zrezygnuj z ustawiania jakichkolwiek priorytetów przerwań czy czegokolwiek z nimi związanego. 4\/3!!
Witam, Czy jest możliwa konfiguracja modułu OTG FS w procesorach Conectivity Line (w moim przypadku stm32f105xx) bazując na wewnętrznym osc. 8MHz? Wnioskując po diagramie zegarów w tych procesorach (RM0008 rev.14 strona 123) to nie ma takiej możliwości. Proszę o potwierdzenie lub zaprzeczenie (to drugie z wyjaśnieniem :)) Pozdrawiam.
Użyj OpenOCD skompilowanego przeze mnie i wyłącz ten debug level 3, bo ja w sumie nie widzę co się dzieje... Tak w ogóle to nie wiem czy wiesz, ale OpenOCD wymaga innych sterowników do RLinka niż Ride - sterowniki te dołączone są do paczki z OpenOCD z mojej strony. 4\/3!!
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,...
Pokaż swój kod.
0. Skasuj flagi TCIE, HTIE, TEIE, DMEIE w rejestrze DMA_SxCR lub odpowiednim DMA_xIFCR. 1. Ustaw CCR1_EN w odpowiednim DMA_SxCR. Kolejna transmisja powinna zostać rozpoczęta. Poszczególne strumienie pozostają w ostatniej konfiguracji, łącznie z adresami.
Witam, Na wstępie zaznaczam, iż nie miałem do tej pory dużo wspólnego z układami ARM, stąd też taki mogłoby się wydawać banalny dylemat. Do rzeczy: -Na 6 wyprowadzeniach (PB10 - PB15) mikrokontrolera STM32L152RBT6 uzyskać chcę przebieg jak poniżej: http://obrazki.elektroda.pl/6696132300_1... - t1 jest czasem pomiędzy zewnętrznym zdarzeniem...
a pamiętałeś żeby włączyć RCC dla tych portów w konfiguracji zegarów? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP... ENABLE); Gdzie x to port.
Witaj :) Co do wgrania, jeżeli używasz System Workbench for STM32 to tam trzeba na projekcie w drzewku nacisnąć prawym myszy, wybrać "Debug As" -> "1 Ac6 STM32..." i po odpaleniu wybrać: Debug device: ST-Link-V2 Debug interface: SWD Tutaj masz obrazki: http://forbot.pl/blog/artykuly/programow...
Problem rozwiązany. Błahostka oczywiście... Zapomniałem o remappingu pinów rx i tx... Temat zamykam.
Mógłbyś troche jasniej bo dopiero się uczę stm32
1. W Debug Configuration zamień DBG (DSF) na Standard DBG (na samym dole). 2. W Startup, w pierwszym okienku, wpisz reset halt (razem!). 3. Wywal komendę exit. 4. Odblokowałeś pamięć FLASH STM32?
Jest coś takiego, jak WiFiManager : [url=https://github.com/tzapu/WiFiManage...
CYTAT "Kurs bazuje na darmowym środowisku System Workbench for STM32" https://forbot.pl/blog/kurs-stm32-3-plyt...
Mam problem z poniższym programem. Program pisałem samodzielnie w oparciu o książki wydawnictwa BTC. Timer TIM1 jest skonfigurowany tak, aby dokonywał pomiaru parametrów PWM (częstotliwość i wypełnienie) generowanego za pomocą timera TIM4. Wszystko działa prócz samego TIM1 (pomiaru), który wg. debuggera śpi jak niemowlę (wszystkie wartości w rejestrach...
_post_do_wykasowania_
Nie pokazujesz inicjalizacji - na takim kawałku kodu nic się nie da powiedzieć. Mój błąd. Jeśli chodzi o inicjalizacje to tak [syntax=c]static void MX_SPI1_Init(void) { hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;...
Źle to skonfigurowałeś, tutorial Freddiego jest trochę out-of-date :) w okienku wpisz tylko [syntax=bash]monitor reset halt[/syntax] zaznacz load image + wybierz use project library (albo use file i wybierz elfa ręcznie) zaznacz load symbols + j/w zaznacz set breakpoint at: main zaznacz resume Upewnij się, że jest wybrane "Using Standard GDB Hardware...
Jeśli tam jest while(1) to się zawiesi dlaczego ma się zawieszać? Program się zatrzyma tylko w przypadku wystąpienia błędu. Można wówczas przed while(1); dodać np. komunikat na wyświetlacz informujący o błędzie lub podjąć inne działania. Jeśli nie chcesz aby tak się działo to wówczas zamiast: [syntax=c]void SysTick_init(void) { SysTick_CLKSourceConfig(SysTick_CLKSourc...
OK. Ja też jestem w pracy i nie zawsze mogę o tej porze coś robić. Ale dalej: Do testowego używania UARTA przyda się "podmienienie" standardowej obsługi funkcji printf na taką, która wysyła dane przez UARTA do naszej Windowsowej konsoli. Możesz to wpisac standardowo przed obsługą assert_failed() /** * (at)brief Retargets the C library printf function...
AFIO->EXTICR Druga linijka nadpisuje to co zrobiłeś w pierwszej. Dalej nie patrzyłem.
Sterowników nie odinstalowałeś przypadkiem? Pokaż screen z okna konfiguracji.
Uporządkujmy, bo nie jest (dla mnie) jasne a) robotę programistyczną chcesz robić na notebooku? b) płytka STM32 jest 'bare-metal' czy z jakimś linuksem / innym systemem / runtimem javy? Wrzutka w googla wykazuje, ze jest kilka rozbieżnych rozwiązań. Co to jest? Masz to już wybrane, czy o to pytasz? c) na jakim etapie 'poległeś' z tym InteliJ? (dla ścisłości:...
w HAL wszystko co łatwe, robi się trudne. Myślisz, że na podstawie tych obrazków, ktoś coś odpowie? Masz nucleo i debugger. Badaj co się dzieje. Tak w ramach podpowiedzi - musisz czekać na callback, kiedy się pełny cykl skończy. Szukaj takich rzeczy w HAL.
Korzystam z przejściówki USART ->USB na FT232, podobno do 3MB/s. Docelowo chcę to zrobić na STM32F103, najwyżej zjadę z częstotliwości próbkowania do 4 kHz . Jak nie da rady to spróbuje wykorzystać interfejs USB w STMie, chociaż jeszcze tego nie robiłem. Zrobiłem teraz to samo co poprzednio ale tak aby transmisja się powtarzała, ustawiam zgodnie...
Nie radziłeś sobie z najłatwiejszym środowiskiem, więc przesiadłeś się na trudniejsze, nie próbując zrozumieć podstawowych kwestii dotyczących samego mikrokontrolera? To raczej nie wróży dobrze na przyszłość.
Cube ustawia wszystkie piny jako analog. Podczas konfiguracji należy zaznaczyć wykorzystywanie SWD.
Jak dla mnie masz źle ustawione debuggowanie. Nawet w (mocno starym) artykule na mojej stronie o konfiguracji środowiska znajdziesz opcje których u Ciebie brakuje.
Najfajniejsze, że kompilacja przechodzi bez problemu. To jakie środowisko sugerujesz? Z Eclipsem podczas konfiguracji na windows miałem problemy, bo pomimo wielu starań nigdy nie udało mi się poprawnie skonfigurować środowiska. Jak nie wiesz jak coś skonfigurować to pytaj po prostu na forum. http://www.elektroda.pl/rtvforum/topic13... http://www.elektroda.pl/rtvforum/topic13...
Wyświetlam sobie wyniki pomiaru w terminalu przez usart i są one poprawne także nie wiem, wydaje mi się, że mi się nie wydaje. A reszta konfiguracji jest poprawna?
"Poprawi" kod na Twoją wersję i nic to nie zmieni, więc...? Brak argumentów dla obrony "cudownej" biblioteki i już od razu żegnam Tak czy siak przydałoby się zobaczyć pełną konfigurację projektu i cały kod. 4\/3!!
czy lepiej wymienić na płytkę STM z wbudowanym interfejsem Wszystko zależy od kilku czynników: Czy planowana aplikacja dla data logera tj. tego mikrokontrolera centralnego (pewnie takiego "mastera" w sieci CAN) jest bardzo wymagająca obliczeniowo czy nie(bo STM32F7 to dość wypasione mikrokontrolery pod tym względem). Czy oprócz zapisu danych ma być...
Witam, ostatnio tworzylem nieco wiekszy projekt, wstepnie na arduino ale zabraklo "mocy" wiec przesiadlem sie na STM32F101C8T6, wszystko pieknie ale w pewnym momencie kod zaczal miec "fochy", cos przestaje dzialac cos dziala nieoczekiwanie. Z analizy wyszlo mi ze: - mam 2 odrebne insatalacje arduino ze wsparciem STM'ow na 2 roznych dyskach , ten sam...
To nie rozwiązuje problemu. Jeśli masz do skonfigurowania kilkadziesiąt pinów to dalej stoisz w tym samym miejscu - tracisz dużo czasu na klepanie konfiguracji dla GPIO. Tyle samo stracisz na wyklikiwanie
Nikt nie pomoże??
usterka konfiguracji konfiguracji centralki raport konfiguracji
honda civic sterownik schemat kabel monitor 120hz szybkozłączka pneumatyczna
Pinout zespołu wskaźników 1T0920871A VW Touran, Golf V Lokalizacja klawiszy on/off w telewizorach TECHWOOD