Pierwsza sprawa to nie widzę podłączenia ADC1 do APB2. Druga sprawa: DMA_InitStruct.DMA_MemoryBaseAddr = (uint32_t)&ADCVal; Czy ADCVal nie jest tablicą?
1. Jeśli kierunek ma wartość 0 to to przerwanie nigdy nie jest wykonane. 2. Używanie biblioteki SPL dla potencjalnie szybkiego sygnału mija się z celem. 3. Jeszcze bardziej z celem mija się używanie Exti dla enkodera skoro STM32 ma timery z wejściami enkoderowymi.
Czytałes errate?
Nie możesz jeden po drugim, bez żadnego czekania odczytywać czy wysyłać kolejnych bajtów przez I2C. Pomiędzy każdym wysłaniem lub odebraniem muszą być sprawdzane stosowne flagi wskazujące czy transmisja danego bajtu się już skończyła. Początek każdej transmisji musi zaczynać się warunkiem startu, a kończyć warunkiem stopu. Razem z adresem urządzenia...
To zmień na właściwą wartość. Wymagania masz w DS...
Że tak zapytam.. Takie ustawienie: [syntax=c] SCB->AIRCR=0x5FA0000|(3<<8); //skonfiguruj PRIGROUP na 4:4 [/syntax] Ustawia wszystkie 4 dostępne bity na preemption więc tak czy siak jest 16 grup priorytetów bez możliwości ustawienia podpriorytetów w grupach. A to nie na jedno wychodzi, co 16 priorytetów bez grup? W takim wypadku ten zapis: [syntax=c]...
Musisz jeszcze skasować flagę końca konwersji w rejestrze statusowym. Pisałem żebyś manuala poczytał! JEOC: Injected channel end of conversion This bit is set by hardware at the end of all injected group channel conversion. It is cleared by software. 0: Conversion is not complete 1: Conversion complete Tu jest troszkę inaczej niż w regularnych kanałach...
Pomijając sensowność używania sprintf do SKOPIOWANIA stringa do jakiejś zmiennej, to błędów jest bardzo dużo. 1. Skasowałeś stronę którą chcesz zapisywać? 2. Odblokowałeś zapis do flasha? 3. Twój zapis jest dziurawy, bo jak zero będzie na nieparzystej pozycji, to pętla nie zakończy się wtedy kiedy będziesz chciał 4. Odczytujesz FlashStatus, to sprawdź...
Już to kilka razy wrzucałem, ale u siebie mam tak: [syntax=C] io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain, 10M io_pin_cfg(SCL_GPIO, SCL_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SCL - alt output, open-drain, 10M...
Udało Ci się? Bo ja zaczynam się bawić CDC na STmie.
Jeżeli można wykorzystać poprzez USB wyniki mikrokontrolera to oczywiście jest ok. Tak będzie najwygodniej, bo taki kontroler od razu ogarnie Ci odczyt z HX i wyjście na zawory (po dodaniu jakiś przekaźników lub tranzystorów) PCety bez specjalistycznych kart takich wejścio wyjść nie mają. Możesz użyć różnych Arduino, które mają przelotkę usb-serial...
jednak z tego co wyczytałem w internecie SBUS to UART tx z odwróconą polaryzacją (dlaczego ?) Tak sobie Futaba wymyśliła i nic z tym się nie zrobi. Robiłem odczyt sbusa na Nucleo f446RE i zastosowałem inwerter na tranzystorze, bo tam raczej nie można odwrócić sygnału. Przed chwilą odpaliłem cubemx z Nucleo G491RE i tam w ustawieniach LPUART najprawdopodobniej...
Odczyt rejestru DR przez debugger jest odczytem, a więc resetuje flagę RXNE w rejestrze SR. Wyłącz podgląd rejestru DR to powinno być lepiej.
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...
Ponieważ PD2 nie da się skonfigurować jako UART5_TX to nie można zrealizować pół-automatycznego zegara. Pozostaje tylko działanie rdzenia lub przesłanie ciągu danych z użyciem DMA do GPIOD->BSRR dla PD2. Odczyt danych z PA15 będzie wtedy synchronicznie ze zmianą stanu pinu PD2. Obsługa w przerwaniu będzie kosztować trochę więcej, ale też jest możliwa....
Ale to jest temperatura rdzenia. Odczytać można ale ona nie oddaje temperatury otoczenia.
Sprawdzę w weekend i skonfiguruje tak samo jak w projekcie pod Stm32
skorzystam z STM32G0, który pracuje na 64 MHz i ma ciekawe peryferia i opcje takie jak np . DMA. To co dla Ciebie będzie ważniejsze, to ADC wykonujący pomiary, DAC zadający parametry i timer generujący PWM. Dedykowane dla takich zastosowań są STM32G4 i poprzednik - STM32F3, ale do tak prostego układu to STM32G0 wystarczy w zupełności. Tym bardziej,...
Znacznik EOC jest kasowany programowo lub przez odczyt rejestru ADC_DR, co jest opisane w p. 11.12.1 Reference Manual. Wygląda na to, że odczytanie danej z ADC przez DMA kasuje znacznik, nim Twój program zdąży zauważyć jego zmianę.
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_...
Dla enkoderów ze stykami mechanicznymi, jeśli nie podłączasz go do uC za pomocą prostego filtru RC, wykorzystywanie timera czy przerwań to ślepa uliczka. Z racji, że takie enkodery nie generują impulsów o dużej częstotliwości, to najlepiej zrealizować odczyt programowo, np. cyklicznie w systicku sprawdzać czy mamy stan wysoki przez minimalny czas i...
Ostatnia rzecz jaka przychodzi mi do głowy, to zabezpieczenie pamięci przed zapisem. Do odbezpieczenia może być konieczne ustawienie pinu WP w stan wysoki, po czym zapisanie do rejestru statusu (instrukcja WRSR) wartości 0x00 (cała pamięć odbezpieczona, brak zabezpieczenia rejestru statusu pinem WP) [zapis musi być poprzedzony przez WREN]. Innych firmwareowych...
Twardy orzech do zgryzienia
To moi nastenpny projekt. pokujowy termostat z mozhliwostiu controliowat kotciol. Ale mam problem neudaise mne znalest fraim kturi dae temperatua pokoju do kotla. Mozhe ktosc wie ? 1081198 1081199 Wtym projekte uzhyvam STM32 do nego wystarche tylkiu CAN driver i TFT display.
http://obrazki.elektroda.pl/7258579400_1... Witam. Chciałem dzisiaj przedstawić kolejny projekt z cyklu "inni mają - mam i ja" ;) Tym razem jest to miniaturowy sterownik ethernetowy - " uWebServer ". Układ zbudowany został w oparciu o mikrokontroler Cortex-M3 - STM32F103C8T6, do tego kontroler ethernetu "znany i lubiany" - ENC28J60. Całość...
https://obrazki.elektroda.pl/2479002500_... Cześć, W nawiązaniu do projektów : Stacja lutownicza RT PRO 3 (grot Weller RT) by Slawek K. https://www.elektroda.pl/rtvforum/topic3... Stacja lutownicza/rozlutownicza RT PRO 3 by Slawek K. https://www.elektroda.pl/rtvforum/topic3... zrobiłem kolejną wersję stacji lutowniczej,...
Cześć :) W związku z tym, że w miejscu w którym pracuję istnieje potrzeba programowania pamięci SPI których wsad jest taki sam, stwierdziłem że zbuduję urządzenie, które będzie kopiowało zawartość jednej kości do drugiej. Niby nic, ale z czasem chciałbym zająć się zawodowo projektowaniem oraz programowaniem mikrokontrolerów, więc jako pierwszy projekt...
STM32F10xxx I2C optimized examples AN2824
https://obrazki.elektroda.pl/8808596700_... Pokażę tu jak łatwo uruchomić MAX31855 z Arduino a potem omówię jego protokół komunikacji. MAX31855 oferuje 14-bitowy pomiar temperatury z zakresu zależnego od użytej sondy, od -270°C aż do 1800°C. MAX31855 oferuje prosty protokół komunikacji oparty o SPI, zasadniczo odczytujemy z niego tylko...
Witam, Zwracam się z prośbą o pomoc przy moim projekcie. Tematem projektu jest obsługa termometru DS18B20 poprzez interfejs USART pracujący w trybie half duplex z przerwaniami i buforem kołowym. Wyszukiwanie urządzeń na magistrali 1-Wire, odczyt co zadany interwał pomiarowy podawany w milisekundach. Wiem mniej więcej, jak obsługiwać ten termometr poprzez...
https://obrazki.elektroda.pl/3479042800_... Efektem nocnych dłubanin jest sterownik taśm RGB/RGBW. https://obrazki.elektroda.pl/6143799100_... https://obrazki.elektroda.pl/6487351400_... https://obrazki.elektroda.pl/8955729600_... Głównym przeznaczeniem jest sterowanie oświetleniem...
Próbował ktoś z was zablokować odczyt pamięci flash z poziomu programu ? Według not wpisanie do bitów 15-8 (RDP) rejestru FLASH_OPTCR dowolnego bajtu poza 0xaa 0xcc powoduje włączenie blokady odczytu, poziomu 1 zabezpieczeń. Z funkcji bibliotecznych można użyć funkcji FLASH_OB_RDPConfig(OB_RDP_Level_1); dodatkowo można zresetować urządzenie. Testowałem...
Flagę TXE powinno się sprawdzać PRZED wpisaniem czegoś do DR (to akurat nie jest wielkim problemem), ale przed odczytaniem DR powinno się sprawdzać czy flaga RXNE jest ustawiona - dopiero wtedy można odczytać to co jest w DR. Bez tego wciąż nie odczytujesz tego co chcesz - na etapie inicjalizacji odczyt masz praktycznie natychmiast po wpisaniu (bufor...
Kontroler flasha to nadal tylko peryferial memory-mapped, wiec SFR w ktorym ustawiasz protekcje niczym sie nie rozni od SFRów od np. SPI, i dokladnie tak samo mozna go zapisać przez SWD/JTAG . A to juz wprost odpowiedz na twoje pytanie. SWD/JTAG pozwala na rw dowolnego 32bitowego adresu w losowym momencie, niezaleznie od tego, czy rdzen wykonuje kod,...
[syntax=arduino] void loop() { // ------------------- jeszcze na LCD ... //-------------------- jeszcze 8 pomia... //-------------------- jakaś pamięc do... switch (key) ... } [/syntax] To Ci działa? Bo on chyba nie bardzo wie co to "key". Nie widzę ani deklaracji, ani żeby się cośtam wpisywało....
[syntax=c] int i; int suma_af = 0; const unsigned char * p = (const unsigned char *)&data for (i = 0; i < sizeof(my_type)l i++) { suma_af += p[i]; } [/syntax] Zakładam, że struktura jest upakowna ;)
https://obrazki.elektroda.pl/7157591100_... Wydawać się może, że na temat konwerterów USB napisano już wszystko i nic nowego się nie pojawi. Nic bardziej mylnego. Najczęściej stosowane są konwertery USB-UART. Mają one szereg wad odczuwalny zwłaszcza przy współpracy z AVR a co za tym idzie większością Arduino. Wykorzystanie UART stwarza...
Uart2 taktuję z APB1, dla którego ustawiłem taktowanie 45MHz za pomocą preskalerów. A do BRR wpisuję 45MHz/9600. Czyli wartość 4687. Profil zasilania sprawdzę, projekt napisany w System Workbench for STM32 Ten odczyt zmiennej WS dopiszę. Nie wiem czy dobrze cię zrozumiałem, ale uruchamiałem już usarta na HSI wpisując do BRR 16mhz/9600 i wszystko działało,...
Jak mogę podłączyć pamięć SRAM lub SDRAM (bardziej SDRAM bo większa pojemność) do mikrokontrolera STM32 lub jakiegoś AVR-a? Chodzi mi o zwykły zapis i odczyt danych z takiej pamięci. Jak to wygląda sprzętowo i programowo?
Czytałem o tym i faktycznie coś w tym jest, czyli podsumowując nie da się po prostu podłączyć kabelki TX RX jak w stm32 i jakimś flash downloaderem zgrać wsadu?
Flash loader demonstrator. Umożliwia ona m.in. zapis i odczyt pamięci programu mikrokontrolera STM32 przez bootloader poprzez USB Jak ustawić w/w program pokazano w 13 min [youtube]https://www.youtube.com/watch?v...
Całość kodu jest dość spora:) Czekam na flagę na pewno, ale nawet jeżeli nie, to zauważ że pomiędzy wywolaniami odczytu adc są spore odcinki czasu. Ano, zazwyczaj w takich sytuacjach używam volatile, tyle że wtym przypadku optymalizacja jest wyłączona. Program w zasadzie skończony, a zajmuje 20kB ze 128, więc optymalizacji nie właczałem. Dodano po 4...
Na wypadek, gdybyś nie zauważył: przy takich deklaracjach i treści procedury konfiguracji DMA, jakie masz obecnie, do rejestru adresu pamięci DMA wpisujesz wartość bajtową odczytaną z pamięci ze zmiennej TxBuf, rozszerzoną zerami do 32 bitów, czyli wysyłasz przez UART zawartość tablicy wektorów wyjątków.
Jeżeli AC by się zwiększał przy odczycie to zapewne taka informacja by się pojawiła.
Witam, mam pewien problem z magnetometrem na module mpu9255, otóż nie mogę pobrać żadnych wartości z magnetometru, kompletnie nic się nie dzieje. Najpierw kierowałem się dokumentacją, następnie znalazłem kilka przykładów, niestety żaden nie zadziałał. Poniżej wstawiam kod. Gdyby ktoś miał jakiś pomysł co jest nie tak to byłbym wdzięczny za radę. [syntax=c]...
pogoogluj pojecie "dzielnik napiecia"
Niemniej jednak zdziwiła mnie taka "dwukierunkowość". Pewnie wynika to ze schematu portu, który należałoby przeanalizować... OD (OC) "tak ma" - to normalne zachowanie w tej sytuacji. W AVR trzeba sztucznie robić OD w STM32 przeważnie taka opcja jest dostępna sprzętowo. Co do czasów, jak widzisz niezgodne są z tym co zaleca producent i działa z przypadku....
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...
Odkomentuj to: [syntax=c]// pulSrc = &_sidata; // // for(pulDest = &_sdata; pulDest < &_edata; ) // { // *(pulDest++) = *(pulSrc++); // } // // /* Zero fill the bss segment. */ // for(pulDest = &_sbss; pulDest < &_ebss; ) // { // *(pulDest++) = 0; // }[/syntax]
Witam Chcę zrobić zabezpieczenie prądowe na STM32 do zasilacza. W jaki sposób można to zrobić, aby szybko działało? Zakładam, że odczyt przez ADC jest zbyt powolny i trzeba to wykonać na komparatorze. Jeśliby użyć komparatora to w jaki sposób ustawia się na nim napięcia progowe w tym procesorze? Pozdrawiam.
odczyt stm32 odczyt flash stm32 stm32 zabezpieczenie odczyt
szlifierka parkside regulacja obrotów pojemnościowy czujnik wilgotności gleby wymiana kondensatorów zasilacz
manta led3204 zaworek zwrotny filtra paliwa
Thomson 65UC6406 Android TV Boot Loop – Where to Download Official Recovery Software Video DownloadHelper nie widzi innych ścieżek zapisu – Firefox, Chrome, Companion App, konfiguracja