W pliku stm32f10x.h jest to trochę inaczej niż w dokumentacji. Np. dla PSRAM1 - rejestr BCR1 odpowiada: [syntax=c]FSMC_Bank1->BTCR[0][/syntax] - rejestr BTR1 odpowiada: [syntax=c]FSMC_Bank1->BTCR[1][/syntax] - rejestr BWTR1 odpowiada: [syntax=c]FSMC_Bank1E->BWTR[0][/syntax] Według tego powyżej mam ustawiony LCD i zewnętrzny RAM i działa.
Zacznijmy od tego, że powinieneś podać konkretny model procesora. W przypadku wątpliwości powinieneś czytać manual zamiast eksperymetować z ustawieniami. Przykładowo w STM32F030 masz rejestr BSRR który odpowiada zarówno za kasowanie jak i ustawnienie bitu IO. https://obrazki.elektroda.pl/5898146400_... https://obrazki.elektroda.pl/3378724200_...
Po drugie, chcesz nadawać bajty, a rejestr DR w STM32 ma 16 bitów, więc jednym zapisem do DR nadajesz 2 bajty. Tutaj się mylisz. Akurat w F103, możesz wysyłać pojedyncze bajty bez bajtowego dostępu. To co opisujesz jest w nowszych STM32, np. L4, F4, F7. W każdym przypadku lepiej użyć do tego DMA.
The very first step jest modyfikacja pliku stm32_eth.h, plik ten zawiera definicje adresu rejestru statusowego zastosowanego PHY, oraz definicje masek bitowych zawierających informacje na temat położenie bitów prędkość oraz duplexu w tymże rejestrze. W przypadku ste100p jest to rejestr “XCVR Configuration Information and Interrupt Status Register”...
Funkcja _W_ mainie? Od kiedy w C funkcje daje się wewnątrz innych funkcji? Pomijam aspekt semantycznej poprawności, chodzi mi tylko faktycznej użyteczności takiej konstrukcji. Taka funkcja musi być "gdzieś" - jest to generalnie całkowicie nieistotne w którym pliku i w którym jego miejscu ta funkcja będzie. Co do funkcji, to zostanie ona wywołana za...
1. Jak chcesz odpowiedź, to podawaj WSZYSTKIE dane. Skąd mamy wiedzieć co jest pod LCD_RWPORT? Może jest zdefiniowane jako "("? 2. Nie wiem po co te magiczne kombinacje. W przypadku STM32 to w ogóle nie ma sensu, bo wystarczy jakbyś sobie zdefiniował LCD_RWPORT jako "GPIOA", a nie samo "A" (jak zapewne planujesz) i już cały pomysł sklejania makr jest...
Mi działa. [syntax=c]void spi_init( void ) { RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; gpioa_init(); gpioe_init(); gpio_pin_cfg( GPIOA, 5, GPIO_AF5_PP_50MHz ); // sck gpio_pin_cfg( GPIOA, 6, GPIO_AF5_PP_50MHz ); // miso gpio_pin_cfg( GPIOA, 7, GPIO_AF5_PP_50MHz ); // mosi gpio_pin_cfg( GPIOE, 3, GPIO_OUT_PP_50MHz ); // cs CS_1; SPI1->CR1 |= SPI_CR1_MSTR |...
Oczywiście pokazałeś kodu tyle co kot napłakał, więc zobaczmy co mówi moja kula. Problem jest zapewne w tym że w funkcji wyświetlającej tekst używasz funkcji setPoint która pewnie na podstawie zmiennych x i y odpowiednio wyświetla na podstawie wybranej orientacji. Dokładnie tak Zobacz na stronę 55 i 56 Datasheet. Dla sterownika punkt (0,0) to lewy...
Na bazie jednego z przykładów od STM zrobiłem transfer DMA z urządzenia zewnętrznego i drugi układ z transferem do urządzenia zewnętrznego. W każdym przypadku miałem zewnętrzny sygnał taktujący (zegar) danych równoległych w takt którego dane są wysyłane/odbierane. W przykładzie był do tego zaprzęgnięty któryś timer, ale nie pracował jako licznik tylko...
Skoro wiesz lepiej to po co pytasz? Bit jest "cały czas" ustawiony, bo cały czas coś odbierasz (nie wysyłasz stop), a dodatkowo jak pracujesz krokowo, to pomiędzy jednym krokiem a drugim po prostu układ odbiera dane, bo ma czas. Tak więc każda kolejna porada będzie taka sama. Przed odebraniem trzeba oczekiwać na odpowiednie bity. Po odebraniu trzeba...
1. Ustawiłeś sobie sprzętowe sterowanie pinem SS, a sterujesz nim ręcznie - generalnie raczej Twoje ręczne zabiegi nic nie dają. 2. Odbiór danych MUSI być poprzedzony nadaniem czegoś, a ty tylko odczytujesz rejestr DR, w którym nic nie ma. Najpierw sprawdzasz, czy możesz coś nadać, potem wpisujesz do DR cokolwiek, czekasz aż będzie coś do odbioru i...
2. Sprawa to stos. Jest on sprzętowy. Nie jest.
W CCR2 też są. W moim przypadku ten kanał podpięty jest pod wejście TI2. Fakt, że inną sprawą jest to, że nie musiałem go włączać i mogę odczytywać z CNT. Już wiem jak to działa, nawet logiczne. Żeby wyzerować CCR2 trzeba wyłączyć CC2E w CCER oraz CC2S w CCMR, czyli odciąć jakby takt dla tego rejestru. Choć w zwykłym trybie liczenia z taktem wewnętrznym...
1. Maksymalne napięcie na wyjściu może wynosić 35mA 2. Maksymalne napięcie zasilania układu wynosi 70mA Nie napięcie tylko prąd. Na wyjściu rejestru będziesz miał logikę 5V. Maksymalny prąd pobierany z 5V to 70 mA. jeśli na jednym pinie wystawimy 35mA, to zostanie jedynie kolejne 35mA do zagospodarowania. Tak. 35 mA to prąd wypływający z wyjścia. Lepiej...
https://obrazki.elektroda.pl/6347997200_... Cześć. Od jakiegoś czasu chodził mi po głowie projekt dzięki któremu mógł bym sobie sterować światła w domu i w ogrodzie poprzez wifi. Funkcjonalność banalnie prosta i spotykana w zapewne tysiącach rożnych projektów, jeszcze jeden nie zaszkodzi. :) W trakcie rozmyślania i projektowania kilka...
https://obrazki.elektroda.pl/1018603600_... Zapraszam na testy kolejnej stacji lutowniczej kompatybilnej z grotami T12 (groty zintegrowane z grzałką). Pokazywana tu stacja charakteryzuje się możliwością szybkiej wymiany grotów (na gorąco), zasilana jest napięciem sieciowym (nie potrzeba zewnętrznego zasilacza) oraz nagrzewaniem w niecałe...
Witam! To znowu ja. Uczyli w szkole o generale, co się kulom nie kłaniał, a ja mam rejestry, co się resetu nie słuchają, ani sprzętowego z pinu, ani z jtag-a. Jak to rozumieć? Timer i dma też nic sobie z resetu nie robią. Teoretycznie po resecie powinienem mieć w rejestrach reset value, ale przynajmniej w wymienionych tak nie mam. Pomaga dopiero wyłączenie...
Ja mam tylko target remote localhost:3333 monitor reset halt lub target remote localhost:3333 monitor reset halt #load monitor flash write_image erase main.bin 0x08000000 bin load działa ale mam przypadek gdzie muszę użyć tego drugiego
Witam. Przeglądając dokumentację uC STM32F10x natrafiłem na rejestr: AFIO_EVCR (Event control register) Zastanawia mnie do czego on dokładnie służy. Według dokumentacji jest to rejestr kontrolny zdarzeń (lub jakoś podobnie). Ustawia się w nim bit "EVOE", oraz poszczególne porty i piny. Czy ma on jakiś związek z przerwaniami EXTI? Dlaczego znajduje się...
Witam, Zagłebiam się powoli w procesor STM32F107 i widzę, że nie będzie łatwo :-) Pamiętam wcześniejszą dyskusję o nieużywaniu biblioteki "Standard Peripherals Library". OK To jak w takim razie zrealizować cos takiego, znanego z innych procesorów: np. GPIOA_CRL = 0x44444444; W pliku STM32F1x.h nie widzę adresów poszczególnych rejestrów np. GPIOA-G,...
https://obrazki.elektroda.pl/8760486500_... Po przygodach z matrycami zbudowanymi na max7219, przyszła pora na coś bardziej zaawansowanego. Miałem w planach zrobienie własnej matrycy z 1500 jednokolorowych ledów 0603, 3 rejestrów przesuwnych i paru elementów dyskretnych, ale jak już ją zaprojektowałem, to przypadkiem trafiłem na matryce...
Faktycznie to był C031 Wróć jeszcze do ost. mojego wpisu, bo został zmodyfikowany. Niski rejestr L jest pod zerowym indeksem, H pod pierwszym. Dodano po 4 Najwyższa pora byś zdradził jak inicjalizujesz procka :) Jakiego środowiska używasz, jak dołączasz CMSIS, bo wg mnie to powinno działać. Dodano po 10 Choć nie do końca dobrze. Dla pinu PA8 powinieneś...
Witam wszystkich Przychodzę do Was z problemem, z którym borykam się już tydzień może dwa. Chcę móc sterować sterownikiem DRV8711 (na PCB od Pololu) przez BluePill (STM32F103C8T6). LINK: Płytka Pololu z DRV8711: https://www.pololu.com/product/3730 Dokumentacja DRV8711 Texas Instruments: https://www.ti.com/lit/ds/symlink/drv871... BluePill: https://sklep.msalamon.pl/produkt/plytka...
Generalnie w AVR-ach nawet mających te nowoczesne rejestry nie da się tego zrobić jedną operacją. Musisz zapisać rejestr ustawiający i zerujący (będą to dwa zapisy) albo musisz odczytać wartość, dokonać operacji logicznych i następnie zapisać. W STM32 da się jako że jeden rejestr zawiera część zerującą i ustawiającą i da się jedną operacją zapisu można...
https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
http://obrazki.elektroda.pl/9733504600_1... DIY stacja meteo, a właściwie stacje, bo naprodukowałem już ich kilka, chyba 10 wersji. Dlaczego stacje? Bo lubię statystyki, poza tym to jedna z tych rzeczy, która może nie jest niezbędna do życia, ale fajnie mieć. Tym bardziej jeśli samemu się skonstruowało. Dlaczego ethernet? Bo wygoda...
Jest trochę mikrokontrolerów, które pozwalają na połączenie poprzez USB, trzeba się temu przyjrzeć - jakieś ATmegi chyba obsłużą tylko najwolniejszy tryb, i to nie wszystkie, STM32 mogą więcej. Ale najpierw trzeba dużo poczytać z opisu tego AD7768, bo on ma jakiś złożony protokół (i to niekoniecznie SPI - może poprzez SPI ustawia się tryb pracy, a dane...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Czy użycie pinu UART jako GPIO wymaga pewnych ustawień? Bezpośrednia odpowiedź: Tak, użycie pinu UART jako GPIO zazwyczaj wymaga pewnej konfiguracji. Wynika to z faktu, że piny UART są zwykle domyślnie skonfigurowane do komunikacji szeregowej i należy je ponownie skonfigurować, aby działały jako piny wejścia/wyjścia ogólnego przeznaczenia (GPIO). Szczegółowa...
Witam. Odnośniki: - Aplikacje np. MMJo2-y (na ATmega32u4) z wykorzystaniem rejestrów przesuwnych (CD4021 lub 74HC165) pod przyciski. Układy tj. rejestry przesuwne ograniczają ilosc przewodów do 5 z ATmegą i ułatwiają podłacenie nawet do max. 64 przycisków, czyli na jeden układ przesuwny przypada 8 przycisków. - Aplikacja "FreeJoy" (na STM32 F103C8T6)...
Opcje -g? Masz ustawioną? EmbSysRegisters wtyczka do eclipse polecam pełen podgląd rejestrów.
Musisz jeszcze ustawić aby wyjście było aktywne w rejestrze CCER.
Ogłoszenia! Uwzględniając uwagi Czytelników z wątku "wywiadowego" ( errata v1_2 ) otrzymuje oznaczenie 1.1. 6. Poradnik w wersji 1.1, po dodaniu najnowszych zmian (patrz plik errata v1_2a ) otrzymuje numerek 1.2 (jest świeży i jeszcze ciepły). 7. Poradnik w wersji 1.1 nie był publikowany. Ta "wirtualna" wersja została wprowadzona jedynie dla zachowania...
Poprawiłem program ale dalej to samo wysyłam do rejestru 0x24 żyroskopu wartość 0x10 później odczytuje ten sam rejestr i dostaje wartość 0xff. Dodano po 7 Chciałbym jeszcze zapytać o taką rzecz czemu gdy wysyłam adres rejestru żyra a zaraz pod tym sprawdzam wartość rejestru SPI->DR to wyświetla mi 0 zamiast adresu? SPI1->DR=rejestr;//rejestr=0x24...
RISC nie poznaje się po długości listy instrukcji, a po tym, co te instrukcje potrafią. Np. nie potrafią równocześnie przesyłać danych do pamięci i zmieniać wskaźnika stosu (PUSH/POP). W ARM jest PUSH/POP/LDM/STM, w dodatku na wielu rejestrach w jednej instrukcji - bardzo nieRISCowa cecha. Za to RISCową cechą jest rejestr LR i architektura typu Load-Store....
W funkcji wpisującej cokolwiek do SPIx->DR powinno być oczekiwanie na informację o tym, że rejestr TX jest pusty - trzeba więc sprawdzać flagę TXE. Rzutowanie powinno być na "volatile uint8_t*". Wrzuć cały aktualny kod. Wrzuć informację o tym jaka jest zawartość rejestrów SR obydwóch SPI w momencie wystąpienia problemu. "__attribute__((interrupt))"...
No właśnie tam musi być bufor, który jest automatycznie uzupełniany nowymi danymi z kolejki w momencie kiedy pierwsza patia danych jest aktualnie wysyłana żeby zachować ciągłą transmisję. Panowie, rzućcie sobie okiem na dokumentacje może, co? Jest rejestr nadawczy, odbiorczy (8 lub 16bit) i shift register pomiędzy nimi, tyle. W nowszych STM32 jak F0...
Dzięki wielkie! wałkowałem to ładne parę dni a takiej głupiej pomyłki nie zauważyłem ;) za to poznałem dość dobrze kod fatfs ;) ... oprócz zapisu TRZEBA także odczytać rejestr SPI...
Masz serię artykułów w EP z ostatnich 2 lat o programowaniu bez SPL w Keilu - wystarczy poczytać, archiwalne numery są dostępne za darmo. Marudzisz, że nie działa, ale ani nie pokazałeś kodu, ani nie napisałeś, co to znaczy że "nic nie rusza", więc jak niby mamy Ci pomóc, hę?
Nigdzie [; Wszystkie resjestry peryferyjne zorganizowane są w formie struktur typu UKŁAD_PERYFERYJNY->REJESTR UKŁAD_PERYFERYJNY to na przykład TIM5, ADC2, DMA, SPI1 itd. (do znalezienia w pliku nagłówkowym stm32f10x.h). REJESTR jest nazwą rejestru, identyczną jak w manualu do STM32. Jeśli używasz Eclipse, to wpisując np SPI i naciskając CTRL+Space otrzymujesz...
jxbrowser to po prostu przeglądarka oparta o chrome'a (a w zasadzie chromium). Dokładnie te same pliki znajdziesz w folderze z profilem w Chrome i prawdopodobnie wielu innych chromopochodnych przeglądarkach. Po co one są nie wiem, ale zakładam, żeby móc lokalnie, nie odwołując się do internetu podpowiedzieć ci, że to hasło które właśnie wpisujesz przy...
(at)excray, (at)es2, w stm32 jest coś takiego jak rejestr powtórzeń licznika - więc zmienna / licznik stanu nie ma sensu ;) Dygresję nie na temat usunąłem.
Czy ten zapis jest koniecznie potrzebny: USART1->SR=0x80;. Powinno działać bez ingerencji w rejestr SR w przerwaniu.
Takie samo? To czemu w pierwszej linijce przesuwasz o 0 pozycji, a w drugiej o 16? Dla jednego to żadna różnica, dla innego będzie to problem i dodatkowy kod. Każdemu według potrzeb. Poza tym naprawdę nie rozumiem problemu - nie chcesz to nie używaj, przecież nie płacisz za to żadnych dodatkowych pieniędzy. Ktoś będzie chciał użyć - użyje. Ktoś nie...
Dostałeś kiedyś jakiś support od Atmela czy wyssałeś to z palca. avr-gcc, datasheety, arty tematyczne - to się nazywa support, tu widać przewagę AVRów nad np. PICami czy ST8. no tak widać znawcę STM32, co nigdy żadnego nie używał a wiedzę swoją ma z 8 bitowców. W pracy kodzę na STM32 w Keilu. Nieprecyzyjnie się wyraziłem, rejestr 32-bitowy, za to jego...
Dobra, cos tam ruszyło po zmianie w SYS na SW Debug. Ale to mi nasunęło kolejne pytanie. Ponieważ ustawienie tego SW Debug powoduje wywołanie funkcji [syntax=c] /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled */ __HAL_AFIO_REMAP_SWJ_NOJTAG();[/syntax] Która wpisuje do rejestrów AFIO->MAPR 0b010 w [26:24] Jeśłi nie ustawię SW Debug to do tych rejestrów...
No myślę, że rozwiązaliśmy problem dostatecznie go podsumowując, także zamykamy. A ja dziękuję za zagorzałą :) dyskusję. Pozdrawiam. Temat okazał się być niedostatecznie rozwiązany gdzyż funkcje nie działały poprawnie. A oto 100% działające kody do obsługi flash: Wyłączenie zabezpieczenia zapisu wybranych oczywiście grup stron : [syntax=c]if((GPIOA->IDR...
Jeśli wstawiasz długość transferu dłuższą to nie, chyba że coś steruje CSem w jakiś sposób... Tak czysiak - przed wpisaniem czegokolwiek do rejestru długości transferu trzeba (!) wyłączyć dany kanał DMA i w istocie on się sam nie wyłącza (mój błąd wcześniej). Upewnij się więc, że jak wpisujesz tam cokolwiek, to masz zero na odpowiedniej pozycji (najprościej...
jaki sposób można to zmieniać na rejestrach? Jest rejestr TIMx capture/compare enable register (TIMx_CCER). https://obrazki.elektroda.pl/9768584600_...
(at)toch88 Nie ma powodów, aby nie stosować takiego zapisu. Np. Atmel w swoich nagłówkach dla ARM daje możeliwość korzystania z pól bitowych, lub składania wartości z masek i przesunięć. Przy czym jeśli korzystasz z pól to wygodnie jest użyć compund literals: http://mikrokontrolery.blogspot.com/2011...
Nie ustawiłeś bitu MOE w rejestrze TIM1->BDTR.
Używasz tego rejestru niepoprawnie. Operacje bitowe na nim nie mają sensu, ponieważ zapisanie w dowolne miejsce zera jest w manualu zdefiniowane jako operacja bez efektu, a dodatkowo pojawia się informacja, że rejestr ten jest "write only" i nie należy go odczytywać. Tak więc aby zapalić diodę powinieneś po prostu zrobić: GPIOA->BSRR = 1 <<...
Mnie się udało do tej pory znaleźć tylko jeden przypadek w którym bit-banding nie działa z takimi specyficznymi rejestrami, ale to na LPC1769 akurat, choć też w I2C - jest tam jeden rejestr write-only do którego zapis na jakimś bicie powoduje wyczyszczenie bitu w innym rejestrze (w tamtym rejestrze można znów tylko dokonać przestawienia 0->1, odwrotnie...
stm32 rejestr programować stm32 rejestr stm32 usart rejestr
kontrolka smarowania wymienne łożyska gorenje nmosfet zrobi
sterowanie bramy przesuwnej sterowanie bramy przesuwnej
How to Reset Hotpoint-Ariston Aqualtis Washing Machine: Button Sequence, Error Codes, Models AQ7/8/9 Moment dokręcania przewodów paliwa w różnych pojazdach