STM32F303 HAL Layer kompletten Port einlesen

#6624254
Lesenswert?

Hallo,
gibt es eine HAL Funktion zum einlesen eines kompletten 16Bit Ports ?
HAL_GPIO_ReadPin(GPIOx, GPIO_Pin) gibts und toggle bits usw. aber ich 
will einen kompletten Port einlesen können, statt 8 oder 16 * ReadPin..
Hab ich was übersehen ? ..
Gast #6624564
Lesenswert?

Das kommt dann dabei heraus, wenn Leute von Anfang an mit 
Abstraktions-Layern lernen. Sie vergessen, dass man einfache Sachen 
einfach machen kann.

Ich habe gerade einen Knubbel Papier vor mir liegen. Jetzt vereinbare 
ich mal einen Termin mit der örtlichen Müllabfuhr, dass die hier her 
kommen und mit den Knubbel vom Tisch holen.

Da frage ich mich: Wofür ist eigentlich der Blaue Eimer in der Ecke 
jedes Bürozimmers und wer macht die leer?
#6624698
Lesenswert?

Stefan, ich arbeite und programmiere seit vielen Jahren/Jahrzehnten mit 
C und Microcontrollern. Nein ich fange nicht mit Abstraction Layer an. 
Ich untersuche nur die Möglichkeiten und Limits des HAL—Layers von ST. 
Das der HAL Layer für manche verpönt ist kann ich verstehen, aber wenn 
man sich solche Technologien nicht anschaut, würden wir immer noch CPUs 
mit Assembler programmieren und Smartphone Apps würde es nicht geben.
Ihre Arroganz ist in diesem Forum fehl am Platz.
#6624716
Lesenswert?

1
#define GPIO_PIN_0                 ((uint16_t)0x0001)  /* Pin 0 selected    */
2
#define GPIO_PIN_1                 ((uint16_t)0x0002)  /* Pin 1 selected    */
3
#define GPIO_PIN_2                 ((uint16_t)0x0004)  /* Pin 2 selected    */
4
#define GPIO_PIN_3                 ((uint16_t)0x0008)  /* Pin 3 selected    */
5
#define GPIO_PIN_4                 ((uint16_t)0x0010)  /* Pin 4 selected    */
6
#define GPIO_PIN_5                 ((uint16_t)0x0020)  /* Pin 5 selected    */
7
#define GPIO_PIN_6                 ((uint16_t)0x0040)  /* Pin 6 selected    */
8
#define GPIO_PIN_7                 ((uint16_t)0x0080)  /* Pin 7 selected    */
9
#define GPIO_PIN_8                 ((uint16_t)0x0100)  /* Pin 8 selected    */
10
#define GPIO_PIN_9                 ((uint16_t)0x0200)  /* Pin 9 selected    */
11
#define GPIO_PIN_10                ((uint16_t)0x0400)  /* Pin 10 selected   */
12
#define GPIO_PIN_11                ((uint16_t)0x0800)  /* Pin 11 selected   */
13
#define GPIO_PIN_12                ((uint16_t)0x1000)  /* Pin 12 selected   */
14
#define GPIO_PIN_13                ((uint16_t)0x2000)  /* Pin 13 selected   */
15
#define GPIO_PIN_14                ((uint16_t)0x4000)  /* Pin 14 selected   */
16
#define GPIO_PIN_15                ((uint16_t)0x8000)  /* Pin 15 selected   */
17
#define GPIO_PIN_All               ((uint16_t)0xFFFF)  /* All pins selected */

Das letzte #define kann man der ReadPin Funktion geben um alle Pins 
einzulesen.

/edit
Code ist copy/paste aus den ST GPIO Headern.
Gast #6624817
Lesenswert?

Wolfram L. schrieb:
> Das der HAL Layer für manche verpönt ist kann ich verstehen, aber wenn
> man sich solche Technologien nicht anschaut, würden wir immer noch CPUs
> mit Assembler programmieren und Smartphone Apps würde es nicht geben.
> Ihre Arroganz ist in diesem Forum fehl am Platz.

Naja, den HAL Layer von ST als Technologie zu bezeichnen ist wohl etwas 
weit hergeholt. Mittlerweile haben die Studenten bei ST schon die 3. 
Inkarnation dieses Mists verbrochen. Was sich aber nicht geändert hat 
ist das Referenzmanual wo jedes Register schön beschrieben steht. Und um 
die komplexeren Hardwareblöcke zu verstehen reicht es auch nicht die 
HAL-Funktionen mal gesehen zu haben, da ist sowieso Studium des 
Referenzmanuals angesagt. Oder, wie viele hier mit den einfachsten 
Fragen aufzuschlagen.

Wolfram L. schrieb:
> Stefan, ich arbeite und programmiere seit vielen Jahren/Jahrzehnten mit
> C und Microcontrollern.

Eins von beiden stimmt nicht, deine Ausgangsfrage oder diese Aussage 
hier. Sollte beides zutreffen, würde ich nicht mehr von Programieren 
sondern von Kopieren reden.

Wolfram L. schrieb:
> aber wenn
> man sich solche Technologien nicht anschaut, würden wir immer noch CPUs
> mit Assembler programmieren und Smartphone Apps würde es nicht geben.

Wir brauchen nicht mehr lange warten, dann stimmt die umgekehrte 
Aussage: Mittlerweile werden selbst einfache Programme nur noch aus 
unzähligen Libs aus dem Netz zusammen kopiert über die niemand mehr die 
Kontrolle hat. Hauptsache es geht für den Moment und das schnell. Aber 
eine wirkliche Stabilität und Sicherheit in die Programme zu kriegen, 
wird mit jedem Jahr und aufgeblähteren Code schlechter.
Gast #7055653
Lesenswert?

STK500-Besitzer schrieb:
> Und wenn du dir das Datum des letzten Beitrag anschaust, stelltst du
> fest, dass das Thema seit über einem Jahr niemanden mehr interessiert.

Nun ja, ob es jemanden interessiert oder nicht, ist dem Controller 
ziemlich egal. Er funktioniert halt eben nicht, wenn man es nicht 
richtig macht. Und das auch in diesem Jahr.
Siehe da:

Beitrag "STM32, Verstrichene Zeit mittels SysTick ermitteln, wie Overflow/Rollover berücksichtigen?"

Ist wieder mal ein grandioses Beispiel für HAL-Programmierer, gelle?

W.S.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren