Forum: Mikrocontroller und Digitale Elektronik C Frage und Records


von Tilo P. (Gast)


Lesenswert?

Wie genau funktionieren diese Zeilen?
/*Configure GPIO pin : PA0 */
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);


Wird bei
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 bzw
&GPIO_InitStruct)

alles ersetzte was vorher hier
    GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;

definiert wurde?

von Horst G. (horst_g532)


Lesenswert?

Nö.
Damit
1
GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL;
füllst du lediglich ein Struct mit Daten bzw. weist dessen Membern Werte 
zu; es wird nichts am Portpin verändert.
Dies geschieht erst durch die Funktion
1
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct)
; das wendet die im strict hinterlegte Konfiguration auf Port A an.

von Tilo P. (Gast)


Lesenswert?

Das meinte ich damit.
Da eben nur noch HAL_GPIO_Init(GPIOA, &GPIO_InitStruct), dasteht

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Tilo P. schrieb:
> Das meinte ich damit.
> Da eben nur noch HAL_GPIO_Init(GPIOA, &GPIO_InitStruct), dasteht

Du weist aber schon wie ein Funktionsaufruf in der von dir gewählten 
Programiersprache aussieht und was der bewirkt?
- https://en.cppreference.com/w/c/language/functions

von Tilo P. (Gast)


Lesenswert?

schön das mn hier immer bei Jeopardy ist.
Keine Ahnung was du mir damit sagen willst.
Aber ja, ich kenne Funktionen.
Hier geht es aber um Records

von pasi (Gast)


Lesenswert?

Moin,
was ist denn jetzt die eigentliche Frage?
1
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct)
 setzt alles, was vorher in dem GPIO_InitStruct gesetzt wurde für PortA.
Vorher wird nur dein Struct (GPIO_InitStruct), bzw. dessen Member 
gesetzt.
Was ist dir unklar?

Viele Grüße

von Rolf M. (rmagnus)


Lesenswert?

Tilo P. schrieb:
> schön das mn hier immer bei Jeopardy ist.
> Keine Ahnung was du mir damit sagen willst.
> Aber ja, ich kenne Funktionen.
> Hier geht es aber um Records

In C gibt es nichts, das sich "Records" nennt, und

> HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

ist nunmal der Aufruf einer Funktion. Da du die ja kennst, müsste dir 
das doch eigentlich bekannt sein.
Daher ist unklar, wo jetzt dein Verständnisproblem liegt.

von Klaus W. (mfgkw)


Lesenswert?

Rolf M. schrieb:
> Daher ist unklar, wo jetzt dein Verständnisproblem liegt.

Steht bestimmt im ersten Post...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.