-
Data: 2012-05-26 12:49:01
Temat: Re: [ARM] Obsługa peryferiów poprzez API (wskazniki do struktury)
Od: Michał Lankosz <m...@t...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-05-26 07:56, slawek7 pisze:
> Cześć.
> Mamy np uC STM32. Dostęp do portów np ustawienie jakiegoś
> wyprowadzenia możemy zrobić albo korzystając z darowanych przez
> producenta bibliotek albo poprzez odwołania do rejestrów, jak np GPIOB-
>> BRR=0x0100;
>
> I właśnie chodzi mi o ten drugi sposób z użyciem wskaźnika. Czy
> dokonując zapisu GPIOB->BRR=.. operujemy na zmiennej wskaźnikowej?
> Inaczej mówiąc czy mamy zdefiniowaną zmienną *GPIOB?
> Nie mogę dojść do tego jak to działa. W plikach jest taka definicja
> struktury:
> typedef struct
> {
> __IO uint32_t CRL;
> __IO uint32_t CRH;
> __IO uint32_t IDR;
> __IO uint32_t ODR;
> __IO uint32_t BSRR;
> __IO uint32_t BRR;
> __IO uint32_t LCKR;
> } GPIO_TypeDef;
>
>
> A potem coś takiego
> #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) //GPIO_BASE
> to liczba
>
> Ale nie widze tutaj żadnej definicji zmiennej wskaźnikowej? Czyżby nie
> była ona potrzebna? To jak to działa?
tutaj: (GPIO_TypeDef *)
W skrócie. GPIOB_BASE to adres bazowy (początkowy) rejestrów I/O portu
B. Rzutujemy tu wskaźnik na do struktury po kolei poukładanych rejestrów
I/O. Dzięki temu jedną strukturą GPIO_TypeDef możemy opisać tyle portów
ile ma dany procesor znając tylko ich adresy bazowe.
GPIOB jest więc wskaźnikiem do struktury.
Michał
Następne wpisy z tego wątku
- 26.05.12 13:59 slawek7
- 26.05.12 14:43 Portal
- 26.05.12 16:28 J.F.
- 26.05.12 17:09 slawek7
- 26.05.12 18:10 bartekltg
- 26.05.12 18:25 Portal
- 26.05.12 18:29 bartekltg
- 27.05.12 16:37 slawek7
- 27.05.12 16:37 slawek7
- 27.05.12 19:27 Portal
- 28.05.12 20:14 slawek7
- 28.05.12 20:14 slawek7
- 28.05.12 20:14 slawek7
- 28.05.12 20:13 slawek7
- 28.05.12 21:52 J.F.
Najnowsze wątki z tej grupy
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
- Korekcja perspektywy
- Wentylator zabija zasilacze LEDek?
- Re: Kompensacja mocy biernej przy 230VAC
- Totaliztyczny obowiązek naprawy maszyn i urządzeń
Najnowsze wątki
- 2025-05-06 Agregat z lodówki olej
- 2025-05-06 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-06 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-06 Dęblin => Node.js / Fullstack Developer <=
- 2025-05-06 Warszawa => IT Business Analyst (projects in the telco sector) <=
- 2025-05-06 Title: The Economics and Systemic Implications of Bitcoin: Cost, Scarcity, and the Institutional Race for Dominance .
- 2025-05-06 SMSy
- 2025-05-06 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-05-06 Warszawa => Strategic Account Manager <=
- 2025-05-06 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-05-06 Gdynia => ML Ops Engineer <=
- 2025-05-06 Drobne umowy o dzielo z przeniesieniem praw autorskich
- 2025-05-06 wydobywanie Bitcoinów jest aktualnie zajęciem po prostu nieopłacalnym. Jak wynika z opublikowanych danych, średni koszt wygenerowania jednego Bitcoina wynosi ok. 137 tysięcy dolarów.
- 2025-05-06 Join Bitcoin Blockchain Nonce Global University
- 2025-05-06 Gdynia => ML Ops Engineer <=