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.
Pierwsza opcja to oczywiście zdefiniowanie NAPRAWDĘ DUŻEGO stosu, ale to średnie rozwiązanie jak wiadomo [; Do rozbudowanej aplikacji na ARMa myślę że należy liczyć minimum 1kB, jeśli używa się jakichś potwornych funkcji standardowych (printf!) i to głęboko to lepiej zaopatrzyć się w 2kB (o apetycie tych funkcji na pamięć pisałem ostatnio http://www.elektroda.pl/rtvforum/topic13...
Żeby podejrzeć rejestry układ trzeba oczywiście najpierw zatrzymać. Generalnie też (kiedyś) wtyczka embsysregview nie odświeża automatycznie rejestrów (ikonka szara) - trzeba daną pozycję kliknąć 2x (ikonka zielona) i wtedy wartość jest aktualizowana itd. 4\/3!!
Skorzystaj z rejestru GPIO->BSRR
Aż niemożliwe, że tak ciężko jest zacząć z stm32 na rejestrach... To dość złożona architektura i potrzeba sporo rzeczy aby stworzyć działąjący program. Dziś mam dziń dobroci i zrobiłem Ci projekt. Dalej to już tylko problem Twoich programów. Nie można zwalać na środowisko.
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ę?
reset to reset i już, może pokaż jakiś schemat ?
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
Opcje -g? Masz ustawioną? EmbSysRegisters wtyczka do eclipse polecam pełen podgląd rejestrów.
Np. STM32F100C8T6B. Ogólnie stm32 są "bardzo kompatybilne". Ważnie żeby trzymać się jednej grupy np stm32f1xx (nie zmieniać typu rdzenia (rodziny) np. z m3 na m4 lub m0 bo mają nieco inne rejestry konfiguracyjne).
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.
Czy działa Systick to łatwo sprawdzić w debuggerze. Zresztą wiele spraw można sprawdzić. Ja bym zaczął od tego czy właściwe rejestry podlegają zmianom. To nie jest nic trudnego, w krokowym trybie Też jaka wartość jest SystemCoreClock, to zmienna globalna. Może ląduje gdzieś w HardFault, zaraz po uruchomieniu. EDIT. Często problemem przy kopiowaniu plików,...
Musisz jeszcze ustawić aby wyjście było aktywne w rejestrze CCER.
Myślę że to wszystko jest wytłumaczone w datasheecie do tego akcelerometru. 4\/3!!
Nie ustawiłeś bitu MOE w rejestrze TIM1->BDTR.
(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...
odczyt rejestru - modyfikacja - zapis do rejestru . Nie powinno cię dziwić, że jeśli między tymi operacjami wystąpi przerwanie, w którym modyfikowane są ODR bitbandingiem i nie tylko to cała operacja z przerwania zostanie anulowana.
Rada praktyczna: ustaw preskaler tak, żeby podzielony zegar timera miał jakiś "okrągły" okres, np. 1, 10 lub 100 us, wtedy nie będziesz musiał pracowicie wyliczać wartości okresu timera, np. preskaler 7200 -> okres zegara 100 us; w celu uzyskania jednej sekundy ładujesz do ARR 10000-1. Twój problem, jak napisano wyżej, wynika z braku kasowania znacznika...
W przerwaniu przydałoby się kasowanie flagi od przerwania (rejestr EXTI_PR)
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...
ja pytam o sposób dostępu do tego rejestru, gdzie znajdę to napisane? Czy mam sam przez podobieństwo próbować czy coś takiego zadziała: DMA->ISR=0x......; ? Czy taka jest zasada? Taka jest zasada. Gdzie te nazwy są zdefiniowane? Większość jest w pliku stm32f10x.h . Jeśli używasz Eclipse, to po prostu trzymając CTRL kliknij w daną nazwę, a otworzone...
A może byś tak włączył pull-up? Domyślnie masz pull-down. Wskazówka - Tabela 20 w sekcji 9.1. ;)
W module RCC masz rejestry odpowiedzialne za reset peryferiów (RCC_APBxRSTR)
Zacznij od zrozumienia przesunięć bitowych, potem poczytaj o portach GPIO w STM32 (rejestr MODER działa ciut inaczej niż DDR w AVR). No i jeszcze timery - też całkiem różne od tych w AVR.
Czemu po prostu nie przestawisz wartości ARR zamiast jednego z rejestrów od porównania?
nie ma czegos takiego jak dummy read przy odczycie rejestru tylko przy odczycie z GRAM chyba.
To nie rozwiązuje problemu. Jeśli masz do skonfigurowania kilkadziesiąt pinów to dalej stoisz w tym samym miejscu - tracisz dużo czasu na klepanie konfiguracji dla GPIO. To rób konfigurację CubeMX a dostęp do GPIUO na rejestrach. Często używam tej metody nie tylko dla GPIO ale i dla USART, SPI. Transmisję realizuję swoimi funkcjami a init robię przez...
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,...
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.
Może wbiję kij w mrowisko: Po co właściwie Ci ten bitbanding? Programuję Cortexy na codzień i nie zauważam praktycznej potrzeby użycia BB. Nie to, żeby w ogóle jej nie było, ale jest ona tak marginalna, że nie opłaca się w to bawić. Tam, gdzie są potrzebne operacje bitowe, są one zaimplementowane w sprzęcie lepiej i bez potrzeby użycia BB i szybciej...
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ść....
Przejrzyj erratę od Twojego układu - w I2C jest kilka problemów.
a reklamy wcale nie wyskakuja czesto, mi sie zdarza raz na 1h moze nawet rzadziej A jak klikniesz debug? podgladu rejestrow nie ma ale zawsze mozna to ominac w taki sposob ze sobie dane z rejestru do zmiennej przypisujesz i w zakladce veriables masz to do podgladu Nie próbowałem. Ale w Keilu w podglądzie rejestrów możesz sobie w trakcie debugowania...
Sprawdź opis rejestru w Reference manual. Tam jest to jasno i klarownie wyjaśnione.
Makro LED_bb_B odnosi się do rejestru ODR który pozwala na zmianę stanu pinu. Ty natomiast musisz skorzystać z rejestru IDR który odwzorowuje rzeczywisty stan wyprowadzenia.
Chyba trzeba przestawić funkcję wybranych wyjść GPIO na linie interfejsu USART. Dla mnie mało czytelne są te gotowe biblioteki STM32. Sam wszystko robię na rejestrach.
Tak zrobię, spróbuję na samych rejestrach.
Chodzi o to co pisze NAD opisem bitów z rejestru RCC_BDCR. Można tam znaleźć takie oto info: The LSEON, LSEBYP, RTCSEL and RTCEN bits in the RCC backup domain control register (RCC_BDCR) are in the Backup domain. As a result, after Reset, these bits are write-protected and the DBP bit in the PWR power control register (PWR_CR1) has to be set before...
Hala do usarta czy SPI nie lubię. Łatwiej i dużo szybciej na rejestrach
Czy domyślnie jest w danym modemie włączone czy nie to już zależy od modemu chyba. I/lub S-rejestrów.
Tak - da sie. To sa dwa niezależne interfejsy
Nie no zaraz. Kanały są multipleksowane, więc rozwiązanie jeden na kanał odrzucam. Prawdopodobne jest rozwiązanie kilka w jednym przetworniku, no ale jakie (od czego) miałyby być te kondensatory i w związku z tym po co ich kalibracja. Najbardziej prawdopodobne wydaje się być rozwiązanie kalibracji jednego kondensatora na przetwornik, co tłumaczyłoby...
Liczbę impulsów masz w CNT, nie w CCR2. Zerowanie go nie ma sensu, wystarczy odejmować od siebie dwa kolejne odczyty.
Nawet dla takiego małego Miki jak ja już na pierwszy rzut oka jest jasne że te kody to potężne źródło problemów. Co widać bez wgłębienia się w szczegóły: * Funkcja main() jako rozbiegówka to słaby pomysł. Kolega stmx napisał coś na ten temat (nawet podaje link w promowanych tematach), warto to przeczytać. * Stos musi mieć odpowiednie wyrównanie, zwykle...
(at)dziechu poczytaj co robi operator sizeof zamiast grzebać w rejestrach
O ile makra masz poprawne.... To BRR i BSRR to nie rejestry do stosowania RMW. Czysty zapis bez andów czy orów. Gdzie włączone zegary Dla GPIO i SPI? Co debuger na to wszystko?
jest jakaś prosta metoda na timeout ? Nie wiem jaki masz STM, ale niektóre mają sprzętowy timeout. Wystarczy w rejestrze RTOR podać po ilu nieodebranych znakach ma zostać wygenerowane przerwanie. Ewentualnie musisz się posiłkować jakimś timerem - np. w trybie OPM. Szczerze mówiąc chyba lepiej Ci będzie napisać tę cześć kodu bezpośrednio na rejestrach...
Napisał, że ma to być cyfrowy - ale np. czy opóźnienie ma dotyczyć jednego zbocza, czy obu, już nie widzę. Można by rozważyć użycie rejestrów przesuwnych i dobierać liczbę bitów - ale to może wyjść drogo. Procesor? Przynajmniej STM32, i to jakiś szybszy. Tylko w każdej z tych wersji to działa synchronicznie z zegarem...
A SPI_CR1_DFF za co odpowiada? Bo ja nie mam takiego bitu w rejestrze.
Dostęp atomowy w STM32: - bit-banding - rejestr BSR - wpisywanie gotowej wartości do rejestru ODR (czyli nie "|=" i nie "&=~") W innych układach, np. LPC17xx, dochodzą jeszcze inne możliwości. 4\/3!!
Nie dam rady niestety poradzić sobie z I2C bez użycia bibliotek CMSIS src inc STM32F10x_StdPeriph_Lib_V3.4.0 Czy mogę prosić o opisanie po krótce jakie biblioteki czy pliki, gdzie powinienem dołączyć abym mógł swobodnie pisać w oparciu o biblioteki ? Wiem już, że plik startowy startup_stm32f10x_md muszę dodać do katalogu w którym mam zapisany projekt....
Timer ma jeden licznik. żeby zliczać impulsy, musisz skonfigurować go na zliczanie z któregoś wejścia, a nie domyślne zliczanie impulsów zegara. Rejestry CCR nie są Ci potrzebne.
Ale to nie problem bo w STM32 możesz w rejestrze UARTu ustawić negację na pinie. Tylko w niektórych rodzinach. W STM32F1 którego dotyczy ten temat (jak i np. w STM32F4) nie jest to możliwe.
Zamienił stryjek siekierkę na kijek. Nie rozumiem w czym jakieś dziwolągi programistyczne mają mieć przewagę nad prostym ustawieniem kilku bitów w kilku rejestrach.
Cała korporacja AVT silnie promuje używanie SPL. W zasadzie nie widziałem jakiegoś artykułu w odniesieniu do rejestrów.
Funkcje będą takie same ale sprawdź adresy do rejestrów poszczególnych.
1. Polska literatura bazuje na tych bibliotekach 2. Bo się pisze szybciej i łatwiej, 3. Mniej cię obchodzi bo większość rzeczy dzieje się pod spodem 4. Dużo przykładów w sieci = co za tym idzie 1. mniej optymalnie 2. w razie problemów i tak trzeba grzebać po rejestrach żeby dowiedzieć się co się dzieje
Tak też zrobię - podłubię w bibliotece. Sadze ze (at)Freddie Chopin chodziło o to abyś sobie napisał na rejestrach :).
Skoro te biblioteki Ci się nie podobają, to ich nie używaj - w czym problem? Jeśli podoba Ci się inna to jej użyj. Jeśli żadna, to napisz swój kod w oparciu o rejestry.
A konkretnie, to czego z kodu inicjowania timera nie rozumiesz po przeczytaniu rozdziału o timerach z Reference Manual? Masz tam obrazki, opisy działnia i szczegółowo rozrysowane i opisane rejestry sterujące.
to zapisuje do rejestru 8 bitów. A podobno chcesz 16
Pomyśle :) w ogromnej ilości rejestrów stm32, myślałem, że jakoś łatwiej się odnajdę dzięki bibliotece, a tu chyba jest dokładnie odwrotnie :) pozdrawiam Krzysiek
Nie powiem Ci jak z HAL, ale TIM1 owszem ma taka możliwość, jeśli bit MOE w BDRT jest == 0, a OSSI == 1, to stany wyjść kiedy timer jest wylączony ustalają bity OISx(N) w rejestrze CR2.
Procesor musi mie odpowiedni rejestr, który umoliwia taką zabawę. W STM32 nazywa się BSRR. W AVR-ach nie ma chyba niczego takiego.
No ale nie możesz po prostu... sprawdzić? No właśnie na razie nie, Z tego względu, że nie mam jeszcze fizycznie układu (pomiarowego) - czekam na wzmacniacze itp. Po napisaniu programu chcę ewentualnie podłączyć 4 potencjometry pod każdy kanał i wtedy sprawdzić. Po drugie myślę, że taki temat może być pomocny dla ludzi którzy też chcą się nauczyć operacji...
Problem mam spory. Nie wiem czy w tym procesorze są jakieś mechanizmy zapobiegające zmianie wartości rejestrów czy jak? Chcę skonfigurować ADC1. Według wszystkich znaków na niebie i ziemi jego rejestry zaczynają się pod adresem 0x40012400. (procek to STM32F103VETb6) Procedury mi wyliczają odpowiednie wartości jednak przypisanie nic nie daje. Nawet nie...
Nie może być UART. Tylko SPI albo I2C. Musi być wykorzystany HAL na stm32 a na RPI bcm2835 ewentualnie wiringPI. Nie powinienem korzystać z rejestrów na stm32. Dlaczego? To są zagadnienia z kursów pewnych. Jak to powinno wyglądać?
Witam A może rejestr przesuwny, będziesz potrzebował tylko trzy linie. Pozdrawiam Romek
"Rejestry GPIO" to nic innego jak adresy w pamięci. Operuj adresami, a nie nazwami. Makra najprawdopodobniej będziesz musiał napisać sobie sam.
Tak, Freddie Chopin ma rację, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... oraz configMAX_SYSCALL_INTERRUPT_PRIORITY powinny być spójne, ponieważ odnoszą się do tego samego lecz różnią się przesunięciem bitowym w celu stosowania tych flag w funkcjach bibliotecznych lub bezpośrednio w rejestrach.
W Twoim działającym przykładzie do rejestru wpisujesz adres tablicy ("&" może być albo może go też nie być - również zadziała wg mnie), natomiast w przykładzie niedziałającym najpierw do funkcji podajesz adres tej tablicy, a potem jeszcze raz wyciągasz adres tego adresu - żeby zaspokoić Twoje potrzeby kompilator zmienną tab umieszcza gdzieś na stosie...
Czyli jeżeli dobrze rozumiem to w przypadku resetowania powinienem ustawić bit RST. Następnie włączyć zegar RCC (ponieważ w konfiguracji po restarcie jest on wyłączony) Resetujesz konkretne peryferium a nie RCC. Tak że w RCC nic się nie zmieni. Mogłbyś mi jeszcze podać źródła gdzie znalazłeś takie informacje o resecie Takich jak Ty podałeś to nie znalazłem...
Dla licznika TIM1 trzeba dodatkowo dodać polecenie: [syntax=c]TIM_CtrlPWMOutputs(TIM1, ENABLE);[/syntax] Ustawia ono bit MOE w rejestrze BDTR, polecenie dotyczy liczników 1, 8, 15, 16 i 17 .
To API jest bez sensu więc nie ma co szukać o tym informacji. Dlaczego uważasz, że jest bez sensu? To według Ciebie lepiej pisać odwołując się bezpośrednio do rejestrów?
Temat rozwiązany. Problemem było to, że były zworki w Nucleo i programowałem Nucleo a nie docelowy STM32.
BlueDraco, przejście na programowanie za pomocą rejestrów dawno mnie pociągało, ale w zasadzie trzeba by było zaczynać naukę od zera (szczególnie dla każdego nowego procesora). Czy gdyby dalej pisać w HAL, ale ważniejsze czasowo fragmenty tylko na rejestrach, to szybkość ich byłaby porównywalna? Czy jednak pozostałe fragmenty kodu w HAL akurat niezwiązane...
Sposób mam bardzo prosty - po kolei ładuję rejestry sterujące każdego peryferiala i dzięki temu kod inicjujący wszystkie peryferia w dużych projekstach nie przekracza kilkudziesięciu linii. żadna pseudowuniwersalna biblioteka nie obejmie wszytskich potrzeb projektu, a inicjowanie peryferiów potworkami typu SPL wychodzi wielokrotnie (np. 8x) dłuższe...
Sam widzisz, że wcześniej wyzerowałem wszystkie rejestry co dało mi pewność że nie zawierają żadnych śmieci, potem wykorzystałem funkcje, i nic to nie dało. Jak dałem sumowanie bitowe w drugim przypadku to jest ok. Chodzi Ci o to, że powinienem najpierw czyścić pola rejestru które zamierzam zapisać tak? Funkcja to robi, i mimo to coś jest nie tak. Debugger...
Witam. Próbuje stworzyć wyświetlacz RGB. Sercem układu jest mikrokontroler z rodziny STM32 (logika działania 3V3), natomiast za sterowanie LEDami odpowiadałyby rejestry przesuwne zasilane napięciem 5V. Wysoki stan na wejściu rejestru przesuwnego wynosiłby w takim razie 3V3. Moje pytania są następujące: 1. Jakie napięcie uzyskam w rejestrze na wyjściu?...
Dzięki za ten opis, muszę wpisać jeszcze do pamięci wyświetlacza jakieś wartości aby zobaczyć cokolwiek. Niestety u mnie problem tkwi w mojej ocenie w samym I2C. Bez rozwiązania tego problemu nie będę w stanie ustawić żadnego rejestru.
Może nie akceptuje tak wysokiego napięcia zasilania. Sprawdź jaki ma dopuszczalny zakres napięcia zasilania w rejestrze OCR (CMD58).
Dobra, teraz wiem wszystko co trzeba ;] Jestem tylko troszę zdziwiony takim dostępem do pinów, i stąd pytanie. LPC17xx i wszystkie STM32 mają zwykłe rejestry bit set i bit clear, które imho są zdecydowanie lepsze w użyciu niż omawiany wynalazek...
A da się to zrobić w jakiś szybki sposób? Czy trzeba resetować wszystkie rejestry po kolei?
Debugowanie kodu do I2C do bezpiecznych nie należy do udowodniłem. Wystarczy nie pozwolić na odpowiednią szybką reakcję na zdarzenie, co spowoduje zawieszenie magistrali. W szczególności trzeba uważać na rejestry SR
ODR steruje wtedy pullupem jeśli taki tryb działania wybierzesz. Co do funkcji działających na portach, to - jak pisałem wyżej - dorobienie takiej która robi konfigurację dla więcej niż jednego pinu to 2 linijki, a taka która wystawia wartość czy ją odczytuje jest bezsensu, bo od tego masz rejestry, więc czemu nie odczytać ich wprost (ewentualnie funkcja...
Czy istnieje jakaś możliwość sprawdzenia czy nasz PHY odbiera nośną lub mówiąc prościej czy kabel jest wpięty bez odczytywania rejestrów PHY? Czy też muszę cyklicznie czytać rejestry PHY i sprawdzać flagę link status?
A odblokowałeś FLASH? Chodzi mi o magiczne: [syntax=c]FLASH->KEYR= 0x45670123; FLASH->KEYR= 0xCDEF89AB;[/syntax] I oczywiście zabezpieczenie zadziała dopiero po resecie procesora. Wcześniej wszystko działa tak jakby zabezpieczeń nie było pomimo odpowiednich wartości w rejestrach.
(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.
Gdzie mógłbym się dowiedzieć więcej na ten temat? Zobacz przykład dla STM32 z mojej strony - przecież właśnie to jest tam zrobione. Jednak bezpośrednia edycja rejestrów w c to dla mnie nowość. ? Przecież w każdym mikrokontrolerze "edytujesz bezpośrednio rejestry"... 4\/3!!
2. Sprawa to stos. Jest on sprzętowy. Nie jest.
Witam, Chciałem uruchomić wbudowany w STM32 zegar czasu rzeczywistego. Wg mnie warto skorzystać z tego dokumentu: https://www.st.com/content/ccc/resource/... Jest tu całkiem sporo informacji o tym jak opanować temat...
Witam, Timery w tych prockach mają tyle opcji, że się w tym wszystkim pogubiłem. Jak można wygenerować na jakimś wyjściu przebieg prostokątny o programowo określonej częstotliwości? Pewnie będzie to tryb Compare z zerowaniem rejestru licznika i zmiany wyjścia na stan przeciwny. Nie mam jednak pojęcia co i gdzie poustawiać w rejestrach.
Hmm... Czyli dla open drain, gdy pin jest ustawiony jako output mogę ustawić pull down / pull up (poprzez rejestry w procku)?
1. funkcja bez atrybutu interrupt nie odkłada na stos wartości rejestrów które modyfikuje potem w "ciele funkcji" - czy to znaczy, że wartości tych rejestrów są tracone czy też procesor sam z siebie (sprzętowo) je zapamiętuje na stosie przy wejściu w obsługę przerwania? Informacje jak zwykle w dokumentacji rdzenia. Po co są zerowane trzy ostatnie bity...
przerwanie przeciez jest wlaczone, bo sie wykonuje handler. chyba ze nie wiem co to znaczy wlacz EXTI... problem jest w tym zapisie do rejestru EXTICR
Zajrzyj do Reference Manual i zobacz, jak wyglądają rejestry CRL i CRH - zupełnie inaczej, niż Ci się to wydaje. Masz tam pary bitów dla każdej linii, a nie pojedyncze bity.
po co w niektórych implementacjach takich 'rozbiegówek' mamy kod assemblerowy który kopiuje adres stosu do rejestru SP procesora? STM32 może używać dwóch stosów - jednego dla przerwań (nazwanego wyjątkowo myląco "main stack") i drugiego dla wątków (nazwanego "process stack") - a więc i dla "main()". To co jest w tablicy wektorów ląduje w MSP ("main...
To jest jeden z kodów z działu o NVIC z którym mam problem. Poza tym rejestr SysTick jest rejestrem kontrolera NVIC.
robi reset procka, wyzeruje rejestry reset procesora nie kasuje zawartości tych rejestrów. 4\/3!!
Tak, te funkcje sa do odczytu z zapisu rejestrow, jednak jak mnie przekonales ( nie w 100% do poki nie zobacze jakiejs dokumentacji :P ), na rejestrach usb stm32 a nie phy.
programowanie stm32 rejestry stm32 rejestry portów rejestry atmega8
temperatura klimatyzatora flybox orange subiekt drukarka fiskalna
uziemienie basenu łącznik krzywkowy podłączyć
Przewody nad kalenicą: typy, normy, montaż Moment dokręcania głowicy Kia Picanto 1.0 G3LA