Einfache Experimente mit dem Mikrocontroller STM32F103 (Blue Tablet)



Viele haben eine „blaue Pille“ erworben, um es zu versuchen. Aber aufgrund der Komplexität der Programmierung war dieses Ding bis zu besseren Zeiten irgendwo im Regal.

Wir werden berücksichtigen, dass die „besten Zeiten“ gekommen sind.

Was ist für Experimente notwendig:


  • Hardware
  • Software

Hardware


Alle gebrauchten Teile / Komponenten können auf aliexpress.com erworben werden

  • Natürlich vor allem der Controller selbst. "Blue Tablet"
  • USB-UART-Adapter
  • Micro-USB-Kabel
  • eine Reihe von Drähten zum Verbinden von Komponenten miteinander

Es wird empfohlen, den ST-Link V2- Programmierer zu verwenden, um im Vergleich zu UART das Laden von „Firmware“ und das Debuggen von Programmen zu beschleunigen

Software



Was ist ein Modul?


Ein Modul ist eine Kombination aus Hardware und Software. Der Hardwareteil ist das „Tablet“ STM32F103C8T6, der Softwareteil ist die mit dem MIOC- Programm erstellte „Firmware-Vorlage“ . Dieses Programm ist OpenSource .

Mikrocontroller-Ports


Der Mikrocontroller hat Stifte oder Beine. Einige von ihnen sind Mikrocontroller-Stromversorgungen, andere haben einen speziellen Zweck (z. B. Zurücksetzen), andere sind Allzweck-Ein- / Ausgabeschnittstellen (englische Allzweck-Ein- / Ausgabe, GPIO).

Ports sind gruppiert (A; B; C ...). Jede Gruppe enthält bis zu 16 Ports, die von 0 bis 15 nummeriert sind. Daher sieht die Portnummerierung wie folgt aus: PA0, PA1, ...

Ports werden für die Kommunikation zwischen den Komponenten des Moduls verwendet, beispielsweise einem Mikroprozessor und verschiedenen Peripheriegeräten. Ports können als Eingabe, Ausgabe und bidirektional fungieren.

Die Tablet-Karte ist mit Anschlüssen gekennzeichnet.

GPIO - Allzweck-E / A-Schnittstelle


Im E / A-Modul werden die Haupttypen von Ports in der Tabelle dargestellt:



Als Sensoren, Aktoren werden wir verschiedene Geräte von Arduino verwenden.

MIOC-Programm (Module Input-Output Configurator)


Mit diesem Programm erstellen / konfigurieren wir die Firmware-Vorlage (Projekt für Embitz; Keil) des IO-Moduls. Das Installationsprogramm benötigt nicht. Herunterladen, ausführen. Mit diesem Programm erstellen wir globale Variablen, die wir in unserer Firmware verwenden. Variablen können Ports zugeordnet werden.

Erstes Fenster ausführen:



Erstellen Sie ein Projekt:



Wählen Sie einen Ordner für das Projekt. Ordner, für das Projekt sollte leer sein!







Das erste Programm - "Hallo Wort" für den Mikrocontroller


Wir blinken die LED auf der „blauen Pille“. Diese LED ist mit dem PC13-Port verbunden.

Zeile zur Variablentabelle hinzufügen





BSP-Code generieren (Taste F8)



Außerdem ist jedes Mal nach einem Projektwechsel eine BSP-Generierung erforderlich!

Öffnen Sie das erstellte Projekt in der Entwicklungsumgebung von EmBitz oder Keil. EmBitz ist immer noch eine Problemumgehung. Es scheint, dass der Autor dieses Projekt aufgegeben hat. Höchstwahrscheinlich wird das Projekt in Zukunft Code :: Blocks verwenden.

Schreiben Sie in die Datei main.c Folgendes:


(Um das Bild zu vergrößern, öffnen Sie es in einer neuen Registerkarte.)

Drücken Sie in EmBitz F2, und drücken Sie F7, nachdem das Informationsfenster angezeigt wurde. Die Zusammenstellung sollte erfolgen.

Durch erneutes Drücken von F2 werden die Informationslesezeichen ausgeblendet.



Laden Sie es auf den Mikrocontroller herunter und sehen Sie, wie es funktioniert.

Knopf


Fügen Sie eine Schaltfläche hinzu, zum Beispiel:



Schaltplan:



Fügen Sie der Tabelle eine Variable hinzu:



Wir generieren BSP.

Ändern Sie das Programm wie folgt:



Wir erstellen ein neues BSP (F8), kompilieren es und laden es in den Mikrocontroller.

Wir drücken den Knopf - die LED leuchtet auf, lassen los - sie erlischt.

Anstelle einer LED kann ein Relais an einen anderen Port angeschlossen werden, zum Beispiel:



Und verwalten Sie eine Art Nutzlast.

Nachrichten an die Konsole ausgeben


Sie müssen bestimmen, welche Konsole verwendet werden soll.

Die Optionen sind:

  • USB-UART-Adapter
  • virtueller COM-Anschluss (Micro-USB-Kabel)

Wenn UART1 und USB als Konsole gleichzeitig in der Konfiguration ausgewählt sind und USB VCP nicht ausgewählt ist, wird die Konsole nirgendwo zugewiesen. Das heißt, Die Funktion print_str (oder das Druckmakro) wird nicht beschworen, aber es wird auch keine Ausgabe ausgegeben. Das gleiche Verhalten tritt auf, wenn Sie keine Schnittstelle oder USB VCP auswählen, aber weder UART1 noch USB als Konsole auswählen.

Konsolenkonfiguration:



Verbinden Sie TettaTerm mit dem COM-Port (Konsole). Wenn wir die Firmware über UART1 herunterladen, vergessen Sie nicht, den COM-Port zu trennen / anzuschließen. In TerraTerm "Hot Buttons" Alt + I; Alt + N Dies ist für die Startoption über ST-Link nicht erforderlich.

Bearbeiten Sie das Programm:



Nun wird der Status der Schaltfläche auf der Konsole angezeigt:



DS18B20


Schließen Sie den Temperatursensor DS18B20 an das „Tablet“ an.



Fügen Sie die Variable in die Tabelle ein:



Ändern Sie das Programm wie folgt:



Wir erstellen eine neue Konfiguration, kompilieren sie und laden sie in den Mikrocontroller.

Die Konsole zeigt die vom Sensor gemessene Temperatur an.



ADC


Als Beispiel für die Arbeit mit dem ADC können Sie das Potentiometer verwenden:



Oder Bodenfeuchtesensor



Lassen Sie uns auf den letzten eingehen:

Konfigurieren Sie den Port:



Programm bearbeiten:



Wir kompilieren, laden.

In der Konsole beobachten wir:



ADC - aktueller ADC-Messwert. max und min - aufgezeichnete minimale und maximale Sensorwerte, vollständig trocken (0%) und sehr nass (100%).

Sehr nass (100%) - Legen Sie den Sensor in ein Glas Wasser. Sehr trocken (0%) - liegt im Freien.

Tatsächlich haben wir den Bodenfeuchtesensor von 0 auf 100% kalibriert. Wir setzen die Maximal- und Minimalwerte in den Programmtext.



Das Ergebnis der Arbeit. Der Sensor befindet sich im Boden des Blumentopfs:



Dieses Projekt ist eine Lösungsvorlage für die Bewässerung von Pflanzen.

Das ist alles für jetzt. Das MIOC-Programm wird mit zusätzlichen Funktionen ergänzt.

Source: https://habr.com/ru/post/de466663/


All Articles