Ja mam to tak skonfigurowane: [syntax=c] // gpio enkoder - PB4, PB5 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; GPIOB->MODER |= GPIO_MODER_MODER4_1 | GPIO_MODER_MODER5_1; GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4 | GPIO_OSPEEDER_OSPEEDR5; GPIOB->PUPDR |= GPIO_PUPDR_PUPDR4_0 | GPIO_PUPDR_PUPDR5_0; GPIOB->AFR[0] = 0x00220000; //init enkoder RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;...
Ok, zajrzałem do tego i przeoczyłeś kilka rzeczy: Adres to nie 0x4A tylko 0x94. Właściwie jest to 0x4A przesunięte o 1 bit w lewo (0x94) a ten LSB to jest bit R/!W. Czyli jak chcesz coś zapisać do kontrolera to trzeba wysyłać na adres 0x94, a jak czytać to 0x95 (czytać noty dokładnie! Poza tym jest to na schemacie napisane). Druga sprawa - kontroler...
Włączyłeś SYSCFG w RCC?
Niestety nie wiem, jak skonfigurować przerwanie zewnętrzne, gdyż nie mogę nigdzie znaleźć pod która linie EXTI jest ono podłączone. Manual, rozdział 26.5 RTC interrupts .
Dlaczego? Wpisuję 0 na zerowy bit rejestru CR czyli Disable? Nie, wpisujesz do rejestru DMA2_Stream5->CR zawartość rejestru rejestru DMA2_Stream5->CR ;) Zegar włączany jest w funkcji RCC_Config() To nie jest funkcja włączająca zegar. Włączasz w ten sposób sygnał resetujący DMA2 (ciekawe, czy gdzieś dalej go wyłączasz...).
Ja tam na listingu nie widzę nieskończonej pętli. To czy potrzebujesz przerwania zależy od Twojego pomysłu na program. Natomiast skoro już włączyłeś przerwanie w programie to musisz mieć procedurkę jego obsługi. W przeciwnym wypadku dzieje się to co obserwujesz :]
Myślę że przesunięcie rzędu czas trwania jednej konwersj nie było by problemem więc pytanie nadal aktualne A dlaczego nie wykorzystać możliwości. Jeżeli nie znasz HALa to najpierw zainstaluj sobie przykłady w Cube (ale nie mx) i przeanalizuj je. Wtedy domyślisz się jak zaincjalizować porty, ADC, DMA i timer aby trygierzował konwersje w odpiednim czasie....
a do jakiego układu chciałbyś podpiąć ten wyświetlacz ?, jeśli np do stm32f407, to poszukaj na propix (tam gdzie kupiłeś LCD) takiego zestawu Open407V-D [url=http://propix.com.pl/pl/p/Open407V-... Tam jest schemat podłączenia wyświetlacza itp "gadżetów" oraz przykładowe programy
Chciałbym zrobić przerwanie od Analog Watchdog, które będzie wywoływane gdy napięcie na kanale 10 przetwornika ADC1 wyjdzie poza zakres 1V-2V. No i cóż, przerwanie nie chce występować... Sprawdzałem w debuggerze i w ogólę nie wchodzi do przerwania, więc problem jest zapewne w konfiguracji. Sam ADC1 oczywiście działa i mierzy napięcie. Konfiguracja ADC1...
Witam, Mam problem z konfiguracją DMA. Chcę przekonwertować wartość przesłaną przez DMA na DAC. Sam przetwornik DAC działa poprawnie jednak po dodaniu DMA nie działa. Oto mój kod: [syntax=c]static const uint32_t val=2000; int main(void) { HAL_Init(); __HAL_RCC_DMA1_CLK_ENABLE(); HAL_DMA_DeInit(DMA1_Stream1); DMA_HandleTypeDef hdma1; hdma1.Instance=DMA1_Stream5;...
Witam, Wpadł mi w ręce układ obsługiwany przez magistralę SPI 3-wire (RTC6715). Zastanawiam się jak skonfigurować SPI do dwukierunkowej transmisji? Czy poniższa konfiguracja będzie prawidłowa? http://obrazki.elektroda.pl/1802383500_1... Moduł podłączyłem do procesora łącząc SPIDATA razem z MISO i MOSI. Wydaje mi się że port MISO i MOSI...
Masz racje, miałem błąd w założeniach. Wyjdzie nawet jeszcze wolniej bo z bitem parzystości mam 11 bitów na bajt a to da 18us Ale powiedzmy że trudno, będe wysyłać te dane co 20us. Jak do tego moge podejść bez timerów? Najpewniej, skoro mowa tu o tak wielkie szybkości działania, zrobić ile fabryka dała. Wyzwalać transfer przez dma. przerwanie od dma...
Witam, Tak się składa, że również posiadam tą płytkę oraz używam CooCoxa. Sprawa z jej obsługą wygląda następująco: 1. Potrzebujesz kabla USB: A - B mini 2. Sterownik do USB - ST-LINK/V2 do ściągnięcia 3. STM32 ST-LINK Utility do ściągnięcia 4. Uważaj do jakiego gniazda USB w kompie wkładasz kabel :) pół godziny się męczyłem a wystarczyło przełożyć...
OCD kompilowałem sam I tutaj pewnie jest błąd, bo komunikat świadczy o tym, że program który skompilowałeś nie obsługuje żadnych typów JTAGa (obsługa wszystkiego jest wyłączona). Powodem takiej sytuacji jest brak odpowiednich bibliotek w Twoim systemie i/lub błędna kompilacja/konfiguracja.
W funkcji odczytu zerujesz ACK, ale nigdzie go nie ustawiasz. Jeśli jest zbędne ZAWSZE, to po prostu skonfiguruj odpowiednio rejestr podczas konfiguracji. Jeśli jednak czasem musi być zmieniane, to w funkcji odczytu przywróć poprzednią wartość. 4\/3!! Ustawiam włączanie potwierdzeń przy konfiguracji (pierwszy post) [syntax=c]I2C1->CR1 |= I2C_CR1_ACK;...
Witam od kilku dni pisze na płytce ewaluacyjnej stm32f4discovery. Niestety nie mogę sobie poradzić z uruchomieniem USART`u odbieram dane jednakże nie takie jakie wysyłam więc pewnie chodzi o wartośc w rejestrrze BRR odpowiedzialną za baudrate. Bazuję na dokumentacji i swoim poprzednim projekcie (http://www.elektroda.pl/rtvforum/topic2... jednakże...
Wyjścia typu PP nie podciąga się bo to nie ma sensu. Podciąganie możesz używać przy wejściach albo wyjściach typu "Open-..." Stan na wyjściu PP wymuszają te tranzystory z których zawsze jeden jest otworzony.
1. na discovery i2c2 piny są zajęte przez jakies ustrojstwo. 2. tu masz kod z cuba dla i2c1 i 3 zegary są niepokonfigurowane (bo rozumiem że to zrobiłeś)
W Twoim przypadku mówimy o maksimum 13000 przerwań na sekundę, a nie o 200000 (to był mój przypadek). F4 nawet tego nie zauważy. Przy ciągłej transmisji 115200 (a ciągła raczej nie jest) zajmie to < 1% mocy obliczeniowej. Powtarzam pytanie: w czym problem? Ja miałem 200000 przerwań na sekundę w F0 działającym na 40 MHz.
O ile SPLa hejtuję chórem z innymi hejterami na tym forum, to STemWin będę bronił. Nie widzę podstaw do twierdzenia że biblioteka jest "zagmatwana", jej użycie jest bardzo proste, konfiguracja sprowadza się co najwyżej do podstawienia kilku wywołań funkcji niskopoziomowej komunikacji z LCD. Kod wynikowy waży sporo, ale w dobie mikrokontrolerów z 2MB...
Witam. Chciałbym uruchomić tryb z tytułu na zegarze 4, wykorzystując wyprowadzenie PB6 jako wejściowe oraz PD 15 jako wyjściowe. Używam płytki stm32f407 Discovery. Niestety led cały czas świeci nie zależnie czy zwieram wyprowadzenie do + 3V czy GND. Proszę o wskazanie błędu i pozdrawiam. Oto program: [syntax=c] //out pd15 tim4 one pulse mode GPIOD->MODER...
Czy ktoś wie gdzie może być problem? Na pewno w tym, że nie czekasz ani na ustabilizowanie się zegara HSE, ani na ustabilizowanie się pętli PLL. Te operacje są obowiązkowe zarówno przed użyciem HSE jako źródła dla PLL jak i przed użyciem PLLa jako źródła dla rdzenia. https://github.com/DISTORTEC/distortos/b...
Hej, Chciałem uaktualnić swój stary projekt, w którym używałem Atmegi162. Układ ma łączyć się z zewnętrznym urządzeniem za pomocą magistrali UART, o parametrach 8b danych, 1b stopu, parzystość "even". Obecnie próbuję zrobić te same operacje wykorzystując płytkę z mikrokontrolerem ARM - STM32F407Z (na płytce CORE407). Po paru minutach udało mi się skonfigurować...
Od tego jest RM a nie biblioteki wątpliwej jakości.
I zmień w konfiguracji projektu "cs-make" na "make". 4\/3!!
Zanim ktoś to zacznie czytać pokaż jeszcze konfigurację SPI.
Bardziej chodzi mi o podłączenie wszystkiego w jedną działającą całość tak żeby nic przy tym nie zepsuć programem będę przejmował się później ale chętnie przyjmę wszystkie porady :D
w zakladce registers przy r2 mam 0 ;/
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)...
To się tak robi ? : Pobierz z mojej strony przykładowy projekt dla STM32F4 i tam masz funkcję do konfiguracji portów, która zajmuje się za Ciebie takimi detalami. http://www.freddiechopin.info/pl/downloa... 4\/3!!
PLLN trzeba ustawić na 8 i działa jak należy.
Czytam i czytam tego RM-a i jakos nie moge załapać. Rozumiem że DMA konfiguruje dla ADC1 (czyli mastera) i to on bedzie odpowiedziałny za transmisję, czy tez muszę identycznie skonfigurować odpowiednie kanały dla wszystkich trzech ADC i ten, na który padnie zgodnie z ustawionym modem prześle te dane. Drugą rzecz, która jest niejasna to czy we wszystkich...
Zacznij od zrobienia tego na pollingu, czyli w pętli while(1), bez przerwań, ale z poprawnym odczytywaniem flag TXE i RXNE przed zrobieniem czegokolwiek. Proponuje więc wrzucić do tej pętli coś takiego: [syntax=c]if ((USART3->SR & USART_SR_RXNE) != 0) { uint16_t x = USART3->DR; while((USART3->SR & USART_SR_TXE) == 0); USART3->DR = x; }[/syntax] Tym...
Po pierwsze, czy w starych bibliotekach zmieniles te timingi z mojego postu wyzej? Zle timingi potrafia zawiesic sam FT (po wlaczeniu pclk) dlatego wypelnienie kolorem ci dziala a wyswietlanie napisu ci nie dziala (w sumie nie napisales czy inne funkcje po inicjalizacji ci dzialaja). W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji....
Czy ustawienie priorytetów załatwi problem czy może jest jakiś inny powód że przestało to działać? Definitywnie to drugie. Na 99% Twoje przerwania trwają zbyt długo lub użyłeś w nich (pośrednio lub bezpośrednio) funkcji blokujących/oczekujących/pollingu. Jeśli zaczniesz kombinowac z priorytetami bez zrozumienia przyczyny, to tylko wpędzisz się w więcej...
Ustawienia programatora są dobre? Próbowałeś zmniejszyć prędkość SWCLK? Jak wpisałem komunikat błędu w google znalazłem kilka postów. Próbowałeś metod opisanych w tamtych tematach?
Witam. Mam pytanie odnośnie konfiguracji portów w STM32F4. Konfiguracja przykładowego pinu wygląda tak: GPIO_InitStructure.GPIO_Pin = MX_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(MX_GPIO,...
Witam, W takim razie ustawienia muszą być takie: SCAN_MODE = DISABLE CONTIUOUS_MODE = DISABLE NRofCONV = 1 EOCSelection = ADC_EOC_SINGLE_CONV ustawiasz który kanał pierwszy ma być mierzony i rozpoczynasz konwersje wpisem do bitu SWSTART w ADC_CR2. Aby zmierzyć napięcie na innym kanale, musisz przeinicjalizować ADC, tzn. zmienić kanał i wywołać np. HAL_ADC_ConfigChannel().
Do debugowania używam GDB Hardware debuging z CodeSourcery. Wtyczka ta nie ma nic wspólnego z toolchainem który wymieniłeś. Do kompilacji używałem różnych Tool Chain między innym: Yagarto, Corss GCC, ARM Windows GCC... No to używałeś CodeSourcery czy nie? Po zaimportowaniu projektu, nawet bez kompilacji co dziwne wyskakuje 30 błędów dotyczących jednej...
To nie jest konfiguracja tylko funkcja obsługi przerwania. Ta pętla while czekająca na koniec odbioru wygląda nie najlepiej w funkcji przerwania. Na początek spróbuj bez przerwań czy w ogóle działa.
Przykładowe projekty mają skonfigurowane zarówno skróty do OpenOCD jak i konfiguracje dla GDB (we wtyczce GDB Hardware Debugging). Wszystko będzie widoczne po ZAIMPORTOWANIU projektu. 4\/3!!
Jeśli dobrze zrozumiałem problem: Ustawiając rejestr OTYPER nie ustawiasz pinu jako wyjście, tylko konfigurujesz wyjście, prawdopodobnie włączają się jakieś wewnętrzne rezystory, skonfiguruj resetr GPIOx->PUPDR (pullup) oraz TIMx->BDTR bit BKP (wyzwalanie stanem niskim lub wysokim). pzdr
Źle wam z tym, że nie wrzucili całej dokumentacji na kupę do jednego dokumentu PDF? To jest ledwie kilka logicznie podzielonych dokumentów, a nie instrukcja obsługi promu kosmicznego. Wcale nie jest trudno znaleźć coś w dokumentacji do STM32. Tak sądzą ludzie o słabej wyobraźni i krótkowzroczni. Freddie wszystko wyżej w sumie podsumował. Widzę, że...
Wydaje mi się że świecenie diody trwa dłużej niż 1s... raczej jestem przekonany. 1) Masz błędy w konfiguracji zegarów 2) Nie masz żadnej pewności że rdzeń chodzi na 168MHz... 3) Nie wiesz co jest wpisywane do systick'a 4) Wiesz, że takt RTOSa nie wynosi 1ms Na podstawie powyższych punktów ogarnij sprawę zegarów
Konfiguracja do bani. Zła kolejność
Więc rzeczywiście tworzy się plik a.out. Mogę wywoływać bez problemowo z dowolnego katalogu: make --version, sh --version i samo sh Co teraz powinienem zrobić ? Konfiguracja Eclipsa?
Graficzne narzędzie do konfiguracji zegarów znajdziesz np. w CubeMX - w dodatku zweryfikuje Ci poprawność ustawień i wygeneruje fatalny, ale poprawnie działający kod w C.
Witam, Tu jest błąd [syntax=c]GPIOC->MODER |= (0x11ul << 0);[/syntax] powinno być [syntax=c]GPIOC->MODER |= (0x3ul << 0);[/syntax] Na konfiguracje ADC nie patrzyłem, bo nie masz żadnego opisu co jak ustawiasz. Pozdrawia slqa
A ściągnąłeś sobie to co napisał kolega reggyred - czyli STLink Utility? Jeżeli jeszcze działa STlink (w sensie nie upaliłeś go) to po połączeniu SWD w Utility kasujesz procesor i już. A swoją drogą to dobrym patentem (dla początkujących) jest dodanie przed polem konfiguracji portów pustą pętlę opóźniającą tą konfigurację o 1-3 s. Wtedy żadna głupkowata...
28 Lis 2015 20:28: Jakby to kogoś interesowało, to dziś na stronkę projektu dodałem dokumentację generowana przez doxygena. Oczywiście do doskonałości dużo jej brakuje, ale... nie od razu Rzym zbudowano (; http://distortos.org/ > Documentation Jej przeglądanie najlepiej zacząć od (chyba) kompletnego podsumowania publicznych interfejsów systemu, które...
Witam, Mam problem z STM32F4 oraz ustawieniem interfejsu I2C. Podlaczylem czujnik temperatury MCP9808 ale nie dziala. Uzywam bibliotek HAL jak rowniez wczesniejszych bibliotek STD i kompletnie nic nie dziala. Czujnik jest odpowiednio podlaczony i podciagniety poprzez 4K7 do (+). Tak samo czujnik podlaczylem do plytki z linuxem i za pomoca narzedzi i2cdetect...
Można po prostu zmienić konfigurację pinu na output, ustawione wcześniej na "low". Gdy chcesz właczyć ponownie PWM, przywracasz konfigurację alternate function.
Witam wszystkich! Przeszukałem forum i niestety nie znalazłem tematu rozwiązującego mój problem. Próbuję uruchomić interfejs CAN na STM32F4DISCOVERY w ramach pracy nad konwerterem USB -> CAN. Część związaną z obsługą interfejsu USB mam już za sobą ;). Oto kod odpowiedzialny za konfigurację CAN: CAN_TransmitStatus . W efekcie zawsze otrzymuję: CAN_GetFlagStatus_Pending...
Sprawdzę sobie dlaczego, przecież rejestry mogę odczytać programowo i wyświetlić np na tak wykorzystywanym LCD (przykładowo). W razie problemu wolę debugować softem. Może niejasno się wyraziłem - softem nie możesz niczego zdebugować, jeśli problem jest z ... softem. I tutaj nic nie zastąpi debuggera. Mówisz o LCD, ale jak próby używania LCD powodują...
Próbuję zrobić odtwarzacz plików wave i mam problem z owym kodekiem bo nie wiem czy dobrze go skonfigurowałem i czy trzeba coś ustawiać w rejestrach kodeka. Moja ustawienia I2S: [syntax=c]RCC->APB1ENR |= RCC_APB1ENR_SPI3EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOCEN; // I2S - MCK(PC7), SCK(PC10), SD(PC12) GPIOC->MODER |= GPIO_MODER_MODER7_1...
Ok, przetestuję to rozwiązanie. A analizując mój kod, czy jest prawdopodobieństwo, że wszystko działa jak powinno, ale z jakiegoś powodu nie mogę podejrzeć danych, czy bardziej nastawiać się na jakiś błąd w przesyle informacji wynikający ze złej konfiguracji przetwornika ?
Witam A konfiguracja FSMC... co tam ustawiłeś Pozdrawiam
ld.exe: error: G:/eclipse-cpp/workspace-arm/Stm32f4... uses VFP register arguments, Stm32f4.elf does not Spróbuj skompilować projekt z użyciem programowego FPU, a także ze sprzętowym FPU. Wydaje mi się, że biblioteka jest skompilowana do pracy z którąś opcją dlatego wywala błędy przy innej...
Ja tam nie używam żadnych funkcji - cała konfiguracja wyprowadzeń i przypisanie ich do peryferiali to ledwie 3..5 linii kodu dla całego portu.
Zmieniłem na podane przez Ciebie funkcje: [syntax=c]#include "stm32f4xx.h" #include <stdio.h> #include "stm32f4xx_spi.h" #include "main.h" #include "gpio.h" #define CS_0 GPIOE->ODR &= ~(1<<3); #define CS_1 GPIOE->ODR |= (1<<3); void spi_init( void ) { RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;...
Jeszcze tylko jedno pytanie. Skąd DMA zna adres rejestru? Przecież w konfiguracji podaję tylko adres DRa...
Witam, Niestety poddaje się bo nie wiem czego mi brakuje w kodzie albo co robie nie tak. Nie moge odebrac na komputerze zadnego komunikatu z plytki DEV. Kontrolka na USB - USART swieci się od RX czyli cos jest nadawane (ciagle swiatlo) ale nic nie odbieram Załączam poniższy kod w celu debuggingu: #include <string.h> #include "stm32f4xx.h"...
Hmm... Trochę dziwne... Nie sądzę aby to miało problem, ale może to kwestia konfiguracji samego projektu? Przykład na stm32f4 działa z ładowaniem i debugowaniem. Ale działa na STM32F4 czy działa na Twoim układzie jak trochę zmienisz konfigurację OpenOCD? 4\/3!!
Poszukaj projektu OpenMV. Tam znajdziesz poprawną konfigurację rejestrów tej kamery dla tej rozdzielczości.
No to sobie napisz program który będzie stopniowo zmnejszał ARR i obserwuj oscyloskop. Zrób przerwanie przy wystąpieniu błędów DMA. Wyciągnij wnioski oczywiście można używać innych ale po co jak są te. Przy okazji są one mocniej związane z DAC.
Chciałbym się poradzić doświadczonych w przenoszeniu kodów z niższej rodziny na wyższą. Poniżej zamieszczam chyba najbardziej wrażliwy na przeniesienie fragment kodu. [syntax=c] // inicjalizacja taktowania PLL-e itp... RCC_DeInit(); RCC_HSI_Config(); // konfiguracja wyprowadzeń fpga_Pins_configure(); // konfiguracja przerwań NVIC_Configuration(); LCD_Pins_configure();...
Teraz nie wiem czy mam błąd w RCC, czy w konfiguracji Systick'a ? To pierwsze. Przyjrzyj się w manualu jakie są dopuszczalne wartości PLLP, zwracając uwagę na fakt, że to pole ma tylko 2 bity.
Mogę się mylić ale ten STM32 raczej nie da rady... Ma mniej więcej 2 razy za mało RAM'u, żeby zbuforować jeden wyświetlony obraz... Dla TouchGFX typowa konfiguracja to pamięć QSPI + zewnętrzny SRAM/SDRAM + RTOS. Bez TouchGFX myślę, że da się to zrobić, kosztem braku animacji, przejść i innych bajerów.
W CoIDE obsługa NVIC jest schowana w "misc.h" z Repozytorium. Taka logika ;) A gdybyś od razu napisał, że korzystasz z STM32F4Discovery, to nie musiałbyś się tak zastanawiać. Przecież na tej płytce linia TX jest na sztywno połączona z VBUS portu USB i wyjściem układu kontroli zasilania na tym porcie, a linia RX jest na sztywno spięta z ID. Jeżeli przypadkiem...
Druga i istotniejsza kwestia. Jakoś nie zauważyłem by makro USBD_malloc było użyte w jakimś przerwaniu. Widzę że w każdej z klas występuje tylko raz w USBD_xxxx_Init, dokładnie tak jak tu postulujesz. Tak że teraz już nie wiem o co Ci chodzi. Przecież opisałem to w pierwszym poście - ze screenshotem i z pełnym opisem łańcucha wywołań. USBD_malloc()...
Do konfiguracji zegarów wygodny jest CubeMX. Odwala czraną robotę.
Witam. W STM32F4 Discovery rzeczywisty baud rate jest około 3 razy mniejszy niż ustawiony w konfiguracji USARTu. Mam też problemy z konfiguracją zegara. Szczerze mówiąc po prostu nie wiem jak go skonfigurować.
Próbuję "klecić" od do zapisu daty i czasu RTC przez rejestry, ale coś mi nie idzie. Czy problemem zapisu w HALu może być to że w CubeMX ustawiłem na BIN i zapisuje w kodzie jako BIN, a z jakiś powodów niewolno stosować konfiguracji BIN tylko BCD?
STM32f4 64KB RAM. Właśnie się przekonałem, że wiele zależy od konfiguracji pamięci.
Preskaler jest aktualizowany po przepełnieniu licznika. Jeśli chcesz wymusić natychmiastową aktualizację preskalera, to ustaw bit UG w rejestrze EGR. Wiąże się to również z wyzerowaniem licznika.
Witam, korzystam z toolchaina od freddiego i Eclipse Luna pod stm32 discoveryf4. Debugowanie ogólnie działa jednak mam problem z breakpointami postawionymi w taskach od FreeRTOSa. Otóż są one jakby ignorowane, program nigdy się w nich nie zatrzymuje chociaż program wykonywany jest poprawnie. Jeśli postawię breakpoint w innym miejscu (przerwanie lub...
Mam dokładnie taki problem, jak pisze grysek. Co do ustawień debugowania, to mam konfigurację bazującą na GDB OpenOCD Debugging.
Jako bazę polecam przykład dla LPC1114 + konfiguracja OpenOCD i debuggera z projektu dla STM32F4 4\/3!!
(at)Piotrus_999 Mam przejściówkę usb ->uart i w ten sposób sprawdziłem że np prędkości 19200, 9600, 4800 działają bo przesyła mi dobre znaki na terminal, natomiast gdy ustawię w stm32f4 discovery prędkośc 300 lub 1200 to w terminalu mam krzaki.
[syntax=c] /* Includes ----------------------------------------... #include "stm32f4xx.h" void RCC_Config(void); void GPIO_Config(void); int main(void) { volatile unsigned long int i; GPIO_Config(); RCC_Config(); GPIO_ResetBits(GPIOG, GPIO_Pin_13 | GPIO_Pin_14 ); while (1) { /*Tu nalezy umiescic glowny kod programu*/ GPIO_WriteBit(GPIOG,...
Dołacz odpowiednią bibliotekę. Opcje linkera w większosci toolchainów -u _printf_float jezeli zamierzasz skanować float-y to również -u _scanf_float Dodano po 4 Nie zauważyłem że to coocox - tam masz o ile pamiętam w konfiguracji projektu odpowiedni checkbox
W ustawieniach projektu w zakładce Linked Resources są wszystkie odpowiednie pliki .h W konfiguracji projektu mam zdefiniowane "USE_STDPERIPH_DRIVER"
Witam Projektuję urządzenie które wykorzystuje 2xSPI, UART, kilka kanałów timerów 8-bitową szynę danych i kilka zwykłych GPIO. Dostaję białej gorączki z przypisaniem poszczególnych pinów (11 stronicowa tabela w manualu). Tabela jest dla całej serii a ja wykorzystuję obudowę 64 pinową. Czy może posiada ktoś tą tabelę (tabela 6 z DM00037051.pdf) w Excelu...
(at)Piotrus_999: Dobrze, masz rację. Odpaliłem na STM32F103 i jak Rx jest tam AF to CAN nie działa, a jak jest input pullup to działa. Nie jestem w stanie tej wiedzy zweryfikować na F4. (at)Damian7546: Ustaw proszę .BS1 = CAN_BS1_5TQ, .BS2 = CAN_BS2_2TQ oraz Preskaler na 21. To powinno Ci dać baud 1M. Ta sama konfiguracja tylko z Preskalerem 42 da Ci...
Jak chcesz robić taki porządek, to zwróć uwagę na tabelkę w manualu, w której to część konfiguracji opisana jest jako RESERVED... U mnie (stary dokument) - tabelka 14ta, strona 138. Generalnie w nagłówku dołączonym do przykładów znajdują się WSZYSTKIE PRAWIDŁOWE (czytaj "możliwe") konfiguracje. Z tego względu zamiast mnożyć definicje dodaj swoje "aliasy"...
1. Rejestry BSRR i BRR wymyślono po to, żeby NIE używać operacji logicznych na portach, a Ty piszesz np.: LCD_PORT->BSRRL |= (1<<DB4); - kompletnie bez sensu 2. Nie miałem nigdy problemu ze sterowaniem wyświetlaczy 5V zasilanych z 5V z STM32 zasilnych z 3.3,a nawe z 3.0 V. Szukaj błędu w połączeniach lub definicjach/konfiguracji portów. Sprawdź...
USART1->CR1 |= USART_CR1_UE; //włączenie usart USART6->CR1 |= USART_CR1_UE; //włączenie usart To daj po całej konfiguracji a potem wysyłaj i odbieraj.
Daje już któryś raz z kolei mój kod, działa na F4 na pewno. Może i działa. Ale odbiór na pewno powinien wyglądać inaczej. Do demoh. Resetujesz układ I2c i chcesz juz działać? a gdzie konfiguracja? Podejrzałeś w ogóle rejestry debugerem?
Chyba masz rację. W pliku .lss nie umiem znaleźć w ogóle konfiguracji FMC dla LCD. Co z tym można zrobić?
Tam, gdzie masz przerwy wykonuje się przerwanie. Przerwanie od czego? Nie ustawiłem przerwania. Nawet jeśli wyrzucę kod od przerwania SysTick czyli: i jest ładny prostokąt. W pętli while(1) tylko: http://obrazki.elektroda.pl/2213215700_1... Oscyloskop: 2 V /DIV 0.05 us /DIV Zaznaczę iż GPIOA->BSRRH oznacza poziom niski napięcia 0...
Miszmasz wszystkiego zrobiłeś, trochę używasz moich funkcji do zapisu bezpośredniego z rejestrach, trochę od ST do konfiguracji. Nie możesz w całości mojej użyć?
No pewnie się zmieści ale trochę mnie to przeraziło zważywszy na to że kod nic nie robi. Czy to po prostu tyle zajmuje konfiguracja rejestrów plus to że są 32 bitowe i taki rozmiar to normalka. Ale wiesz że rozmiar pliku .hex nie jest równy rozmiarowi skompilowanego programu? Czy na tym etapie (zupełne początki) naprawdę musisz sobie dokładać problemów...
Do konfiguracji i "oglądania" taktowania bardzo dobrze nadaje się program CubeMX od ST.
Jeśli korzystasz z stm32f4 discovery, to sprawdź czy masz dobrze ustawionego st-linka. Musisz mieć zainstalowany w systemie sterownik do niego, Keil nawet zaktualizuje w nim soft jeśli zajdzie taka potrzeba. Jeżeli chodzi o konfigurację st linka w Keilu, wszystko znajdziesz w dokumentacji u ST na stronie. Nie wiem też czy dobrze się zrozumieliśmy. Debug...
miszcz310 napisał: Jedyne co zmieniłem to w Makefile'u toolchain na arm-linux-gnueabi (linaro). Jest to bardzo poważny błąd, bo to NIE JEST toolchain bare-metal! To MUSI być arm-none-eabi- i na stronie linaro jest też paczka dla linuxa https://launchpad.net/gcc-arm-embedded/4... No mówiłem dziecinny błąd... Nie wiem skąd mi się wzięło...
Ciekawe, że podczas prawie globalnego zasięgu bezprzewodowej łączności telefonicznej oraz powszechnego wykorzystania komunikatorów, wciąż znajdują się konstruktorzy pracujący nad odbiornikami i nadajnikami krótkofalowymi dla amatorskiego użytku. Obecnie są to w większości urządzenia cyfrowe, bazujące przeważnie na technologiach SDR (Software-defined...
A jakbyś np skorzystał z funkcji konfiguracji pinów z mojego przykładu dla STM32F4 - http://www.freddiechopin.info/pl/downloa... ? To wtedy będzie działać czy też nie? <: Może w erracie jakąś ciekawostkę znajdziesz? 4\/3!!
Witam Pierwsza spraw to sprawdź czy faktycznie zapisują się dane do RFM12. Część rejestrów jest typu R/W. Zapisujesz wartość do rejestru, a następnie ją odczytujesz. Jak są takie same to komunikacja jest ok.Najczęstszy problem to konfiguracja SPI. Jak wygląda schemat połączenia układu do kontrolera ? Pozdrawiam W.B.
ze tak zapytam jak patrze na to co dales wyzej to gdzie Ty wogole ustawiasz zegar systemowy etc, bo z tego co widze to tylko dajesz enable magistralom a konfiguracja LCD to tylko ustawienie GPIO w zasadzie
Witam ponownie :) Co prawda nie udało mi się uruchomić komunikacji przez SPI z rejestrem przesuwnym, ale rozwiązałem to programowo :) Mam jednak jeszcze jedno pytanie. Chciałbym zrobić "beep generator". Chodzi mi o to, aby na wyjściu słuchawkowym pojawił się wygenerowany dźwięk. Korzystam z gotowego kodeka dla STM32F4 Discovery. Konfiguracja kodeka...
konfiguracja usart stm32f4 stm32f4 konfiguracja stosu stm32f4 discovery konfiguracja zegar
gericom hummer uszkodzony programator siemens wzmacniacz gramofonu bambino schemat
mikrokomputer cobra1 mikrokomputer cobra1
Wiązka instalacji fotela elektrycznego Mercedes W208: diagnostyka i naprawa Schemat instalacji fotela elektrycznego Mercedes W208