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
#6624315
Ich denke, Du hast jetzt eine gute Gelegenheit das mysteriöse und viel geschmähte HAL zu erforschen. Schau dir die Definition von HAL_GPIO_ReadPin an, da findest Du den einfachen Registerzugriff: GPIOx->IDR. Der Rest ist HAL Luxus.
Gast
#6624558
pegel schrieb: > Ich denke, Du hast jetzt eine gute Gelegenheit das mysteriöse und viel > geschmähte HAL zu erforschen. Ein Blick ins "Reference Manual" bietet meines Erachtens die besseren Informationen. HAL hat sich danach erledigt.
Gast
#6624563
uint32_t HAL_GPIO_ReadPort(GPIO_TypeDef *GPIOx)
{
return GPIOx->IDR;
}
Gast
#6624564
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?
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.
Gast
#6624704
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. Ja, das ist wohl so.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Das letzte #define kann man der ReadPin Funktion geben um alle Pins einzulesen. /edit Code ist copy/paste aus den ST GPIO Headern.
Gast
#6624791
Wolfram L. schrieb: > Stefan, ich arbeite und programmiere seit vielen Jahren/Jahrzehnten mit > C und Microcontrollern. Dann wundert mich ein wenig, warum Du diese Frage gestellt hast.
Gast
#6624817
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
#7055398
> Das letzte #define kann man der ReadPin Funktion geben um alle Pins > einzulesen. Wenn du dir den Code anschaust, merkst du dass das nicht so einfach geht: es wird lediglich GPIO_PIN_SET=1 als returnwert zurückgegeben
Gast
#7055405
HAL-Layer: ---> SPI Interface ---> LCD Display (Anzeige) ---> weisser Schimmel etc.
Gast
#7055408
Simon schrieb: > Wenn du dir den Code anschaust, merkst du dass das nicht so einfach > geht: Und wenn du dir das Datum des letzten Beitrag anschaust, stelltst du fest, dass das Thema seit über einem Jahr niemanden mehr interessiert.
Gast
#7055653
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.