Willkommen bei Teil 2 des Tutorials! 
Wir setzen also direkt fort.
Ebenso müssen wir unter dem Reiter MIDDLEWARE and....USB_DEVICE anwählen.
Hier stellen wir unter Class for FS IP "Communication Device Class
(Virtual Comport) ein:

Nun werden wir die SPI Ausgänge festlegen.
Dazu wählen wir den Reiter Connectivity und klicken Spi 1 an.
Unter MODE wählen wir FULL Duplex Master:

Um das ganze Übersichtlicher zu gestalten, beschriften wir den PIN A0 auf
dem Prozessor.
Via rechtem Mausklick auf den PIN wähle wir die Option Enter User Label und
nennen ihn CS PIN.

Wir haben somit erfolgreich die Pinbelegung festgelegt und gleichzeitig den
Verklemmungsplan erstellt:
Jetzt müssen wir noch den Prozessor entsprechend einstellen.
Wählt dazu CLOCK CONFIGURATION mittig oben im Bild.
Eine Meldung erscheint die Ihr getrost mi NO beantworten könnt:

Je nach STM Modell das Ihr benutzt, muss der Prozessor entsprechend
eingestellt werden um nicht zu wenig Leiszung zu haben oder auch nicht zuviel.
Hier die Einstellungen die Ihr übernehmen könnt für den STM32F401CDU6 bie
84Mhz:

Hier die Einstellungen die Ihr übernehmen könnt für den STM32F411CEU6 bei 96
MHz:

Habt Ihr alles fertig, dann Speichert nun euer Projekt, beendet das Programm
aber nicht.
Wir werden den STM nun mit dem ST-Link verkabeln.
Leider stimmt bei den meisten STM's die Beschriftung nicht.
Hier ein Beispiel eines nicht korrekt beschrifteten STM's.
Die Beschriftungen von 3,3 V und SWDIO wurden gegenüber der Voderseite auf
der Rückseite falsch beschriftet.
Die richtige Beschriftung befindet sich auf der Rückseite:

Daher zeige ich euch nun verschiedene Pläne die Ihr nutzen müsst, je nachdem
ob die Beschriftung korrekt ist oder nicht.
Anschlussplan bei korrekter Beschriftung:

Anschlussplan bei inkorrekter Beschriftung:

Wenn ihr korrekt angeklemmt habt, könnt Ihr den ST-Link in den USB-Ports
eures Computers stecken.
Nun klickt in der STM32 CUBE IDE auf DEBUG, der ST-Link muss eingesteckt
werden, dan nach dem kompilieren des Codes
die Daten direkt auf den STM übertragen werden:

Sollte Alles korrekt sein, werden folgende Nachrichten angezeigt:

Entfernt danach den ST-Link vom Computer und klemmt Ihn auch vom STM ab.
Dieser Schritt ist wichtig, denn Ihr dürft nicht gleichzeitig den ST-Link
mit Spannung versorgen und den STM via USB Kabel da dies
ansonsten zu einem Kurzschluss führt.
Nun öffnet den Gerätemanager unter Windows, unter Anschlüsse (COM & LPT)
solltet ihr nun den STM finden:

Wir verdrahten den STM nun wie auf folgendem Bild mit dem MCP2515:

Entfernt das USB Kabel vom STM und klemmt den ST-Link wieder an.
Öfnet die Arduino IDE.
Wir weden die Einstellungen für das Board vornehmen.
Achtet darauf das ihr EUER Board auswählt.
Ihr benötigt keine Auswahl des Comports da wir den Sketch später via Serial
Wire Debug (SWD) hochladen.
Restliche Einstellungen sind die gleichen:

Nun benötigen wir einen Sketch den wir aufspielen.
Ich habe diesbezüglich folgenden sketch dazu genutzt zum testen:
Um den Sketch mit dem STM32 zu nutzen passen wir Ihn etwas an.
WIr ergänzen unter Configuration:
#define CS_PIN_CAN0 A4
#define INT_PIN A0
#define MISO_PIN_CAN0 A6
#define MOSI_PIN A7
#define SCK_PIN A5
und löschen #define CS_PIN_CAN0 10.
Optional können wir das optische Feedback durch blkinken einer LED an C13 ebenfalls im Sketch realisieren.
Dazu ersetzen wir die Zeilen 683 bis 689 durch folgendes:
void loop() {
if (Serial.available() > 0) {
recvWithTimeout();
// Toggle the LED state
digitalWrite(PC13, !digitalRead(PC13));
} else {
timerCallback();
}
}
Nun verbinden wir unseren STM wieder mit dem ST-Link und laden den Sketch via SWD hoch.
Nach erfolgreichem hochladen sollte folgendes in der Arduino IDE Nagezeigt werden:

Entfernt den ST-Link und steckt euer USB Kabel an den STM.
Öffnet den Terminal des Arduino IDE.
Ihr könnt jetzt auf gewohnte Weise wie auch bei dem Arduino mit dem STM arbeiten.
Solltet Ihr andere Terminals wie zum Beispiel YAT oder ähnliches nutzen, denkt daran RTS und DTR zu aktivieren, da ihr ansonsten keine Daten erhaltet.
In Yat kann dies zum Beispiel mit der aktuellen Version wie folgt eingestellt werden :
Terminal -> Settinsg -> Control Pin -> Haken bei RTS und DTR auf on.

Ich hoffe euch hat das Turorial gefallen und der ein oder andere kann es nutzen!
Hinweise:
- Grundsätzlich kann dieses auch mit anderen Sketches für die Can-Bus Kommunikation durchgeführt werden.
- Wenn der STM als Virtual Comport erkannt wird nach dem Ihr die Prozessor Einstellungen geflasht habt, müsst Ihr dies zuküntig nicht mehr tun.