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...
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ś?
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.
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...
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.
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...
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...
Programuję z wykorzystaniem AI ale i ona się już poddaje nie bardzo mam punkt zaczepu. Mianowicie zrobiłem captive portal aby z początku móc łatwo się podłączać do nowej sieci. Wszystko idzie dobrze dopóki w haśle wifi nie ma specjalnych znaków typu &%$^. Jak są ESP nie łączy się i przechodzi w znów w tryb uruchamiania portalu. Na początku okazało...
Dzięki za odpowiedź, dopiero mogłem do tego usiąść i coś pogrzebać. Skorzystałem z tego linku: https://obrazki.elektroda.pl/2068690200_... https://obrazki.elektroda.pl/2683163900_...
(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...
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 ..............
W platformIO nie ma niestety C011. Odnośnie odczytywania rejestrów, o ile dobrze zrobiłem to wszędzie zastosowałem takie coś: RCC->IOPENR |= RCC_IOPENR_GPIOAEN; // odczytano bit = 1 if(RCC->IOPENR & RCC_IOPENR_GPIOAEN){ status = 1; } else { status = 2; } status = 0; Zapisałem sobie w komentarzach wartość statusu i wszędzie...
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...
Spróbuj te zmienne zadeklarować jako static xHandleTaskLED1, xHandleTaskLED2, xLastFlashTime
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]...
Przez 40 s procek włącza się Chyba szybciej będzie przylutować proca na STM32 Zastanawiające jest to że jak włączę w confif.h #define CALIBRATION //comment out when not in use to kalibracja silników działa. Myślę, że tu jest rozwiązanie tylko nie bardzo wiem jak się do tego zabrać Clock init Starts from internal 8MHz oscillator and then uses its PLL...
[syntax=c]class Foo { public: static constexpr char *Name = const_cast<char*>("asdfg"); };[/syntax]
Witam, Próbuje skomunikować ze sobą STM32F4 z Arduino UNO po UARTcie. Skonfigurowałem UART1 i płytka komunikowała się bez problemu z Arduino. Lecz do mojego projektu potrzebna jest komunikacja przez UART2 (piny PA2-TX i PA3-RX), po skonfigurowaniu UART2 i podłączeniu do do Arduino nie mogę odczytać żadnych danych. Jeżeli podłącze UART1 z UART2 na płytce...
Poniewaz wszystkie wczesniejsze #define masz w warunku #if 0 #endif czyli niespelnionym. Zreszta w CubeIde powinienes miec to zaznaczone na szaro (wylaczone). A czy to nie powinno być zrobione tak, że ja powinienem zamienić #define EVE_EVE3_50G z linijki 119 na #define EVE_RVT35 zamiast linijki 104? https://obrazki.elektroda.pl/8326677800_...
Cześć, chciałbym debugować Hard Faulta w STM32 w ten sposób żeby mieć call stack w momencie jego wystąpienia. Czy ktoś robił coś podobnego? Niestety internet nie jest pomocny - skopiowany kod nie działa, tzn. są jakieś adresy z flasha, ale nie te które bym się spodziewał. Czy ma może to związek z tym że w Hard Fault używany jest inny stos niż podczas...
Kod: [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);...
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...
Witam, Ostatnio zacząłem przechodzić na mikrokontrolery STM32 i testowałem program zawarty poniżej. Licznik TIM2 zlicza w górę, drugi licznik generuje żądanie DMA od przepełnienia się licznika, wysyłając wartość licznika CNT TIM2 do tablicy, która jest inkrementowana. Powinienem otrzymać w tablicy wartości zwiększające się cyklicznie co tą samą wartość,...
Próbuje mierzyć częstotliwość sygnału wykorzystując przerwanie i Timer2 Napisałem taki oto kod przy pomocy CubeMX: 249992 Hz i niby ok. Jednak znalazłem kurs STM32 na FORBOT ( 249986 Hz. I teraz nie wiem czy prawidłowo należy skonfigurować timer do tego zadania tak jak zrobiłem czy tak jak w kursie?
W main.c czarów nie ma , bo stworzyłem nowy projekt golasa na potrzebę uproszczenia szukania problemu. Nie jestem programistą ani elektronikiem ,a do sprawy podchodzę hobbistycznie jako początkujący. Korzystam z System Workbenach for stm32 + Stm32CubeMX z bibliotekami HAL. Cube szykuje wszystko po czym ja tylko dodaję funkcję HAL_SYSTICK_Callback. plik...
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...
Witam, niestety muszę prosić o pomoc u podstaw, bo poległem. Problem jest taki: chciałem skompilować testowy program za pomocą arm-none-eabi-gcc z biblioteką CMSIS, bez żadnych eclipse, bez żadnych płytek rozwojowych - po prostu dioda podłączona do wyjścia procesora. Biblioteka chyba nie przewiduje bycia używanym przez arm-none-eabi-gcc więc: 1. utworzyłęm...
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”....
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, Nie bardzo wiem co robię źle w związku z czym zwracam się z prośbą o pomoc do szanownych Kolegów. Mianowicie mam taki oto prosty kod: [syntax=c] static int16_t count = 0; float dd = count * 1.0f; ... [/syntax] W chwili rzutowania procesor się zwiesza, tzn. nie przechodzi do wykonywania dalszego kodu. Oczywiście próbowałem również...
No dobra, zlituję się. Kod obsługi przerwania UART z wykrywaniem "OK", bez bufora, bez HAL, za to krótki i działający. Wcześniej trzeba zainicjować UART z przerwaniem RXNEIE - bez HAL 3 linie kodu. [syntax=c]volatile _Bool ok_det; void USARTx_IRQHandler(void) { if (USARTx->ISR & USART_ISR_RXNEIE) { uint8_t c = USARTx->RDR; static uint8_t wait4 = 'O';...
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...
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...
Przeczytaj dokładnie to co napisałem, Przeczytaj jeszcze raz dokładnie to, co napisałem - w swoim teście z postu #6 nie włączam wielokrotnie pliku nagłówkowego do różnych plików źródłowych. Gdybym tak zrobił tzn. włączył plik .h do więcej niż jednego pliku plik .c, a tylko w jednym z nich byłaby definicja funkcji statycznej, otrzymałbym następujące...
Nie mogę ogarnąć problemu swoim umysłem. Próbo odczytu rejestru WHO_AM_I = 0x0F na STM32G071RBTx daje zero https://obrazki.elektroda.pl/2872036300_... czyli źle. Na Arduino jest poprawnie https://obrazki.elektroda.pl/6309542200_... Przy odczycie rejestrów na STM32 mam zera, na Arduino ok. Sprawdzałem oscyloskopem efekty...
Witam Rozpoczynam zabawe z STM32 i napotkalem problem. Chodzi o uruchomienie USART2 i wyslanie znaku na terminal do PC. Rx i Tx mam podpiete do portu A PA2->Tx i PA3->Rx. Siedze z dokumentacja procesora ale jakos nie moge znalesc bledu w swoim kodzie. Moze co podpowiecie. Kompilator AtolicTruestudio Petla główna: [syntax=c] int main(void) { int...
po skoku do Aplikacji z Bootloadera pojawia się dziwne zachowanie: zaczyna się wykonywać kod main() który jest przerwany i widzę w debugerze wykonywanie konstruktorów obiektów globalnych. Możesz pokazać jak to wygląda w debuggerze? Te konstruktory wykonują się jakby z main() czy jakby z przerwania? W Bootloaderze przed skokiem, robię __disable_irq(),...
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 ?
[syntax=c]/* USER CODE BEGIN Header */ /** ****************************************... * (at)file : main.c * (at)brief : Main program body ****************************************... * (at)attention * * <h2>© Copyright (c) 2020 STMicroelectronics. * All rights reserved.</h2>...
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 Pracuje aktualnie nad obsługą diod WS2812 za pomocą mikrokontrolera stm32 (nucleo-f401re i stm32f0discovery). Komunikacja odbywa się za pomocą SPI z DMA. Problem w tym, że diody zachowują się praktycznie losowo. Zazwyczaj świecą się na biało. Nie jestem także w stanie kontrolować ich ilości. Poniżej udostępniam kod. https://obrazki.elektroda.pl/6687811200_...
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...
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;...
Tutaj masz kawałek kodu. Niestety jest on wyciągnięty z większej całości więc nie licz na to że zadziała copy-paste. [syntax=c] static int test_bus(const struct twi_soft_obj *sgio) { int sda, scl; sgio->w->cfg->scl_set(1); sgio->w->cfg->sda_set(1); twi_udelay(1); sda = sgio->w->cfg->sda_get(); scl = sgio->w->cfg->scl_get();...
kod w C z stm-a (bibliotek). U mnie działa. [syntax=c]//////////////////////////////... // // FUNCTION NAME : // CRC_CalcBlockCRC // // // FUNCTIONAL DESCRIPTION : // Calculate a CRC the same way as the STM32F10x hardware generator. // // // FORMAL INPUT PARAMETERS : // buffer - pointer to series of 32-bit words...
1. Przyjmij że kompilator działa jak należy i przekazuje parametry do funkcji poprawnie. Gdzie pokaż jeszcze wywołanie funkcji. Optymalizacja -O0 nie zawsze Ci pokaże wszystkie zmienne lokalne. Przy debugwaniu w takiej sytuacji lepiej -Og. Ale wtedy różnica w szybkości prgramu może być 2-3 krotna. Wywołanie: static uint8_t str[12]; float32_t...
Witam! Od jakiegoś czasu pracuję na stm32 - ucząc się o protokołach I2C współgrając z modułami magnetometru i ciśnieniomierza. Chciałbym dołączyć do tego moduł GPS jednak obsłużyć go przy pomocy UART'a. Sensor to NEO-7, wraz z podłączeniem zasilania GPS wysyła dane *żyje swoim życie*. Próbuję zrealizować to w następujący sposób i niestety nie wiem gdzie...
Witajcie, Potrzebuję zrealizować wizualizację danych o małej zmienności, które pochodzą z kilkunastu sensorów. Autorskie rozwiązania typu TFT+GUI+TP odrzuciłem ze względu na brak kompatybilności z różnymi systemami i dodatkowe koszty związane z opracowaniem sprzętu. Po analizie dostępnych rozwiązań padło na Domoticz + MySensors ze względu na możliwość...
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:...
static volatile DWORD Timer1, Timer2; z kolei DWORD to: typedef unsigned longDWORD; probowalem tez wpisywac dokladnie takie same wartosci ja Ty w Twojej funkcji i nic nie pomogło pozatym do obslugi przerwania ustawilem migajaca diodke, jesli sie nie myle od razu po wywolaniu funkcji: SysTick_Conf(); powinno to przerwanie sie generowac co 10ms a wogole...
stm32 static library stm32 static inline static routing
pikanie radia citroen wspomagać kierownica realtek audio control
siglent sprzedam radia samochodowe bazar
Zmiana czułości urządzenia S30: jak to zrobić? Oczko niezależne w analizie obwodów elektrycznych