Nie ma przypadków, proszę o wyjaśnienie, i jak mogę zrobić, żeby moja metoda zadziałała? Jedynym rozwiązaniem jest globalne txt? Przypadek bo stos ci tego nie nadpisał. A o static słyszałeś?
Autor wątku w dziale "początkujący" zadał pytanie o podstawy języka. Po 10 postach mamy już wspomniane atrybuty gcc, "pragmy" kompilatora, wskaźniki na funkcje, zamieszanie związane z słówkiem "inline", sugestie że kompilatory czasem robią wyjątkowo dziwne rzeczy (choć wiadomo że w tym przypadku autor używa gcc). Czekam aż ktoś napisze coś o undefined...
https://www.google.pl/search?q=stm32+uar... Pierwszy link: http://www.st.com/st-web-ui/static/activ... To na prawdę nie są super tajne informacje dla elit ;)
Przykładowo dla STM32F103: [syntax=c]static void GLCD_FSMCConfig(void){ FSMC_Bank1->BTCR[0] = FSMC_BCR1_MWID_0 | FSMC_BCR1_WREN;/* Control Register, BCR1 */ FSMC_Bank1->BTCR[1] = 0x0a | (0x0a<<8); /* Timing Register, BTR1 */ FSMC_Bank1E->BWTR[0] = 0x0fffffff; /* Write timing register, BWTR1 */ FSMC_Bank1->BTCR[0] |= FSMC_BCR1_MBKEN;...
Spróbuj te zmienne zadeklarować jako static xHandleTaskLED1, xHandleTaskLED2, xLastFlashTime
Ma jednorazowo wykonać przesłany kod? Zachować go po utracie zasilania? Jeśli tak to IAP [url=http://www.st.com/st-web-ui/static/... [url=http://www.st.com/st-web-ui/static/...
Masz tu brzydki ale skuteczny delay na Cortex, specjalnie do LCD. Liczba NOPów powinna być o jakieś 3 mniejsza od połowy częstotliwości wyrażonej w MHz: [syntax=c]static void delay500ns(void) { __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); }[/syntax]
int TDelay wyciągnij jako zmienną globalną. Za każdym razem, gdy SysTick wejdzie do przerwania ją tworzy, a to bez sensu, co? :) w końcu nigdy nie doliczysz do 500, skoro będziesz cxo chwile tworzył tą zmienną. wystarczy dodać "static".
Wtedy nie byłoby warninga. Zresztą nawet wtedy umieszczanie w nagłówku deklaracji ze słówkiem "static" jest bez sensu.
Jeśli zmiana rozmiaru buforów powoduje że program przestaje działać oznacza to że prawdopodobnie kończy się pamięć na stosie. Kilka rozwiązań jest. 1. zwiększyć stos 2. zdefiniować bufory jako static albo zmienne globalne wtedy nie trafią na stos 3. jeżeli idea projektu na to pozwala podzielić odczyt na mniejsze paczki i zapisywać po trochu(używając...
Jeśli ma być tak jak ty to opisujesz to wywołanie powinno tak wyglądać static void VtaskINT1( void *pvParameters ) { xSemaphoreTake(xBinarySemaphore,0... while(1) { xSemaphoreTake(xBinarySemaphore,port... // Tutaj twój kod do wykonania } } lub static void VtaskINT1( void *pvParameters )...
I czemu Ty na miłość boską wkładasz całą funkcję w header ? To właściwe miejsce na funkcję "static inline" Albert
Widziałem na jednym z forów, że ktoś pokazywał, że kod wygenerowany w C++ nie musi być wcale większy niż w C - ale trzeba już nieźle wiedzieć "o co chodzi", żeby dobrze sobie taki kod zoptymalizować. Jak się ma szybkość wykonywania takiego kodu w stosunku do C? To są wszystko mity... Kod w C++ zajmuje tyle ile musi zajmować - ciężko oczekiwać, że możesz...
Witam, od dłuższego czasu walczę z tym problemem i nie potrafię znaleźć rozwiązania. Mam projekt, który pochodzi z anglojęzycznego tutoriala: [url=http://www.mind-dump.net/configurin... Wrzucony do Keila i skompilowany działa jak powinien. Problem w tym, że próbuję przenieść go na wykorzystanie bibliotek HAL, z których...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
Witam. Spadek napięcia jest 0,8 ÷ 1,5V 7 10 mA "Input diode static forward voltage" : http://measure.feld.cvut.cz/groups/edu/o... Alternatywnie można polaryzacją bazy (np. 0,4V) podnieść wrażliwość, no tu nie trzeba. H.
Możesz. Tylko funkcja static ma zasięg ograniczony do 1 pliku.
static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_Priori... /* Enable the RTC Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp... = 1; NVIC_InitStructure.NVIC_IRQChannelSubPri...
U ST to się chyba nazywa FSMC. (...) Nie wiem na ile musisz pozostać przy ST, LPC sobie radzą z DRAM. STM32F4x9 obsługują DRAM - tam interfejs nazywa się FMC, znikło "S" od "static". Pozdrowienia, m.ki
Zdaje się, że pominąłeś deklarację typu elementu tablicy jako char, czyli są inty. Więc ten napis chyba tam jest, tylko litery będą oddzielone zerami. Spróbuj dodać tam char, np. static const char test[] = {...} Nie było żadnych ostrzeżeń kompilatora w tej linijce? Druga opcja jest taka, że linker wyrzuca tą tablicę ze względu na brak odwołań, ale wtedy...
[syntax=c]class Foo { public: static constexpr char *Name = const_cast<char*>("asdfg"); };[/syntax]
W stosie, który wykopałem ze źródeł mam: [syntax=c]STATIC USHORT usUtlCRC16GetTab( UBYTE ubIdx ) { USHORT usCRC16; USHORT usC; UBYTE i; usCRC16 = 0; usC = ( USHORT ) ubIdx; for( i = 0; i < 8; i++ ) { if( ( usCRC16 ^ usC ) & 0x0001 ) { usCRC16 = ( usCRC16 >> 1 ) ^ 0xA001U; } else { usCRC16 = usCRC16 >> 1; } usC = usC >> 1; }...
Chciałbym podzielić się swoim tworem... Ja jestem głęboko uczulony na zasłanianie standardowych identyfikatorów. Trochę to bronisz 'static', ale to nie jest dobra praktyka.
GrzegorzKostka Zadeklarowałem static volatile uint32_t get_counter poza przerwaniem (jako zmiennęglobalną). Ale jak widać na zdjęciu, rejest CCR1 = 0. Powinien mieć inną wartość niż zero.
buffer<<=18; można też rozumieć jako przesunięcie o 18 bitów :D bo docelowe dane nie znajduja się na początku ramik Tylko czy aby we właściwym kierunku? Funkcja TC_GetTC1() nie wykonuje konwersji tylko rzutowanie i moim zdaniem jest zbędna. Spróbuj tak buf w funkcji RD_AD() bo zmienne lokalne nie są domyślnie zerowane podczas deklaracji i mogą...
Sygnał REF_CLK powinien być generowany przez cały czas, gdy chcesz mieć aktywny interfejs Ethernet. Najpierw konfigurujesz układ MAC (zegary, typ interfejsu MII/RMII), następnie aktywujesz taktowanie PHY za pomocą REF_CLK. Gdy zamienisz kolejność (najpierw taktowanie PHY, później ustawiasz w STM interfejs MII/RMII) to program zawiesi się w pętli: [syntax=c]...
Bo lokalne są odkładane na stosie w trakcie działania programu. To co Ty próbujesz zrobić to wpisać zmienną lokalną w stałe miejsce w pamięci co nigdy nie występuje i jest to bez sensu :) Chyba, żeby była static, co też jest trochę bez sensu.
Witam Zaczynam się bawić z moim stm32 discovery i mam problem z konfiguracją przerwania. [syntax=c] #include "stm32f0xx.h" #define zapal GPIOC->BSRR|=(1<<9);//zapal diode #define zgas GPIOC->BSRR|=(1<<25);//zgas diode int main(void) { RCC->AHBENR |=(1<<19);//wlacz port C RCC->AHBENR |=(1<<17);//wlacz port A GPIOC->MODER...
Zacznij od opisania formatu danych. Po czym odbiorca ma poznać, że zakończono przesyłanie liczby? Tego ne napisałeś powyżej. Odbiór łatwo zrobisz w przerwaniu, pisząc obsługę przerwania w konwencji automatu. Najpierw poczytaj, co oznacza poprzednie zdanie. Potem możesz zacząć pisać automat. Potrzebne tylko dwa stany: - oczekiwanie na 'L' - skanowanie...
Napisane jest: Szukajcie, a znajdziecie. [url=http://www.st.com/st-web-ui/static/... Przyjemnej lektury :)
Czytam czytam. Potrafię odebrać 1 lub 2 bajty. Mam problem z odbiorem >2. Poniżej to co w dokumentacji: http://obrazki.elektroda.pl/6163417900_1... http://obrazki.elektroda.pl/8829802900_1... Czyli jeśli to rozumiem lub też nie, powinno to wyglądać tak? : 1. Czekam aż w data register się coś pojawi. 2. Pobieram zawartość...
A jeszcze takie pytanie. uruchomiłem jakąś wersje po "ulepszeniu" i zmieniłem konfigurację na: http://obrazki.elektroda.pl/6693818900_1... Tz że router próbował przydzielić adres 192.168.1.102 ?
Pisałem gdzieś jak się je włącza, na co Freddie napisał, że są funkcje w CMSIS, które z resztą na forum też już wklejałem. [syntax=c]/** * (at)brief Enable Interrupt in NVIC Interrupt Controller * * (at)param IRQn The positive number of the external interrupt to enable * * Enable a device specific interupt in the NVIC interrupt controller. * The interrupt...
Moze trochę nie w temacje, ale kolega Kaczor90 prosił o proste rozwiązanie dla debouncingu, a tu co niektórzy chyba popsują się swoimi umiejętnościami programistycznymi, przekombinowywując jak się tylko da. Prosty przykład obsługi przycisków z uwzględnieniem z możliwością określenia mininalnego czasu wciśnięcia przycisku: [syntax=c] #define BUTTON_DEBOUNCE_TIME...
Witam. Mam mały problem z I2C, otóż nie działa mi funkcja do odbierania danych przez DMA. Nadawanie chyba działa - nie mam jak tego sprawdzić. Pisane na podstawie http://www.st.com/st-web-ui/static/activ... oraz RM Działający kod na końcu.
Czasem Arduino do czegoś się przyda Dodano po 2 Możesz dać przykład takiej krytycznej czasowo operacji? Problem jest a raczej był związany z buforem nadawczym uarta. Mam funkcję: Blokuj tylko przerwania od UART.
Witam, cały dzień męczę się z obsługą przerwania od odbioru danych w STM32103RB. Korzystam z biblioteki HAL. Po całym dniu dalej nie wiem jak to ma wyglądać, dostępne example robione są w STM32CubeMX, a ja z tego nie korzystam. W dokumentacji chyba nie potrafię się poruszać bo nie wyiskałem z niej co po kolei trzeba wywoływać aby obsłużyć to przerwanie....
Witam. Wczoraj jeszcze debugowałem program i jeżeli się wysypuje to zawsze w startupie dokładnie /* Call static constructors */ bl __libc_init_array Zupełnie nie wiem co z tym zrobić ;/
Wspomniałeś jeszcze o bibliotece DSP od ST. Mógłbyś coś więcej o niej? Jak byś dysponował linkiem do najbardziej przyzwoitej wersji było by super. (Nie to, że nie chce mi się szukać ale wiadomo jak to się szuka na stronie ST, wyższa filozofia) No tak! Kto by pomyślał, że wystarczy podaną przeze mnie stronę przewinąć trochę w dół i ściągnąć: STM32F4DISCOVERY...
Witam. Szkole się w programowaniu zacnych STM32 i od razu na poczatku mam problem z funkcja printf(); Po wywołaniu tej funkcji procesor się zawiesza. Mam zrobiony proste nadawanie i odbieranie danych przez UART. Używam Keila MDK ARM V5 biblioteki HAL wygenerowane w STM32CUBEMX. Korzystam z płytki Kamami Zl27ARM. Na razie chcę uzyskać następujące efekty:...
Na moje oko to nie ma prawa działać poprawnie. W tym kodzie praktycznie wszystko jest źle. Funkcja callback jest wołana po odebraniu danych do bufora, wcześniej przekazanego przy wywołaniu Receive. Ty nie bierzesz danych z bufora, do którego zapisała je obsługa przerwania z HAL, za to kolejno wielokrotnie odczytujesz RDR, nie wiedząc, co właściwie z...
Po kilku godzinach program odpaliłem ..... podświetlanie się załącza dopiero po naciśnięciu kilka razy klawisza, monitor pokazuje start i numery naciśnietych klawiszy i to nie za każdym naciśnięciem. nie wiem jak "zatrzymać" dany ekran menu żeby zrealizować inna funkcje np; zmiana stanu wyjścia /* * sterownik który wykończy mnie i innych ..............
Witam Dlaczego przy włączeniu zasilania lub po resecie STM32 zawsze spełniony jest warunek mimo, że nigdzie nie jest wywoływana funkcja osSemaphoreRelease() ? [syntax=c]static void SemaphoreTest(void const * argument) { osSemaphoreId semaphore = (osSemaphoreId) argument; for(;;) { if (semaphore != NULL) { if (osSemaphoreWait(semaphore , 0) == osOK)...
Oczywiście, że można to zrobić bez użycia HAL, czy SPL. Kod, który tu przedstawiłeś wymaga bardzo wielu poprawek. Nie uważasz, że funkcja zapisu do pamięci jest zbyt skomplikowana? Długa na 88 linii, zawiera dziwne stałe typu: 1 << 14, 0xF3. Np co robi ta instrukcja: [syntax=c]FLASH->CR &= 0x1FFE;[/syntax], albo taka: [syntax=c]while(FLASH->SR...
Owszem wiec albo wyłączasz wywalanie nieużywanych, albo dodajesz atrybut USED. Nie działa bez referencji: static const uint8_t xTest[] __attribute__((used)) ="TESTPRJUUU"; Jak zrobię referencje to widzę to w pliku .bin
Witam, chciałbym zczytać dane z enkoderu, mam jeden podłączony do PB6 i PB7,a drugi do PB3 i PA15 i posiadam STM32f103RE Robisz coś bardzo dziwnego i niepojęcie skomplikowanego. A przerwania to już w ogóle nie wiem po co... Odkopałem swój projekt używający enkodera z początków pracy z STM32 - jeszcze stosowałem SPL. Inicjowanie to trzy instrukcje (ja...
Ludzie co wy z tymi kombinacjami?... Aby zrestartować transfer DMA w trybie M2M na F1xx wystarczy: - zapisać do CCR zero - wpisać 0xF przesunięte o ((nr_kanału-1)*4) do DMA->ICFR - zapisać do CNDTR ilosc transakcji - zapisać do CCR konfigurację jednocześnie ustawiając DMAEN ...i leci. Jak DMA skonczy, znajduje się w następującym stanie: - CCR !=0,...
Podłączenie programatora UART i wykonanie flash read nie zepsuje chipa, ale trzeba by było wlutować RX i TX aby poprawić ślady na płytce. Nie widzę żadnych padów programisty na płytce, twardo. Czy chcesz spróbować? zrobić zrzut oprogramowania bkWriter? Dzięki, spróbuję jak będę miał czas na rozłożenie rzeczy i podpięcie wszystkiego. Te zdjęcia zostały...
Bardzo wiele zostało już powiedziane (bardzo dobre porady). Moim zdaniem krokiem zero jest jako tako umieć programować w C na PC (jak przebiega proces kompilacji, kod źródłowy podzielony na pliki *.c i *.h, organizacja pamięci i wskaźniki, struktury i wskaźniki do nich, słowa kluczowe register, volatile, static, etc., preprocesor, makefiles i make,...
Ten adres nie jest prawidłowy w STM32. Flash zaczyna się od 0x8000000 Flash jest widoczny zarówno od 0 jak i od 0x8000000. W "dolnym" zakresie może być widoczne coś innego - np. RAM - zależnie od konfiguracji pinów BOOTx. To samo dotyczy nie zainicjalizowanego statica w funkcji. Niezainicjalizowana zmienna statyczna ma zawsze wartość 0. ZAWSZE. Jeśli...
No tak: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
Nie, nie poszło. Plik *.h to tylko nagłówek zawierający deklarację tej funkcji. Implementacja znajduje się w pliku resample.c. Całą bibliotekę można pobrać z: https://github.com/xiph/speexdsp http://www.speex.org/downloads/ Szczerze wątpię aby się udało to uruchomić na STM32. Edit: Samą bibliotekę (dla cortex-m4 z FPU) można skompilować za pomocą komend:...
ta płytka ma standardowy program do obsługi i teoretycznie można z niego obsłuztc karte ale ja niewiem jak ją zamontować [syntax=c]/*****************************... (c)*************************************... ** ** http://www.powermcu.com ** **--------------File Info------------------------------------...
Funkcja inicjalizująca wywołuje kilka innych, więc żeby po trochu nie wstawiać kodu, oto cały plik RC5_IR_Emul_Receiver.c : [syntax=c]/** ****************************************... * (at)file STM32F10x_RC5_Receiver_Lib/src/RC5_IR_Em... * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 03/16/2010...
Będzie czekać aż do następnego wywołania PendSV, który jest aktywowany przez SysTick. Można wymusić przełączenie tasków poprzez "ręczne" wymuszenie przerwania PendSV za pomocą makra [syntax=c]vPortYieldFromISR()[/syntax] lub wg takiego przykładu [syntax=c]X_ISR(void) { static portBASE_TYPE xHigherPriorityTaskWoken; xHigherPriorityTaskWoken = pdFALSE;...
(at)ElektrodaBot Dzień dobry, zmagam się z nietypowym problemem. Zepsuł mi się ostatnio moduł I2S2 MOD podłączony do stm32f407, który zawierał zarówno ADC jak i DAC działający po I2S. Kupiłem coś tańszego - jako ADC PCM1808, oraz jako DAC PCM5102. Wcześniej działałem na full-duplexie, teraz jestem zmuszony działać na half-duplexie. Napisałem prosty...
Według mmnie masz problem w innym miejscu i bo static tam nie jest potrzebny. Sam na to nie wpadłem, że przy tej zmiennej powinien być static. Ogólnie to były czasy FreeRTOSa w wersji 5.xxx (2007 rok) i do tej pory w necie krąży sporo przykładów z modyfikatorem static przy tej zmiennej. Rzeczywiście w obecnym projekcie nie używam już statica przy tej...
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...
już tak kombinowałem wcześniej, najpierw używałem samego void ale nie działało dlatego dopisałem static lecz też nie pomogło(jak widać nie mogło pomóc). Także z samym void również przechodzi mi do default_handler :( A czy jest różnica gdzie wstawię "SysTick_Config (7813);" ?
Witam serdecznie Kolegów! Aktualnie jestem w trakcie pisania gry typu labirynt z kulką na procesor ARM STM32F103VCT6. Wszystko mam pięknie i ładnie obsłużone (symulacja odbić od powierzchni płaskich, detekcja kontaktu z otworami) no ale zostało jeszcze najważniejsze - symulacja odbić kulki od kantów prostokąta. I tu niestety zaczynają się schody. Z...
Tak to jest jak się z tej ogłupiającej biblioteki korzysta. Zajrzałem do core_cm3.h , tam funkcja SysTick_Config(ticks) przyjmuje postać: static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk)...
Jak dodać do tego schematu optoizolację? Między procesorem a transeiverem? Tak, właśnie tam. Możesz użyć np. [url=http://www.analog.com/static/import... Digital Isolators. ADuM1200/ADuM1201
Okej, zatem spróbujmy przystosować bibliotekę, którą mi podlinkowałeś do moich ćwiczeń ;-) Skopiowałem pliki EVE.h, EVE_commands.c, EVE_commands.h, EVE_config.h, EVE_target.c, EVE_target.h do odpowiednich folderów w projekcie. Teraz tak: W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji. Jeśli dobrze myślę to mnie interesuje ta konfiguracja,tak?...
Witam ponownie, tym razem przynoszę inny problem...Mianowicie mój skromy program postanowiłem rozbić sobie na dwa pliki pierwszy cgD.h //cgD.h #include "cgD.h" extern __IO uint16_t delayCount; void ChangeD() { delayCount = delayCount + 1; } void EXTI9_5_IRQHandler(void) { EXTI_ClearITPendingBit(EXTI_Line8...
Ta nowa seria chyba jest mocniejsza - nucleo-144 http://www.st.com/st-web-ui/static/activ...
cpsid i cpsie to są (chyba) odpowiedniki __disable_irq() i __enable_irq(). W sumie w tych funkcjach jest tylko po jednej instrukcji asma, odpowiednio cpsie i cpsid. Reszta kodu o który pytasz: I jeśli chodzi o samą obsługę czujnika to w przerwaniu zewnętrznym z czujnika mam ustawiać jakąś flagę, a w pętli głównej po spełnieniu tej flagi wywoływać Twoją...
Na początku podziękuję za dobry tutorial. A teraz mam prośbę. Próbowałem odpalić przykład z biblioteki STM32_USB-FS-Device_Lib_V3.3.0 (Virtual_COM_Port). Po pewnych bojach udaje mi się wszystko skompilować, natomiast po uruchomieniu program staje w nieskończonej pętli w funkcji static void __Default_Handler(void) z pliku vector.c. Czyli w tym pliku...
Są też dla F4 z FSMC, niestety nie moge ich uruchomić gdyż przekraczają 32KB, ale za to przejrzałem ich kody i tu moje wątpliwości bo w pliku LCD_Conf.c umieszczone są kody funkcji do zapisu i odczytu rejestrów i pamięci wyświetlacza. Oto kod: stm32100e_eval_lcd.c który jest dołączony do tego pliku, w którym znajduje się funkcja STM32100E_LCD_Init()...
-> BlueDraco Ja to rozwiązałem jako prostą funkcję w postaci FSM, z static 'krokiem' i zmiennymi pomoczniczymi, typu 2 liczniki i CRC... Możesz zaprezentować to rozwiązanie? Ilość przyjętej wiedzy jest tak duża, że powoli się gubię w tym...
Znalazłem kod obsługi wyś 7-segmentowego, pozmieniałem rejestry pod swój mikro procesor (ATmega32). Tylko mam problem z linia " static const uint8_t __flash DIGITS To standardowy błąd eclipse i pluginu do AVR, nie wpływa ten błąd na kompilację, jedynie na "podkreślanie" składni w Eclipse. Rozwiązanie tego problemu znajdziesz m.in. w tym wątku: https://forum.atnel.pl/topic15543.html#p...
Zademonstruję Ci: Nowy projekt w Atollic for STM32: Bez modyfikowania skryptu linkera: https://obrazki.elektroda.pl/4714547300_... A teraz Twoje przezroczyste przypisanie: https://obrazki.elektroda.pl/8906289200_... Dopiero po dodaniu do skryptu linkera: https://obrazki.elektroda.pl/4995382700_...
Witam, Bawię się STM32 już od jakiegoś czasu ale właściwie nigdy nie potrzebowałem jakiś super prędkości. Teraz chciałem napisać prostą funkcję do sterowania WS2812b i natknąłem się na dziwny, moim zdaniem, problem. Pomimo, że Timery działają szybko to zwykłe przełączanie pinu (funkcja HAL_GPIO_WritePin) działa niemiłosiernie długo. Najprostszy program:...
Stawiam tezę, że to działa dokładnie tak jak projektant tego układu zaprojektował. Po włączeniu obu kanałów (normalnego i komplementarnego) możesz w obu z nich sterować polaryzacją. Niestety wyjście główne, wg mnie, jest nadrzędne w stosunku do komplementarnego. Po wyłączeniu wyjścia nadrzędnego, podrzędne przyjmuje stan przeciwny do tego jakie ma wyłączone...
Witam Uruchomiłem na STM32F107 stos LWIP korzystajacz z przykladu z ksiązki stm32 w sieci ethernet, natepnie dodałem serwer http z paczki contrib LWIP. Wygląda na to, że wszytsko dziła, pingi lecą, strony www sie ładują. Nastepnie uruchomiłęm bootloader ethernet z przykałdów od ST. Tak wyglądą start Dodano po 56 okazła sie że procerk ląduje w HardFault_Handler,...
A czy Static RAM można normalnie używać na 8 bit na 4 porty? Jak będziesz ręcznie sterować każdym pinem to oczywiście tak. - Ale czy to ma jakikolwiek sens poza edukacyjnym? Szczerze powiedziawszy - chcesz porządne LCD i więcej pamięci to zapomnij o ARV, tylko idź w 32bitowe procesory jak np STM32. Do UI np STM32U5 majacy 4MB FLASH (na rózne elementy...
Proszę bardzo: Program jest taki prosty testowy: #include "stm32f1xx_hal.h" int main(void) { HAL_Init(); while (1) { }; } A oto Build Log: Komunikaty występują przy kompilacji plików: - stm32f1xx_hal.c - stm32f1xx_hal_cortex.c - stm32f1xx_hal_flash.c - stm32f1xx_hal_gpio.c - stm32f1xx_hal_rcc.c ----------------Make...
le jeżeli utworzę tablicę globalną jak poniżej: static const uint8_t tablica Nie. Co zrobi kompilator tego nie wiesz, bo modyfikatory static i const nie służą określaniu położenia zmiennych, czy tablic w pamięci. const ci jedynie daje tyle, że próba modyfikacji takiej tablicy powinna zakończyć się błędem podczas kompilacji. Oczywiście w praktyce, na...
http://www.st.com/st-web-ui/static/activ...
Ok, dodałem funkcję LCD_SetWindow w lcd.c (a także na dole w lcd.h), przekopiowałem pliki lcd.c, lcd.h, char_font.c do projektu OV7225 (dostałem do kamery), wcześniej we wszystkich plikach pozamieniałem podłączenia GPIO na takie jak są na mojej płytce, dodałem te 3 pliki w projekcie OV7225 i spróbowałem odpalić. Niestety program nie chce przejść inicjalizacji...
Zmagam się z drobnym problemem. Chcę zmierzyć odległość czujnikiem i muszę zmierzyć czas od stanu wysokiego na wejściu do staniu wysokiego na wyjściu. Otóż chcę ustawić wyjście cyfrowe aby co jakiś czas był na nim stan wysoki, od tego momentu powinien naliczać się czas, aż do momentu pojawienia się stanu wysokiego na wejściu. Potem wartość tego czasu...
Dzięki za odpowiedź. Danych do kodu nie wstawię z powodów, które już podałem. Ale może znasz jakiś prostszy sposób, by użytkownik, nie mający pojęcia o przygotowaniu kodu dla mikrosterownika mógł w nim umieścić duże bloki swoich danych? Moje rozwiązanie dobrze się dotychczas sprawdza, ale chętnie poznam inne możliwości. Tak to wygląda dotychczas w pliku...
kiedyś wrzuciłem kod jak to się ustawia [syntax=c]void EXTI3_IRQHandler(void) __attribute__ ((interrupt)); void EXTI3_IRQHandler(){ //cuś EXTI->PR |= EXTI_PR_PR3; } static void ExtIInit(){ RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; AFIO->EXTICR[0] = AFIO_EXTICR1_EXTI3_PA; NVIC->ISER[0] = NVIC_ISER_SETENA_9; EXTI->IMR = EXTI_IMR_MR3; EXTI->FTSR = EXTI_FTSR_TR3;...
Cześć Od razu nadmienię, że jestem w tym początkujący. Posiadam mikrokontroler STM32F100C4T6B oraz moduł GY-50 L3G4200D. Próbuję nawiązać połączenie za pomocą interfejsu I2C i wyświetlić informację na komputerze kominukując się po UART, który na pewno działa. Jeżeli chodzi o połączenie to jestem na 99% pewny, że jest dobrze. Korzystam z programu STM32CubeMX...
Po każdym zapisie trzeba flash odczytać. Nie trzeba*. Jeśli masz na myśli PM0075 (2.3.3) to "Read the programmed value and verify" odnosi się tylko do weryfikacji i nie ma wpływu na programowanie, źle interpretujesz wspomniany rysunek. To samo masz w 2.3.4, na końcu masz "read & verify" po kasowaniu. Z tym odczytem chodzi tylko o to aby sprawdzić...
http://www.st.com/content/ccc/resource/t... lub znajdz funkcję static void low_level_init(struct netif *netif) i tam jest zdefiniowana tablica z adresem. Nazywa się róznie w zależności od wersji (bo to lokalna zmienna)
1. Mówimy o F103, nie o innych rodzinach. W tej rodzinie tak się składa, że te bity "są być prawidłowe" 2. Te symbole u8 i u32, to z którego standardu wziąłeś? Stare czasy SPL na STM32. Po prostu przywykłem do tego, i tak mi zostało. Imho zmienną w kodzie winno się tworzyć ad hoc, a nie wciskać shift minus, i jeszcze 't' na koniec. Zresztą, Qt również...
Masz racje z tym 36 The PLL configuration (selection of HSI oscillator divided by 2 or HSE oscillator for PLL input clock, and multiplication factor) must be done before enabling the PLL. Once the PLL enabled, these parameters cannot be changed. Może spróbuj funkcji Frediego: [syntax=c] static void flash_latency(uint32_t frequency) { uint32_t wait_states;...
Tak naprawdę to mogę zgadywać w czym piszesz i na co piszesz. Więc jeśli byłoby to na STM32F103 i używałbyś ST'mowego HAL'a to można filtrować jak poniżej [syntax=c] static void MX_CAN_Init(void) { (...) /* USER CODE BEGIN CAN_Init 2 */ CAN_FilterTypeDef filter = {0}; filter.FilterIdHigh = 0x008 << 5; filter.FilterIdLow = 0x201 << 5; filter.FilterMaskIdHigh...
Myślę że jak się pisze: CS_bb=0; to musi też gdzieś być: CS_bb=1; Moja komunikacja z MEMS-em po spi [SPL niestety]: [syntax=c]lis3dsh_register lis3dsh_read_register(lis3dsh_register addres) { lis3dsh_register buffer; addres|=(uint8_t)READWRITE_CMD; LIS3DSH_CS_LOW(); _lis3dsh_sendbyte(addres); buffer=_lis3dsh_sendbyte(DUMMY_BYTE); LIS3DSH_CS_HIGH();...
Cześć, Potrzebuję wykonać komunikację w 2 strony pomiędzy komputerem PC i mikrokontrolerem przez ethernet. Sprzętowo wybrałem stm32F103 oraz moduł z układem ECN28j60. Układ nie będzie włączony do żadnej sieci, będzie to połączenie punkt-punkt. Znalazłem biblioteki, dostosowałem pod swój mikrokontroler. https://github.com/xaionaro/stm32-enc28j... Generalnie...
Witam, Od razu przyznam ze jeśli chodzi o STM32 to jestem początkująca, także proszę o wyrozumiałość. Mój procesor to STM32F100RB – który mam na płytce ewaluacyjnej STM32-Discovery. main.c /* Includes ----------------------------------------... #include "stm32f10x_i2c.h" #include "stm32F10x.h" #include...
Witam! Tworzę projekt, który polegać ma na bezprzewodowym połączeniu STM32F303 Discovery i HC-05 z ELM327 (wersja bluetooth). Jestem bardzo początkujący, jeśli chodzi o programowanie a zależy mi na tym projekcie, dlatego postanowiłem zwrócić się o pomoc. Korzystam z STM32CubeMX oraz Eclipse z wbudowanym rozszerzeniem „System Workbench for STM32”....
Odwracasz kota ogonem. Nigdzie nie pisałem, że ta oszczędność do czegokolwiek jest potrzebna. Ale skoro autora to gnębi, to mu odpowiadamy. A poznanie kompilatora może kiedyś się przydać. Piszesz o asemblerze, modyfikatory typu const, static, inline po coś wymyślono. Dobrym nawykiem jest informować kompilator o swoich intencjach, a nie pisać byle się...
http://obrazki.elektroda.pl/4920112900_1... schemat wg. którego podłączam procka (zgodnie z [url=http://www.st.com/st-web-ui/static/... GND , VDD biorę z discovery (nie ze złacza CN3 tylko wyprowadzenia 3V i GND) , ze złącza CN3 - SWDIO , SWCLK , NRST . zrobiłem...
To co jest w tym pliku zip na pewno nie miga diodą (niczym innym zresztą tez nie) W pętli while jest następujący kod, którego brakło w paczce: [syntax=c] while (1) { /* USER CODE END WHILE */ HAL_Delay(1000); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); /* USER CODE BEGIN...
Jak mogę obsłużyć przerwanie tak, aby sygnał wykonywał się zadaną ilość impulsów. Np 10 impulsów i sygnał kończy gnerowanie Liczyć w przerwaniu do 10 i np wyłączyć je (znam dwa sposoby, przez NVIC lub wyłączyć timer). Można też w przerwaniu przestać robić to co robiłeś czyli "tachlować" GPIO i skończy się "gnerowanie" impulsów. Do liczenia użyj zmiennej...
Witam serdecznie, Ostatnio podczas wdrażania programu na stm32F051C napotkałem na problem. Mianowicie próbuję od jakiegoś czasu wygenerować przerwanie pochodzące z alarmu układu RTC, jednak mimo wielu prób jest to bezskuteczne. Cały układ RTC ruszył. Odczytywane były wartości sekund, oraz setnych. Widać było zmiany wartości jednak, mimo ustawionego...
Witam, przepraszam że nie odpisywałem ,ale musiałem zająć się chwilowo innym projektem. Ale wracając już do tego. Otóz właśnie nie do końca , trochu kolega źle zrozumiał mój poprzedni post ale to tylko dla tego że moja zdolność wypowiedzi w języku polskim jest tragiczna. Otóż już postaram się wytłumaczyć o co mi chodziło. Jeśli robię coś takiego( czyli...
Witam, Mam problem z nawiązaniem komunikacji między dwoma zestawami STM32F103ZET6+nRF24L01. Bazowałem na informacjach z tej strony: "[url=http://maniacbug.github.io/RF24Net... Ściągnąłem odpowiednie pliki z klasami RF24 i RF24Network, oraz klasą SPI(wykorzystywana przez poprzednie klasy), przerobiłem je pod STM32, po czym spróbowałem...
Witam ponownie, mam teraz niezwykłą zagadkę, tak więc posklejałem kawałek kodu który obsługuje USART + Ethernet - program polega jedynie na tym że jak odbierze jakąkolwiek ramkę Ethernetową to powiadomi o niej i wyśle przez RS-232 MAC address nadawcy i odbiorycy (przy czym tutaj kwestia estetyczna jest niedopracowana) - tak czy inaczej kod ten przetestowałem...
stm32 static library stm32 static inline static routing
neovo matryca schemat głowica tuner wgranie języka polskiego
silver monkey snowy reset canon mg5150
Command EAWCBT-Tuya with OpenBK: Step-by-Step Guide Nagrywanie obrazu z kamery na ESP32 na kartę SD i przesyłanie przez Wi-Fi