Hi,
an PB3 liegt noch "TRACE SWO", dieses Signal musst du mit "GPIO_RemapConfig(...)" deaktivieren um diesen Pin normal nutzen zu können.
Es gibt auch noch andere, die sich ähnlich verhalten!
Gruß
Chris
Das ist mir jetzt peinlich, aber ja. Soweit habe ich gar nicht gedacht
Um alles Taster an den uC anzuschließen hab ich leider nicht ansatzweise genug Pins übrig...
Ich muss mal die ganze Sache komplett überdenken, vielleicht fällt mir da was ein, ansonsten fliegen die Taster runter.
Aber vielleicht habt ihr noch nen kleinen Tipp für mich.
Der STM32 macht nicht auf allen Pins was er soll. Ich habe mir jetzt mal nen unbenutzen genommen und meinen Code mit einem ST-Link und der Arduino IDE hochgeladen. Dabei habe ich festgestellt, dass z.B. der Pin PB3 nicht macht was er soll.
Daraufhin habe ich testweise das Blink Beispiel aufgespielt das die LED ansteuert die auf Pin PC13 hängt. Das funktionierte ohne Probleme. Dann den Pin im Beispiel auf PB3 geändert und siehe da, es passiert nichts. Der Pin bleibt auf LOW.
Ich weiß nun nicht ob ich einfach eine schlechte Charge aus China erwischt habe, ob die etwas anderes auf der Platine geroutet haben als auf dem PCB steht oder ob es an der Arduino IDE liegt...
Hi,
an PB3 liegt noch "TRACE SWO", dieses Signal musst du mit "GPIO_RemapConfig(...)" deaktivieren um diesen Pin normal nutzen zu können.
Es gibt auch noch andere, die sich ähnlich verhalten!
Gruß
Chris
Puh, jetzt gehts in die Tiefe.
Hast du zufällig ne Quelle für mich wo ich die genauen Befehle finde?
Und warum lese ich davon nichts in den 100000 Tutorials im Netzt?
Mal ins Datenblatt des Chips schauen. Jeder kann alles, was er so von sich gibt, Tutorial nennen. Am Ende zählt nur das Datenblatt.
MfG Klebwax
Strom fließt auch durch krumme Drähte !
Habe mir garade das ganze Datenblatt angeschaut. Leider bin ich dadurch kein bisschen schlauer geworden.
Ich wühle mich mal weiter durchs Netz nach einer Lösung.
Aber danke bis hier her mal für eure Hilfe.
EDIT:
Jetzt läuft es
Ich hab den STMDuino Bootloader draufgespielt und da scheinen alle Pins "richtig" gemapt zu sein.
Also herzlichen Dank nochmal!
Gruß Scynd
Geändert von Scynd (30.01.2020 um 15:45 Uhr)
Hier (https://www.heise.de/developer/imgs/...6ee90b729a.gif) findet man wie ich finde eine gute Übersicht über die Pins und deren Funktionen.
Überall wo du außen eine "weiße Funktion" hast, musst du aufpassen.
Wie die Befehle in Arduino heißen kann ich dir leider nicht sagen, programmiere in "normalem" C.
so sieht das bei mir aus.Code:GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
Das Pinout habe ich auch
Ich denke in der Arduino IDE sieht es genau so aus. Die nimmt auch "normales" C an. Mir ging es um die Bezeichnungen in der Klammer: GPIO_Remap_SWJ_JTAGDisable, ENABLE
GPIO_PinRemapConfig() ist keine "normale" (Standard-) C Funktion, sondern eine spezielle API-Libraryfunktion.
"normales C" hat nur rund 20 feste Funktionen (Befehle), der Rest sind immer spezielle Library-Funktionen.
Arduino benutzt C++, aber ist weitgehend C99-abwärtskompatibel. Die Arduino C++ API Funktionen sehen meist anders aus, sind aber nicht "weniger normal" als andere C- oder C++-Lib-Funktionen auch.
Zum Thema GPIO_PinRemapConfig: da kenne ich keinen solchen Befehl, der von "mitgelieferten" Arduino-Libs stammen könnte, daher sind auch die Parameter in dieser Form nicht portierbar. Wenn es gelänge, diese Lib in die Arduino IDE einzubinden, könnte es aber durchaus funktionieren.
@scynd: ich würde dir empfehlen, auch in einem Arduino-Forum deine Fragen zu diesem Problem stellen, am besten im internationalen Arduino.cc Forum https://forum.arduino.cc/
Geändert von HaWe (30.01.2020 um 17:13 Uhr) Grund: typo
Lesezeichen