IMHO - nie warto, bo są beznadziejne. W bardziej skomplikowanych kwestiach to jest parada wyrażeń typu if () { ... } else if () {...} else if () {...} ... . Warto pooglądać kod tej biblioteki, bo z optymalnością to on zbyt dużo nie ma wspólnego... Co kto woli... Do skonfigurowania i/o można napisać sobie baaaaaardzo proste makra, które zajmują o wiele...
Warto STM32.
Przeczytaj sobie np ten temat: http://www.elektroda.pl/rtvforum/topic17... Od siebie napiszę tylko tyle, że jak porównasz kody bez bilioteki ze źródłem biblioteki to zauważysz jedną rzecz: coś co często można zrobić w dwóch linijkach (konfiguracja) tam jest robione w dwustu. Jest tam mnóstwo niepotrzebnych obliczeń do sprawdzania jaki bit gdzie...
Zastanawiam się dlaczego w CMSIS nie zdefiniowano rejestrów OTG... Na razie czuję się jak R. Crusoe :) Pozdrawiam Cytat z dokumentu The library stands on top of the STM32F105/7 USB OTG peripheral low-level driver Nie rozumiem z czym masz problem. Jest biblioteka, jest dokumentacja nic tylko uzywac. Jak widac zaimplementowane sa tylko 2 najprostsze...
Znalazłem kurs ARM z Elektroniki praktycznej 2005-2007, od niego zacznę. Nie wiem czy to nie będzie kurs procesorów ARM7TDMI czyli poprzednika Cortex'ow z jakimi dzisiaj mamy do czynienia (STM32np.) Niedawno ktoś podawał ten link do przewodników Hitex'a: http://www.hitex.com/index.php?id=downlo... Jest tam taki również dla STM32. Dokładnie...
A więc działa. Gratulacje :) Docelowo chcę zrobić co innego: Muszę próbkować 4 kanały ADC1 w przemiataniu i wysyłać wartości po USART do komputera. Tylko, że kanał 4 DMA zajmuje się USART1 TX a kanał 1 ADC więc jeszcze nie mam pomysłu jak to połączyć. Kolizja DMA nie występuje, bo są różne kanały. Po prostu jeden poczeka na drugi. Jak najbardziej sensowne...
USART1->ISR &= ~USART_ISR_RXNE; To jest po pierwsze zbędne - flaga jest czyszczona automatycznie jeśli coś odczytasz - a po drugie błędne - do czyszczenia flag słłuży rejestr ICR, a nie ISR (który jest tylko do odczytu). Na pinie RX warto albo ustawić wewnętrzne podciąganie, albo zrobić podciąganie zewnętrzne.
Ustawiasz GPIO na "konfigurację" GPIO_CRx_CNF_IN_PULL_U_D_value, tymczasem powinieneś używać GPIO_CRx_MODE_CNF_IN_PULL_U_D_value.
Ja zaczynałem ogarnianie STM32CubeIDE między innymi od kanału Mateusza Salamona. Tu masz link jak przygotować projekt pod pisanie na rejestrach bez HAL. https://m.youtube.com/watch?v=ShCWoicHkK... Inne materiały też warto obejrzeć.
Nie ustawiłeś czasu samplowania. Z tego względu ma on wartość domyślną, wynoszącą 1.5 cyklu, która jest po prostu zbyt niska.
Panowie, co sądzicie o tej książce [url=http://www.margines.pl/index.php?uk... dla niewtajemniczonych w przykładach na mikrokontrolery STM32 i dodają moduł do testowania warto kupić ?
Wiem, że biblioteki SPL nie były zbyt dobre. Głównie korzystali z nich amatorzy, choć znam przypadki użycia ich komercyjne. Jak jest z bibliotekami HAL? Warto się w to pchać, lub inaczej czy firmy tego używają?
Czyli mamy do czynienia z dwiema warstwami nieświadomości. ;) Ta pierwsza to raczej warstwa bezmyślności [; A co do samej biblioteki to jej opis - np. fragment o tym kto jest odpowiedzialny za pamięć - świadczy o tym, że autor jeszcze nie polubił się z najnowszymi (i naprawdę bardzo fajnymi) nowościami ze standardu C++11, takimi jak std::unique_ptr...
No chyba musisz przeczytać tego tutoriala raz jeszcze, bo w końcowych rozdziałach napisane jest jak powinno się uruchamiać OpenOCD... Zasadniczo w twoim przypadku: openocd -f interface/parport.cfg -f target/stm32.cfg Na 99% bedzie konieczna zmiana jakichs wartosci w tych plikach konfiguracyjnych... 4\/3!!
tylko nie bardzo rozumiem po co :?: Bo nie można dzielić przez zero. Jeśli PSC wynosi 0, to dzielnik faktycznie ma wartość 1. No i dlatego trzeba to 1 odjąć od dzielnika jaki chcesz uzyskać, aby się zgadzało.
Zasilanie VBAT ma za zadanie podtrzymać zawartość segmentu pamięci BACKUP i umożliwia ciągłą pracę RTC. Żadne inne rejestry niż BACKUP SRAM oraz RTC nie zachowują wartości po wyłączeniu głównego zasilania. Rdzeń nie może pracować, gdy zasilanie jest tylko na VBAT; nie ma takiej możliwości. Co do schematu, to dławik na zasilaniu AVDD ma za dużą wartość....
Niestety nie ma poszczególnych flag dla poszczególnych zdarzeń timerów. A co z flagami z rejestrów TIMx_SR? Koniecznie muszę wystartować oba przebiegi w tym samym czasie. To czemu nie korzystasz z mechanizmu synchronizacji liczników? (patrz opis Starting 2 timers synchronously in response to an external trigger w RM) Pamiętaj, że rejestr preskalera...
He he, jakoś tak po przejrzeniu innych postów czułem że tak powiesz :-) Masz jakieś doświadczenie z USB na Cortex-M3? Może masz jakieś rady ogólne związane z tym tematem? Czy rzeczywiście roboty będzie "bardzo dużo", a może "mniej niż się na początku wydaje"?
Biblioteki?? jest jedna dla STM32 - SPL standard peripheral liblary, w to nie warto się pakować, choć wszystkie firmowe przykłady są na niej oparte, uniwersalne jtagi są, bo debugujesz rdzeń a on jest ten sam. OD discovery warto zacząć tanie z jtagiem. ARMów nie ma co się bać, polecałbym STM na początek, mają lepszą dokumentację wg mnie.
Z nowości warto zwrócić uwagę na: - serię G0 - nowe, elastyczne DMA, więcej nóg portów, mniej nóg zasilań - L4+ - 120 MHz, potężene pamięci, brak udziwnień z serii F4/F7 - L5 - poza nowymi mechanizmami bezpieczeństwa ARMv8-M mamy wysokowydajny rdzeń i spore pamięci, jak w L4 - L412 - miły i tani drobiażdżek w serii L4.
void main_VirtualComSendData(uint8_t *text) { char *temp = text; uint8_t nbytes = 0; while(*temp != 0) { Sama funkcja po stronie stm'a - nie wysyła danych jeśli pierwsza wartość w buforze to 0x00. Spróbuj zamiast obliczania długości ciągu znaków wartość tą przekazywać do funkcji main_VirtualComSendData.
Chyba niestety żadna. Stricte pod discovery nie ma żadnej, a "ogólne" o STM32 są w zasadzie przetłumaczonymi manualami od procka i od bibliotek STM. Czyli też nie warto w nie wchodzić.
Jak wspomniano - nie baw się w starocie 8051 typu AT89C2051. Ale nie polecam też zaczynać od AVR, naprawdę nie warto. Polecam zacząć od STM32. Możliwości jakie dają są przeogromne, AVR się do tego nie umywa. Owszem, na początku są trudniejsze, ale nie jakoś szczególnie - bez problemu dasz radę. Są też tańsze od AVR. Płytka STM Nucleo (coś podobnego...
STM32F4DISCOVERY i tę płytkę kupić? A te moduły co do tej płytki można dokupić to warto?
Po pierwsze, nie w żadnej pętli, tylko w przerwaniu timera, zgłaszanym z częstotliwością np. 2400 Hz Po drugie, w każdym przerwaniu timera należy: 1. W rejestrze GPIOD->CRL/CRH ustawić wszystkie używanie linie portu jako wejścia lub Analog. 2. Do rejestru ODR zapisać jedynkę na linii wyboru kolumny, zera na pozostałych. 3. Do rejestru CRL/CRH zapisać...
W grudniowej Elektronice praktycznej było o zastosowaniu kodeka Speex w odtwarzaniu komunikatów głosowych na mikrokontrolerach STM32. Myślę, że warto tym się zainteresować.
Witam, Jak w temacie. W jakich sytuacjach korzysta się z USB w stm32 na rzecz innych protokołów. Bo chce zrobić analizator logiczny do z debugowania i2c z stm'a i wysyłać dane do pc'ta. I idzie mi łatwiej o dziwo niż z I2C, ale im dalej w las tym temat wydaje się grubszy, także pytanie czy warto.
Podziałało! Dzięki :)
Prawdopodobnie o żaden konkretny tylko o samo porównanie. Prościej więc po prostu programowo sprawdzać ten warunek (w końcu wartości pewnie też będą generowane programowo). A co do Timera to faktycznie on tylko porównuje na równość (==). Więc na nim tego nie zrobisz.
RCC->APB2ENR=0x00000008; 0x00000008; - jak nazwać tą wartość, czy to nie jest adres rejestru? Nie, to jest wartość którą zapisujesz do rejestru który znajduję się pod adresem RCC->APB2ENR. GPIOB->CRH=0x33333333; LDR R0, =0x40010C04 LDR R1, =0x33333333 STR R1, Masz czarno na białym że wartośc 0x33333333 jest zapisywana do adresu 0x40010C04, czyli do...
z tego co pamiętam to piszesz "%#4x", tutaj masz opis: http://www.cplusplus.com/reference/cstdi... Czasami zdarza się że nie chcemy wykorzystywać printfa wbudowanego (jest bardzo kosztowny rozmiarowo z obsługą wszystkich flag). Wtedy warto napisać własną funkcję, a jest ona banalnie prosta.
Gratuluję pomysłu i jego realizacji. Bardzo fajny poradnik, głównie dla przesiadkowiczów. Tylko drobna uwaga - to co piszesz o AVR dotyczy tylko ATTiny i ATMega, nie dotyczy AVR XMEGA. Warto byłoby zaznaczyć na początku, że pisząc o AVR myślisz tylko o tych dwóch rodzinach.
Ale starocie odgrzebujesz. Masakra. O tych bibliotekach dawno już zapomniano..... Takie było dołączone do zestawu :) Może powinienem zainstalować nowe ? Używam Eclipse do AVR, więc czy jest gdzieś opisany sposób szybkiego zamontowania pod Eclipsa ? Czy warto ?
To jak powinienem to zapisać? Sądziłem, że dzięki temu operować będę tylko na tym jednym bicie, nie ruszając pozostałych. Robi to sumę logiczną. Powinienem zrobić zwykłe = ? Tak. Zamiast kombinować z BSRR możesz po prostu napisać: [syntax=c] GPIOB->ODR = (1U << amplituda) - 1; [/syntax] W końcu i tak za pomocą tego BSRR najpierw wystawiasz...
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...
Witam, Czy ktoś z was korzysta z tego wizarda konfigurującego (plik źródłowy STM32_Init.c dostępny w przykładach kodów programów dla płytki Keila MCBSTM32) niektóre z peryferi stm32? Co o nim myślicie ? z tego co patrzyłem nie korzysta on z bibliotek standardowych STMa a, ustawiane jest wszystko na rejestrach.
Było to 0xFFFFFFFF albo 0x00000000 (dokładnie nie pamiętam) z szumem pojedynczych bitów. Marne szanse na przypadkowe trafienie, zwłaszcza gdy się odpowiednio dobierze wartości i sprawdza więcej jak jedną komórkę.
Tu nie chodzi o automat tylko o injected channels, tylko dla nich flagę trzeba kasować. Spróbuj jeszcze osobno - najpierw ustaw CONT, a potem dopiero ADON a nie obydwa na raz, chociaż nie powinno to mieć znaczenia bo w tryb auto powinien się przestawić też po ustawieniu JSW_START. Spróbować warto. Jak nie zadziała, to ja jutro spróbuje u mnie to odpalić.
E-mail z dzisiaj: "Jednocześnie informujemy o kolejnym konkursie dla osób, które wygrały zestawy STM32F0Discovery lub posiadają inne zestawy z mikrokontrolerami STM32. W dniu 15.10.2012 na stronie www.STM32.eu zostanie ogłoszony konkurs na projekt wykonany na którymś z mikrokontrolerów STM32 z pulą nagród o łącznej wartości 10000 PLN brutto. Zapraszamy...
albo terminal i 1>N1 - kiedy SMART kłóci się z wynikami skanu, pierwszeństwo należy dać wynikom skanu. Wyczyszczenie SMARTu może usunąć błędy jego zawartości, a dalsza obserwacja pozwoli stwierdzić, czy te wartości przyrastają, czy nie.
HSI nie ma nic wspólnego z kwarcem bo jest wewnętrznym generatorem. Wpisz do SysTick->LOAD wartość SYSCLK_FREQ, stan wyjścia powinien zmieniać się co 1s czyli 0,5Hz. Może problem jest z tym analizatorem?
Plik istnieje ale naprawdę nie warto go szukać :)
Skąd wziąłeś pomysł na wstawki z FLASH->ACR? Czytam RM0401 Jest dedykowany do tego rozdział: 3.4.1 Relation between CPU clock frequency and Flash memory read time Latency zależy od częstotliwości taktowania oraz napięcia zasilania, tak w skrócie. Co do ustawień zegara dla STM32 to warto zapamiętać sobie schemat działania, który wynika bezpośrednio...
Gdybym został przy cortexie też bym miał 18 plików, ale mniej by to dziwiło. Argumenty typu "w projekcie z AVR powinno być mniej plików źródłowych niż w projekcie np. z STM32" są równie sensowne, jak argumenty typu, że "płytki z AVR powinny być mniejsze niż te z STM32".
A wystarczyłoby nie kombinować z bitband i zapisać w pojedynczej operacji zapisu wartość 10, która spowodowałaby wyzerowanie TYLKO pierwszego od prawej znacznika... Ewentualnie ustawiłaby bit po lewej stronie ;)
Czy w procesorach STM32 wiekszość rozkazów wykonuje się w 1 cyklu zegarowym? Nie wszystkie. Jeśli chcesz mieć bardzo dokładnie oszacowany czas w cyklach to musisz zdeasemblować program, zajrzeć do dokumentacji, żeby sprawdzić ile czasu się wykonuje jeden rozkaz i sprawdzać rozkaz po rozkazie. Jak zależy Ci na prędkości i oszczędności co do rozkazu,...
Witam Mam problem ze zmianą czasu w STM32F0Discovery. Konfiguracja i inicjalizacja modułu jest dobrze wykonana - w debugerze zlicza sekundy, ustawia flagi itd. Problemy zaczynają się gdy chcę załadować do rejestru czasu TR i daty DR aktualny czas. Podczas pracy krokowej wszystko idzie ładnie - flagi się ustawiają, rejestr ładuje i wartości się zmieniają....
Czy w CubeMX istnieje możliwość zmiany procesora jak wcześniej już był zrobiony projekt pod inny? Tak. Istnieje taka możliwość. Tworzysz nowy, pusty projekt na nowy uC, a następnie importujesz ten stary. Warto próbować automatycznie, wyświetli wtedy różnice z ostrzeżeniami. Jeżeli automat zawiedzie, to można ręcznie importować. Nie ma większego problemu...
char *s = 0; sprintf_(s,"Moj stryj ma %d lat",liczba);//przykladowy tekst Przecież sprintf nie przydziela dynamicznie pamięci - jeśli wywołasz tą funkcję w ten sposób, to sprintf_() zaczyna pisać pod adresem 0 (aktualna wartość wskaźnika i koniec. Do tej funkcji musisz podać prawidłowy bufor, który pomieści cały text wynikowy. Zadeklaruj...
Ok Freddie Chopin Zmiennej nie można podejrzeć, ale jak to zmienną z przerwanie przepisze w funkcji main do lokalnej zmienne, to wówczas chyba mogę zobaczyć? http://obrazki.elektroda.pl/8438599500_1...
Witam Spróbuj włączyć zegar według poniższego (w Twoim kodzie nic podobnego nie widziałem) ========================================... * How to use this driver * ========================================... * * 1. Enable peripheral clock using the following functions * RCC_APB2PeriphClockCmd(RCC_APB2Periph_SP...
Przetwornika nie ustawiasz, bo to nie jego rola. Możesz to zrobić na zylion sposobów. 1. Ustaw sobie alarm w zegarze RTC - i jak dostaniesz przerwanie to inicjuj konwersję. 2. Ustaw sobie wakeup timer w RTC i jak wyżej. 3. Sprawdzaj jakiś licznik zmieniany np. SysTick - jak jego wartość będzie większa niż poprzednia plus 600000 to inicjuj konwersję....
Witam, Wg manual'a do procesora Cortex M3 jeśli się zmienia kod programu lub/i tablicę wektorów przerwań, to przed następną instrukcją powinno się użyć instrukcji ISB, DSB i DMB aby bufory załadowały nowe wartości.
Powiedzmy otwarcie, że o gustach się nie dyskutuje, co jest w użyciu przyjemniejsze. AVR są na pewno dużo prostsze niż ARM (prostsze znaczy także uboższe w możliwości), a czy to zaleta czy wada przy nauce od zera? Moim zdaniem zaleta. Sam chyba przyznasz, że jeśli ktoś szkoli się na mechanika (skoro już wchodzimy w tematy samochodów) to łatwiej zacząć...
W pliku linkera zastąp to co masz tam tymi wartościami /* Highest address of the user mode stack */ _estack = 0x20002800; /* end of RAM */ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0x200; /* required amount of heap */ _Min_Stack_Size = 0x400; /* required amount of stack */ /* Specify the memory areas */ MEMORY...
A co mniejsze STM32 nie mają DAC-a Ale nie ma powodu używania DAC'a :) Ten projekt z Arduino używa zwykłego PWM, a jakość dźwięku jest wręcz zaskakująca. Ciekawi mnie, jak wygląda kompatybilność tej biblioteki z STM32 (zapewne nijak). Może warto poszukać czy ktoś nie zrobił już podobnej na STM32, bo faktycznie STM znacznie sprawniej poradziłby sobie...
Witam kolegów, Projektuję układ z mikrokontrolerem STM32F030K6T6 i muszę jakoś podciągnąć BOOT0. Z tego co wiem to żeby programować szeregowo - musi być ustawiony BOOT na bootloader (jak się mylę prosze mnie poprawić) czyli: BOOT0 = 1 natomiast BOOT1 = 0. W układzie nie ma BOOT1 a wszystkie informacje jakie znalazłem dotyczą właśnie pary pinów a nie...
To nie tak z tym AF. GPIO ma dwa rejestry AFRL i AFRH, które ST wymyśliło sobie zrobić w dwuelementowej tablicy (AFR Warto też zaglądać do pliku stm32f4xx.h, żeby dokładnie zobaczyć jak oni to podefiniowali - bo czasami manual swoje, a tam swoje :-)
Wybrałeś stary uC, archaiczne i martwe środowisko, a do tego chcesz pisać jak na AVR. To jest trochę inaczej. Jeżeli chcesz mieć zewnętrzny kwarc, to podłączasz go to wyprowadzeń HSE, włączasz generator, czekasz aż będzie gotowy i przełączasz taktowanie. Standardem w wielu aplikacjach i płytach rozwojowych jest 8 MHz, czasami 25 MHz. 12 MHz jeszcze...
No to jeszcze musisz powysylac coś aby odebrać. Odbieranie w śpi wymaga wysyłania w tym samym czasie aby master podał zegar. Generalnie dobrze jest coś przeczytać o peryferium, którego używamy Autor tematu użył funkcji która także zapewnia jednoczesny odczyt danych z SPI. chciałem początkowo odczytać informacje z rejestu WHO_AM_I ktory posiada adres...
Kolego, może znajdziesz coś w kursie forbota: https://forbot.pl/blog/kurs-stm32-f4-9-o... tam jest parę przykładów z użyciem biblioteki HAL. Nie wiem czy korzystałeś z tego, ale jak nie to warto zajrzeć. Pozdrawiam
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...
Pytanie, czy wcześniejsze ustawienie pinu MISO w tryb push-pull nie spowodowało uszkodzenia wyjścia w żyroskopie, gdy ten chciał coś nadać? Może warto sprawdzić choćby multimetrem czy cokolwiek tam się pojawia.
Dlaczego masz zakomentowany fragment: [syntax=c]//ADC_InitStructure.ADC_Contin... = ENABLE;[/syntax] Nie lepiej dać tam wartość DISABLE?
Dodałem tylko twój makefile i poedytowałem na różne sposoby ścieżki, ale cały czas krzyczy, że brakuje plików nagłówkowych. No to może warto by było podać ścieżki do tych plików? ;) Properties -> C/C++ General -> Paths and Symbols Dalej już samodzielnie.
Przerwanie od RTC Alarm wybudza układ, w ISR odbywa się reset RTC, pojedynczy pomiar ADC i wysłanie paczki danych po 2,4 GHz, a na końcu ISR układ wraca do trybu STOP. Program po włączeniu zasilania juz nie wraca do main(). Czy to złe rozwiązanie? Złe nie, ale w tym przypadku warto zastanowić się nad uzyciem bitu SLEEPONEXIT w NVICu (poszukaj sobie...
Ja z kolei z przejściówkami firmy Profillic (PLxxxx) mam niezbyt miłe doświadczenia. Może są i tańsze od FTDI, ale działają czasami jak chcą, a raczej jak nie chcą to nie działają za dobrze (zawiasy itp.). Ja osobiście mam przejściówkę FT232RL z wszystkimi wyprowadzeniami na DIP i jak chcę to przełączam sobie zworką między 3,3V, 5V lub napięciem podanym...
(at)karol75 Podaj również jaką architekturę używasz bo między armv6-m a armv7-m, jest sporo różnic. Procesor to STM32F429 na płytce Disc STM32F429I Co do pól bitowych to mam Je odbierać i wysyłać więc nie mam wyboru. Chciałem ułatwić rzycie osobie która nie jest programistą w składanie ramki do wysłania. Całość wygląda tak, że 32 bity muszę podzielić...
Witam, Czy ktoś się spotkał z takim zagadnieniem: Debugowanie działa poprawnie w przypadku wartości we FLASH zawartość pokazywana jest poprawnie a w przypadku zmiennych w RAM pokazuje zwykle wartości 0 jak dam komendę "info mem" w konsoli debugera to wg mnie nie pokazuje poprawnych danych: info mem Using memory regions provided by the target. Num Enb...
na stale nie ustawiasz bo zmiana z 1 na 0 jest poczatkiem transmisji. To masz coś nachrzanione. Ta inicjalizacja działa na 100%. Podejrzewam że źle skonfigurowany SPI. Spróbuj programowo. [syntax=c] void SoftLcdWriteCommand(int32_t d) { register int32_t i; //CS_ = 0; //A0_ = 0; __RESET_BIT(CS_PORT,CS_); //CS_PORT -> BSRR = RST_BIT(CS_); __RESET_BIT(A0_PORT,A0_);...
Zwiększałem wartość bufora za pomocą parametru "ReadBufferSize" na 10000 (domyślnie jest chyba 4096) i bez zmian. Zwiększyłem również "ReceivedBytesThreshold" na 10 oraz 100, by rzadziej wywoływać event od odebrania danych. Myślałem, że to może metoda Invoke oraz synchronizacja wątku Serial Port z GUI jest tu słabą stroną komunikacji, która pożera czas...
Wpisz w wyszukiwarkę "voltage level translation circuit" i masz pełno schematów. Takie translatorki można kupić za grosze na portalach aukcyjnych. Oczywiście nie opłaca się zamówić samego tylko nabyć przy okazji większych zakupów. Prawie wszystkie bazują na [url=https://learn.sparkfun.com/tutorial...
Mnie tym razem forma i treści od Kolegi Piotra nie satysfakcjonuje - szczególnie w kontekście innych wpisów na elektrodzie. Nie mogę zrozumieć czemu ta prezentacja miałaby służyć. Brakuje ewidentnie konkretnych walorów edukacyjnych, na pewno dla takiego amatora jak ja, być może jest to dobra inspiracja zaawansowanych użytkowników, ale szczerze wątpię....
Wzrost tej wartości świadczy o problemach z mechaniką dysku. Ewentualnie problemy z zasilaniem dysku.
Odpowiedź na Twoje pytanie jest trywialnie prosta. Rejestry które są buforowane (ARR, PSC i chyba jeszcze jakieś) aktualizują swój realny stan w momencie update'u, który występuje automatycznie w momencie przekręcenia licznika, czyli (w uproszczeniu) doliczenia do ARR. Ty w swoim wyjątkowo dziwnym kodzie fizycznie uniemożliwiasz wystąpienie update'u,...
Niektóre narzędzia pozostawiają wiele do życzenia. Można mieć setki opcji, ale jeśli te opcje nie są opisane, albo opisane lakonicznie, bo narzędzie nie pozwala na obszerny komentarz, to tak naprawdę niczego to nie ułatwia. Trzeba się domyślać co autor miał na myśli, albo szukać gdzieś w zewnętrznej dokumentacji, jeśli w ogóle ona istnieje. Jeszcze...
W tym przypadku raczej bez znaczenia. Dla świętego spokoju lub własnych badań możesz zaplanować układ tak aby był dzielnik->wtórnik->dzielnik z czego jeden z dzielników w podstawowym wykonaniu będzie miał tylko "górny" rezystor o niskiej wartości. Dzięki takiej topologii będziesz mógł sprawdzić kilka rozwiązań.
Nie chcę za mocno krytykować, ale płytka jak była chaotyczna tak jest. Sam mam często lenia a przy płytkach jednostronnych procent połączeń stawiam na pierwszym miejscu, ale tu jest tylko kilka elementów i można to sensowniej ułożyć w parę chwil. Zerknąłem na schematy olimexu czy ETT które traktowałem jako wzorcowe - przy liniach D+/D- są dodatkowo...
Witam, chcę wykorzystać graficzny wyświetlacz 128x64 z interfejsem równoległym zgodnym z Motorola 6800 i w związku z tym mam pytanie czy ktoś wie coś na temat takowego interfejsu w STM32? Oprócz informacji, że wybrane mikrokontrolery z tej rodziny wyposażone są taki interfejs nie znalazłem nic ciekawego. Wyświetlacz może komunikować się także przez...
Pulse powinno robić robotę. Jednakże widzę dwie rzeczy które wydają się śliskie. Pierwsza to brak ptaka przy "internal clock" - jak więc timer jest taktowany? Druga: Fast Mode Enabled - coś mi się niejasno kojarzy (dawno o tym czytałem i pobieżnie), że ten tryb jakoś wpływa (ale nie pamiętam jak :-D) na sposób wyzwalania więc warto by o tym poczytać w...
Podczas kolejnego dnia walki orżnąłem kod praktycznie ze wszystkiego. Doprowadziłem do sytuacji odwrotnej - by działał 2 kanał PWM dla TIM1 należy zainicjalizować TIM3! W dodatku, zmiana wartości delay() w main również powoduje zaprzestanie działania PWM (podobnie jak wyłączenie TIM3). Kompletnie nie wiem, co robię źle. Wymieniłem już nawet uC na egzemplarz...
Potwierdzam - nie warto się przywiązywać do jednego producenta / jednego typu mikrokontrolera. Ale na początek warto wybrać mikrokontrolery które są najbardziej popularne (przykładowo STM32 / ESP) - dlatego, że najłatwiej znaleźć materiały do nauki :) STM32F411 jest jak najbardziej dobrym wyborem. Jeśli chcesz konkretów, proszę bardzo. Pracowałem w...
Tak jak pisałem, zmieniłem tylko niepotrzebny zapis: I naprawdę nie widzisz, że czas dalej jest modyfikowany, tyle że obecnie jakąś losową wartością? HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) ?
teraz tylko czy warto dopłacać ~50zł do STM32 i chyba trochę czytelniejszego wyświetlacza? bo gdzieś wyczytałem, że lepiej brać KSGER'a niż Quicko stąd moje wahanie.
By jednak się definitywnie upewnić czy niedziałanie programu wynika z zatrzaśnięcia stanu wysokiego z pinu BOOT0 podczas resetu, moim zdaniem warto by było, do egzemplarza płytki, który nie działa, spróbować "zagadać" z programu "STM32 Flash loader demonstrator" poprzez USART1, Jeśli Boot0 jest w stanie wysokim to ważne jest w jakim stanie jest Boot1,...
Ciężko odpowiedzieć na tak zadane pytanie. To tak jakbyś zapytał jak sprawdzić wartość jakiejś komórki pamięci RAM (czyli powiedzmy jakąś zmienną). No po prostu odczytując ją :D Tak samo różne opcje zabezpieczeń. One są zapisane w pamięci, tyle że FLASH. Żeby je sprawdzić to trzeba je odczytać. No inaczej się nie na napisać. Ale mała podpowiedz: Option...
Wystarczy że w funkcji wyświetlania tekstu nie będziesz modyfikował wejściowego stringa. Czyli np. tak: if(*text == '(at)') Wyswietl(0);
Też zdziwiłem się wartościami, szczególnie że zostały wykonane przez taką dużą firmę. Sam bufor jaką będzie mieć konsumpcję energii ? W przypadku samego dzielnika (najprostsze rozwiązanie) jakie mogą być największe rezystory, które nie wchłoną zbyt dużo energii ? Jak pisałem pomiar co 20ms.
Wiem, że to co teraz robię nie jest stosowne ale chciałbym wrzucić Video z debuggowania, podczas którego przy wyłączonej optymalizacji widać jak program wskakując do "if" omija intrukcje tam zawarte. Zaraz spróbuję zrobić to samo tylko ze strukturą switch. PS. Wcześniej się pomylilem, cały czas mowa o rejestrze CRH.
Różnica nie polega na zamianie miejscami movs i strh, tylko na tym, że w jednym kodzie zapis jest wykonywany _PRZED_ ustawieniem bitu PG w rejestrze CR (to jest to "str r3, [r5, #16]"), a w drugim _PO_. Bez "volatile" kompilator może sobie przestawić ten zapis gdzie mu się podoba, natomiast w odwrotnym przypadku zostanie on wykonany w takiej kolejności...
No sam napisałeś, że debuggowanie jest lekko problematyczne. Ja po prostu naciskam F5 w IDE i debuggowanie sie odpala. Przy dużym projekcje jak setki razy odpala się to debuggowanie to warto poświęcić kilka godzin na takie coś.
Możesz rozwinąć tą myśl? Nie zmieniaj adresu z domyślnej wartości 0x8000000 na 0 lub cokolwiek innego.
Sprawdziłem wartość rejestru. Po odebraniu bezpośrednio ładuję na USART, efekt - wartość rejestru się nie zmienia. To duża podpowiedź, bo błąd tkwi w SPI albo w rygorach czasu. Dodano po 1 Tak, tak, wiem. SysClock jest ustawiony na 8Mhz. PLL = 24MHz. Dodano po 1 UWAGA! UWAGA! Problem rozwiązany. Okazało się, że zakupiony MPX6675 ze sklepu bot****.com...
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ą...
Jak to "nie ma ujemnych wartości"? Przecież przy zejściu poniżej 0 masz, jak to sam napisałeś, -1, trzeba tylko umieć to odczytać przez odpowiednie zrzutowanie typów - (int16_t)
Moze inaczej: pokaz rozbiegowke twojego mikrokontrolera i inity (gdzie, jakie, i w jakiej kolejnosci) Mnie zdarzyl sie kiedys efekt, że procesor nie wstawał po podaniu zasilania, a dopiero po zresetowaniu go z przycisku - i przypał był w kodzie. Istnieje jakieśtam prawdopodobienstwo, ze u ciebie moze byc podobnie. Najlepiej by bylo gdybys dysponował...
Na razie tylko obserwuję temat. Posiadam GD32, ale na razie brak czasu na testy. Z tego co się orientuję, to w większości przypadków binarka skompilowana pod STM32 powinna działać na chińskim zamienniku. W końcu te układy po to przejęły system nazewnictwa z STM32. Ew. zmiany i udoskonalenia są myślę zaimplementowane w sposób "niekolizyjny" np. wykorzystując...
Po kilkunastogodzinnych zmaganiach z wyrzucaniem programu do Default Handler Dzieje się to dlatego, że: 1. modyfikujesz stos, choć nie informujesz o tym kompilatora w sekcji "clobber" Twoich dyrektyw, 2. zostawiasz stos niewyrównany do 8 (na niektórych rdzeniach to nie jest problem, w sumie z STM32 domyślnie to jest problem chyba tylko na F1). Efekt...
A skoro obsługujesz nadawanie z bufora. Zapewne warto sprawdzić czy przerwanie od TXE jest włączone.
Czyli potwierdza się to, że wina leży po stronie modułu peryferiów, która jest przeznaczona dla STM32F103 i nie jest w pełni kompatybilna ze 107. Tak jak pisałem mieli to naprawić ale im to nie wychodzi już ładnych parę lat (z ponad dwa). Odnośnie "podglądu" wartości zegarów jest fajna funkcja w bibliotece StdPeriph, jestem świadom, że wszyscy (duża...
stm32 cubemx warto solaredge warto alton warto
piekarnik bezpiecznik separator filtr magnetyczny prostowniki rtęciowe
Toyota Auris 2.0 D4D SCV nie spuszcza ciśnienia, błąd check engine, zawór regulacji ciśnienia Toyota Auris 2.0 D-4D 2009 – check engine po wymianie czujnika i listwy, zawór SCV/DRV nie upuszcza ciśnienia