Hallo,
ich wollte gerade an einem STM32F103 einen Pin einlesen. Leider bekomme
ich es nicht hin (Anfänger). Kann jemand mal kurz über den Code schauen?
Es handelt sich um einen Encoder mit Push Button. Ich wollte den zuerst
mal testen (ohne Entpresslung nur ob überhaupt was geht).
Push Button ist an einer Seit an GND angeschlossen, an der anderen Seite
mit Port A10. Messe ich mit dem Multimeter (GND, Port A10) messe ich 3,3
Volt (scheint also richtig konfiguiert), drücke ich den Taster messe ich
0 Volt -> Hardware scheint richtig zu sein. Es sind noch drei LED
angeschlossen, welche auch funktionieren (auch per Software).
Mein Code:
(direkt in main.c ... nur die unwichtigen Parts entfernt)
In Inputtest steht immer eine Null.
Sieht jemand den Fehler? Ich finde ihn gerade nicht :-(
Hermann K. schrieb:> Kann jemand mal kurz über den Code schauen?
Ja. Aber zuvor ne Frage: Möchtest du eine freundliche Antwort oder eine
ehrliche Antwort?
Du hast in deinem Codeschnipsel so ziemlich nichts ausgelassen, was man
besser nicht tun sollte.
Vielleicht hier mal ein paar weitere fragen:
- Wozu hast du eigentlich die vielen zusätzlichen Bezeichner per #define
eingeführt? Damit sich das viel netter liest, egal ob die Zuordnung
zwischen Pin und Port tatsächlich stimmt?
- wozu hast du
"volatile uint8_t Inputtest = 0;"
in die Schleife gesetzt? Ist dir der Zweck von volatile überhaupt
bewußt? Immerhin lautet die nächste Zeile ja so:
"Inputtest = GPIO_ReadInputDataBit(EncoderPort, EncoderPushButton);"
- wozu hast du uint8_t hingeschrieben? Du willst doch garnicht damit
wirklich etwas rechnen und weder die Bitanzahl noch das Vorzeichen ist
für dich relevant. Eigentlich sollte das der lieben Lesbarkeit zuliebe
eher ein bool sein, gelle?
- hast du eigentlich mal nachgeschaut, was sich hinter "GPIO_Pin_1" denn
so verbirgt?
- ist dir der Unterschied zwischen
#define MyBit 6
und
#define MyBit (1<<6)
verständlich? (eine beliebte Falle für Leute, die gerne mit Namen für
Bits hantieren wollen)
- hast du hier im Forum eigentlich mal die bisherigen Diskussionen über
diese "ST-Lib" mal gelesen? Was passiert denn dort, wenn man von all den
Bezeichnern, die man dort so in die diversen ..initStruct's
hineinschreibt, sich an irgend einer Stelle mal vertut?
So, das sollte erstmal genügen.
Es mag vielleicht ein wenig elitär anmuten, von den Leuten zu fordern,
daß sie wissen was sie tun, BEVOR sie es tun, aber genau das ist der
richtige Weg.
W.S.
W.S. schrieb:> Es mag vielleicht ein wenig elitär anmuten, von den Leuten zu fordern,> daß sie wissen was sie tun, BEVOR sie es tun, aber genau das ist der> richtige Weg.
Oder vielleicht mal nach stm32 example code for pin input
googeln?
Marc V. schrieb:> Oder vielleicht mal nach..
.. und dann blindlings irgendwelchen Quellcode herumkopieren, ohne
überhaupt zu verstehen, was man da grad anrichtet?
Genau DIESE Denkungsart kann ich überhaupt nicht leiden.
***unanständiger, aber genau so gemeinter Fluch leicht eingekürzt***
W.S.
Was soll dieses Nachtreten bringen?
Jetzt wird der TO wohl kaum noch berichten, woran es gelegen hat. Somit
können spätere Leser aus diesem Threads nichts lernen.
W.S. schrieb:> .. und dann blindlings irgendwelchen Quellcode herumkopieren, ohne> überhaupt zu verstehen, was man da grad anrichtet?>> Genau DIESE Denkungsart kann ich überhaupt nicht leiden.
Nein, um zu sehen wie das richtig oder zumindest funktionierend
gemacht wird.
W.S. schrieb:> Genau DIESE Denkungsart kann ich überhaupt nicht leiden.
ich glaube von Dir heute mehrere Postings gelesen zu haben und in all
denen gibst Du dich immer als Oberlehrer aus.Grundsaetzlich fertige
Loesungen bietest du generell nicht an sondern versuchst die TOs
blosszustellen wo auch immer es geht.Damit ist niemanden gedient.
Also "mein Freund" (ich denke Du weisst worauf ich anspiele...)versuche
dein Wissen und Koennen so an den Mann/Frau zu bringen ohne sie dabei zu
denunzieren....