mam problem z funkcja printf(); Po wywołaniu tej funkcji procesor się zawiesza http://www.openstm32.org/forumthread1346...
Dzień dobry, od dłuższego czasu próbuję wykonać projekt sterowania Transceivera RF CC120 firmy Texas Instruments za pomocą mikrokontrolera STM32F100RBT6B, który jest na płytce uruchomieniowej STM32VLDISCOVERY. Mam już napisaną część kodu, jednak nie jestem pewien czy SPI jest faktycznie poprawnie uruchomione oraz (i tu prośba do kogoś, kto się orientuje...
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...
Witam Dopiero zaczynam swoją przygodę z mikroprocesorami z rodziny ARM. Posiadam moduł prototypowy: STM32 LCD3.2" ARM Cortex, z procesorem: STM32F103VCT6 . Korzystam ze środowiska Kyle uVison4. Problem pojawił się przy próbie uruchomienia magistrali I2C. Obecnie mam 3 ATMEGI połączone ze sobą po I2C i między nimi komunikacja przebiega prawidłowo. W...
Jakaś różnica musi być skoro na oryginale działa a na tym nie. Gruntownie rok temu na nim działałem i wszystko grało wiec pewnie coś z wgrywanym programem ale skoro daje sie programować na oryginalnym STlinku to nie będę sobie robić problemów z tym chińskim. Pod spodem podaje kod wygenerowany przez Stm32CubeIde z dopisanymi 4 liniami moimi czy miganie...
Dochodzę do wniosku, że nie zdziałam za dużo opierając się na gotowej bibliotece do obsługi systemu plików. Ja dochodzę do wniosku, że Ty dochodzisz do błędnego wniosku [; FatFS, poprawnie skonfigurowany, jest w stanie zmielić dane z wystarczającą prędkością. Nawet zrobiony mega tępo działa całkiem szybko... Mam taki projekt, w który jest system operacyjny,...
Niestety nie pomogło EDIT: Spróbowałem wygenerować za pomocą STM32CubeMX i napisać w HAL'u kod który by wysyłał cyklicznie dowolną ramkę CAN. Oto mój kod napisany w AC6 System Workbench: http://obrazki.elektroda.pl/9453638400_1... Przy okazji: 1. Jak wgrać program przez JTAG'a w AC6? 2. Da się dodać bibliotekę HAL do COIDE CooCox'a?...
zujnik jest podłączony bez rezystorów wzmacniających, ponieważ odczytałem ze schematu, że nie są potrzebne(próbowałem także z rezystorami 4k7). Przy sprawdzeniu bufora z danymi w programie Stm Studio, nic się nie zmienia a flaga busy jest ustawiona jedynie przy odłączeniu kabla SDA od czujnika. Proszę o pomoc w znalezieniu przyczyny braku odczytu i...
W skrypcie linkera zmieniłem rozmiary stosów : __main_stack_size = 2048; __process_stack_size = 2048; Do projektu dołączyłem biblioteki gcc: #include <errno.h> #include <sys/types.h> oraz funkcję _sbark: caddr_t _sbrk (int size) { extern char __heap_start; extern char __heap_end; static char *current_heap_end = &__heap_start;...
Koledzy. W tych ARM-ach stawiam pierwsze kroki, więc proszę mi wybaczyć lamerstwo, jeśli mi się zdarzy. Posiadam płytkę HY-miniSTM32 z wyświetlaczem HY32D i procesorem STM32F103VCT6. Używam środowiska CoIDE w wersji najnowszej, czyli 1.7.5 i toolchain GNU Tools ARM Embedded\4.7 2013q3 Ściągnąłem i otworzyłem pod CoIDE projekt glcd, umieszczony kilka...
Wciąż nie rozumiem do końca... LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length)); //LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=hu)\n"));//Moja modyfikacja - powyższa linijka powodowała hard fault Jak odkomentujesz tą drugą linijkę to się wykrzacza tak? Czy może wykrzacza się jak zakomentujesz pierwszą...
Wywołanie printf() oczywiście nie wejdzie do tej funkcji, bo nie używa Twojego pliku tylko stdout. Wywołanie drugie to oczywiście inna kwestia. Być może pocieszy Cię, że "nadziałeś" się na to, na co chyba natknął się absolutnie każdy. stdio obsługuje domyślnie buforowanie (można je wyłączyć, ale to oczywiście nie jest najlepsza opcja), to co masz w...
Chcę w jakiś sposób okiełznąć USART, na razie bez DMA. Korzystam z gotowego przykładu, jednak pustki w terminalu. Fizycznie : GND przejściówki USB RS232 podłączony z GND disco, RX, TX kros. stm32f10x_usart.c [syntax=c] #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include <stdio.h>...
Witam, Jestem niedoświadczonym użytkownikiem więc proszę o wyrozumiałość. Podobnie jak kolega chciałbym aby mój STM32 discovery Examples/GPIOToggle i chciałbym go tak zmodyfikować żeby zaczął rozmawiać po I2C, stworzyłem plik I2C.c oraz I2C.h. Dodam ze używam Keil'a Dostałem od kolegi przykładowy kod który powinien działać ale w praktyce jest oczywiście...
Witam, Mam problem - mam za zadanie zrobić coś w stylu skanera 3D na STM32. Na razie nie mogę opanować samej obsługi kamery w konfiguracji STM32F103VE+ wyśw. SSD1963 7" (zestaw EB-STM32_08_LCD7) i kamera OV7725 . Do zestawu dostałem przykładowe projekty w keilu. Bazując na projekcie do sprawdzania kamery z wyświetlaczem 4.3' wkleiłem działające biblioteki...
Operator new używa malloc() i wyjątków, a obsługa tych dwóch wymaga dostarczenia funkcji zwanych "syscalls" - takich jak właśnie close, exit, sbrk, write, read, itd. Najlepszym rozwiązaniem jest zastąpienie domyślnego operatora new swoim własnym (takim który wywołuje tylko malloc() ). Wielu "problemów" unikniesz dodając gdzieś w kodzie coś takiego:...
Zasadniczy probem twojego rozwiązania to delay() w obsłudze przerwania i ogólnie za dużo w nim robisz. Z zasady w przerwaniu wykonujesz jak najmniej kodu, aby z niego wyjść najszybciej jak się da. A tutaj wykonanie kodu w przerwaniu zależy od kolejnych przerwań. Ustawiaj tam sobie jakąś zmienną globalną kiedy chcesz coś wykonać, wybudź procek, opuść...
Witajcie ponownie :) Wybaczcie, że dopiero teraz odpisuję. Ogólnie "odpaliłem" wreszcie te emulację EEPROMa w FLASH. Działa, ale mam jedno pytanie, wirtualny adres zmiennych, czy muszę jakoś uważać na to co tam wpiszę? Chodzi mi o tę linijkę kodu: [syntax=c]uint16_t VirtAddVarTab[NB_OF_VAR] = {0x5555, 0x6666, 0x7777};[/syntax] To pytanie dedykuję głównie...
Prawie, tylko po wypełnieniu struktury konfiguracją dla wyjścia musisz wywołać funkcję GPIO_Init, czyli powinno być tak: [syntax=c] GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIO... ENABLE); // włącz zegar dla GPIOA GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //definicja pinów wyjciowych GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;...
Witam serdecznie. Początkowo miałem problem z uruchomieniem układu, nawet pisałem do Piotra czy nie ma jakiegoś błędu w zamieszczonym kodzie. Problemy były dwa, po pierwsze używałem płytki testowej na której był umieszczony kwarc, którego z niewiadomych mi powodów zostawiłem. Po drugie istotny jest rodzaj bramki lub konwertera napięcia na wyjściu. Np...
Toolchain : C:\Program Files\GNU Tools ARM Embedded\4.9 2014q4 Debugowanie programu : http://obrazki.elektroda.pl/8776950400_1... Gdzieś w sieci wygrzebałem: In case that link ever disappears, what you have to do is ensure that your gcc command has "-Wl,-u,vfprintf -lprintf_flt -lm". This translates to: force vfprintf to...
Zaprojektowałem i zbudowałem płytkę wyposażoną w procesor STM32F107RCT6 oraz dekoder popularny MP3 VS1003. Jest to kolejna wersja starszego projektu na PIC32, który przenoszę na nowy mikrokontroler. Większa część projektu PCB pochodzi ze starej wersji. Do komunikacji z VS1003 używam popularnej biblioteki Andy'ego Karpova, którą już wcześniej przeportowałem...
Witam, Od niedawna planuję przejść na mikrokontroler stm32f407vgt6 z stm32f103vct6, ze względu na szybszą pracę. Niestety napotkałem na bardzo poważny problem. Aby przedstawić jak najlepiej dany problem, zamieszczę printscreen z analizatora stanów. http://obrazki.elektroda.pl/6745447700_1... Na wykresie widzimy przerwanie pracy timera,...
Na potwierdzenie tego co napisał powyżej Freddie Chopin, zamieszczam poniżej programik ilustrujący problem: [syntax=c] #include <stdio.h> #include <stm32f4xx.h> #include <stm32f4xx_rcc.h> int main(void) { printf("stm32f429i\n"); printf("GPIOA\n%8.8X\n", (unsigned int)GPIOA); printf("RCC_AHB1Periph_GPIOA\n%8.8X\n", (unsigned int)RCC_AHB1Periph_GPIOA);...
Ok, to chyba nie będę na razie kombinował bo nie mam pojęcia o tych syscalls :P Spróbuję jutro odpalić Twoją funkcję printf ;] Jeśli chodzi o timer - to tak, wiem, że mogę to wszystko włączyć w jednej linii, ale tak jakoś z przyzwyczajenia zostawiłem samo enable na koniec, teraz to przerzucę ;]
Dzień dobry, Mam problem z dogadaniem się z ADIS16201. https://www.analog.com/media/en/technica... Zacznę od tego, że korzystam z płytki : https://www.analog.com/en/design-center/... Wyjścia podłączyłem w sposób następujący: ADIS1620...
HEAP miał 8kB, STM32F103 ma 20kB SRAM, to może 12kB na stos USB, jakieś globale, konteksty zagnieżdżonych przerwań itp. to momentami dla niego za mało? Raczej nie ma opcji, żeby 12 kB na stos było zbyt mało. Poza sytuacjami extremalnymi mi się jeszcze nie zdarzyło używać więcej niż 4 kB, ale tylko w sytuacjach gdy "głęboko" są używane funkcje typu...
Funkcja z tego pierwszego wywoływana jest przez różne funkcje standardowe typu printf(). Funkcja z tego drugiego wywoływana jest pewnie przez startup albo przez jakąś inną funkcję z bibliotek coocoxa.
Tak, zgadza się plik ten znajduje się w paczkach contrib stosu lwIP, jednak miałem również ściągniety ten plik wcześniej, niemniej jednak próby odpalenia obydwu kończą się niepowodzeniem. O ile dobrze zrozumiałem metodę postępowania tj. Wrzucam plik makefsdata oraz folder o nazwie fs - zawierający system plików który chcę przekonwertować do postaci...
Witam, Korzystam z płytki "Open103Z" z procesorem jak w temacie. Ma ona przygotowane złącze na wyświetlacz graficzny. Wyświetlacz to HY32C z kontrolerem SSD1289. Próbowałem przystosować jakiś przykład z sieci, korzystający z FSMC, do swojego zestawu(tzn. zamienić szyny adresowe i odpowiedni sektor pamięci), jednak wyświetlacz nie reaguje. W części z...
po prostu - masz thread, który pisze do SD. odbierasz ramke, który jezt zablokowany na kolejce, semaforze, mutexie czy tez notyfikacji. Przykład: Jak odbierzesz ramkę wstawiasz do kolejki dane (lub tylko referencję). Thread zapisujący na kartę się odblokowuje i zapisuje. Możesz miec (jezeli wstawiasz do kolejki same rwskażniki do buforów) dwa (lub węcej)...
OK udało się rozwiązać problem. Błędem było sprawdzania flagi TCR w pętli, jak ona jest ustawiana po wysłaniu wszystkich bajtów. Poniżej poprawny kod: [syntax=c] void I2C_HW_tx(uint8_t i2cAddr, uint8_t *dataTx, uint8_t length, uint8_t stopOrNotWhenSent) { if (stopOrNotWhenSent == STOP_WHEN_SENT) { I2C_TransferHandling(I2C_PERIPH, i2cAddr, length, I2C_AutoEnd_Mode,...
Aby było prościej to zrezygnujmy z DMA. Przy zwykłym wysyłaniu stringa efekt jest taki sam. Wysyłam tak: GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2014q4\bin compile: [mkdir] Skipping C:\CooCox\CoIDE\workspace\DMA\dma\De... because it already exists. [mkdir] Skipping C:\CooCox\CoIDE\workspace\DMA\dma\De...
oto kod który przekształci timestampa na datę, oczywiście można sobie te pola zrobić jako strukturę czy jak kto woli, ja tylko daje gotowy algorytm z którego korzystałem podczas obsługi tego śmiesznego RTC w stm32f1 :D [syntax=c] #include<stdio.h> int czyPrzestepny(int rok) { if (rok % 4 == 0 && rok % 100 != 0 || rok % 400 == 0) return...
Zrobiłem mały tescik na PC: #include <stdlib.h> #include <stdio.h> #include <stdint.h> #define UIP_BIG_ENDIAN 0 #define UIP_LITTLE_ENDIAN 1 #define UIP_BYTE_ORDER UIP_LITTLE_ENDIAN #ifndef HTONS # if UIP_BYTE_ORDER == UIP_BIG_ENDIAN # define HTONS(n) (n) # else /* UIP_BYTE_ORDER == UIP_BIG_ENDIAN */ # define HTONS(n)...
Też miałem ten sam problem. Okazuje się, że związany jest ze stertą, którą ponoć wykorzystuje funkcja "printf()" i jej pochodne. Znalazłem w sieci takie jedno rozwiązanie: http://obrazki.elektroda.pl/1626583500_1... Kroki postępowania: 1. Otworzyć repozytorium. 2. Zaznaczyć opcje jak na załączonym obrazku. IDE samo dołączy do projektu...
Możesz napisać własną funkcję printf, nie korzystając ze standardowych bibliotek. Poszukaj np. tutaj: http://www.freddiechopin.info/pl/downloa...
Dzięki za odpowiedź. Lutowanie nie wchodzi w grę zatem kupuje przejściówkę usb-uart. Mając Nucleo nie potrzebujesz żadnej przejściówki jeśli chcesz "pogadać" z ESP z komputera, bo Nucleo ma więcej Uartów niż tylko ten jeden podpięty do ST-Linka i wystarczy tylko prosty programik by te Uarty programowo połączyć. I co wyślesz do Nucleo, wyląduje w ESP...
(at)Freddie Chopin Tak jak wcześniej pisałem miałem uruchomiony projekt - obsługę ethernet na STM32f407 gdzie main wyglądał tak: [syntax=c] /** ****************************************... * (at)file main.c * (at)author MCD Application Team, EvertDekker * (at)version V1.1.0 * (at)date 14-September-2014 * (at)brief...
Cześć, Próbuję się skomunikować pomiędzy RPi i stm32f4. Na RPi korzystam z biblioteki bcm2835 a na stm32f4 z HAL. Być może nie do końca rozumiem zasadę działania SPI i sta te problemy. RPi jest masterem i co 1000ms wysyła dane w postaci tablicy o rozmiarze równym 4 elementy. Te dane są w poprawny sposób odbierane na stm32f4. Na stm32f4 korzystam z DMA,...
Witam, próbuje znaleźć dobry sposób na pomiar amplitudy impulsu PWM. Zakres zmian wypełnienia 5 % do 95 %. Czestotliwosc sygnalu sie nie zmienia i wynosi 1 KHz. Mój pomysł polega na tym, że po wychwyceniu zbocza narastajacego odpalam ( w przerwaniu od input capture) timer ktory co 10 us ( 5 % z 1 ms to 50 us) trigeruje pomiar ADC poprzez DMA (czyli...
Jaki fragment kodu? Jeżeli uzywasz HAL to aby poznać częstotliwość możesz np printf("%u\n", SystemCoreClock); (jak włączysz semihosting) Ale jak napisał kol. Marek wybrałeś IDE przestarzałe i martwe. Proponuję zainstalować atollic
Witam Staram się nawiązać komunikację pomiędzy dwoma płytkami STM32F0 przy użyciu modułów RFM73 - jednakże zatrzymałem się na etapie modyfikowania bibliotek dedykowanych dla modułu RFM70 i STM32F10. Problem polega na tym, że nie dochodzi do komunikacji i nie potrafię znaleźć przyczyny. Zamieszczam kody: RFM70.h [syntax=C] /* ****************************************...
Witam. Na początku muszę zaznaczyć, że jestem raczej początkującym w temacie mikrokontrolerów i ogólnie elektroniki. Kupiłem sobie stm32f0 discovery oraz termometr ds18b20, podłączyłem wszystko jak trzeba - pin 1-wire do pc7, oraz piny zasilania odpowiednio do 3v i GND na płytce. Korzystam z IAR Embedded Workbench EWARM. Termometr działa, bo procedura...
https://obrazki.elektroda.pl/9462291700_... Chciałbym zaprezentować rozwinięcie eksperymentalnego odbiornika SDR, jaki opisałem ostatnio: https://obrazki.elektroda.pl/6947080100_... https://obrazki.elektroda.pl/7046555300_... Najbardziej w tym momencie interesującym fragmentem płyty jest głowica: https://obrazki.elektroda.pl/9911930900_...
Niemniej jednak idea użycia printf w przerwaniu i to jeszcze z liczbami zmiennoprzecinkowymi... Jak będę wysyłać sam jeden znak, powiedzmy: [syntax=c]void ADC_IRQHandler() { ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); uint16_t conv_result; conv_result = ADC_GetConversionValue(ADC1); conv_buffer[index] = conv_result; send_char('c'); }[/syntax] to dalej...
[cc] c:/program files (x86)/gnu tools arm embedded/4.6 2012q2/bin/../lib/gcc/arm-none-eabi/4.6.... multiple definition of `_impure_ptr' [cc] ..\obj\printf.o:(.data+0x428)... first defined here [cc]...
Witam, próbuję napisać program, który łączy się z czujnikiem temperatury. Nie jestem specjalistą, więc proszę o pomoc. Moja funkcja inicjująca SPI: [syntax=C] void SPI1_Init_ML(void) { GPIO_InitTypeDef GPIO_InitStruct; SPI_InitTypeDef SPI_InitStruct; // enable clock for used IO pins RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP... ENABLE); /* configure...
Działam w SW4STM32 oraz korzystam z STM32CubeMX w formie nakładki na eclipse. Wgrywanie programów oraz chip erase wykonałem za pomocą ST-LINK Utility. Przy późniejszej próbie wyczyszczenia pamięci przez bootloader korzystałem z STMFlashLoader Demo Tak wyglądał program, który przerwałem za pomocą chip erase: Dodano po 13 Prawdopodobnie drugi program...
Dałem radę już cokolwiek zrobić, jednak nadal mam problem z odbiorem drogą radiową (wysyłania jeszcze nie sprawdziłem). Zaraz opiszę co dokładnie nadal nie działa. W załączniku dodaję cały projekt. Kody (obecne): main.c [syntax=c]/** ****************************************... * File Name : main.c * Description : Main...
programator stm32f stm32f programować printf double
manta ładowanie głośnika tranzystor irfz44n wymiana żarówka kierunek
pomiar poziomu szamba kabel brake radio
Location of Fuel Injector No. 1 on 2004 Vauxhall Vivaro 1.9 DTI Jak połączyć przewód do pompowania fotela z przejściówką?