Vähe on asju, mis lähevad tööle kohe esimesel katsel. Kummalisel kombel STM32 Nucleo arendusplaadiga USB virtuaalse COM pordi näide on just selline. See, mis on tundunud olevat raske, ei pruugi seda sugugi olla. Panen siia kirja, kuidas see mul õnnestus.

Kõigepealt on meil vaja muidugi Nulceo NUCLEO-F401RE arendusplaati. Peame tegema ka konto mbed keskkonnas. Juhtmed ühendame järgmiselt:

USB +5V ühendada PA9-ga, D-1 ühendada PA11-ga ja D+1 PA12-ga, loomulikult ka GND omavahel kokku.

Mbed keskkonnas vali import ja otsi usbserial programmi.

Laadin alla ka STM32 Virtual COM Port Driver. Installime selle ära ja vaatame, mis numbrid tuleks panna vid ja pid väärtusteks. Failist stmcdc.inf näeme:

[DeviceList.NT]
%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5740

Seega muudan pisut main.cpp:

#include "mbed.h"
#include "USBSerial.h"
 
//Virtual serial port over USB
USBSerial serial(0x0483, 0x5740, 0x0001, false);
 
int main(void) {
 
    while(1)
    {
        serial.printf("I am a virtual serial port\r\n");
        wait(1);
    }
}

Kompileerin, laadin alla ja kopeerin Nucleo flash kettale.

Device Managerist vaatan COM pordi numbri:

Avan putty com pordi com21 kiirusega 9600:

Tulemus:

Ei olnud ju raske, kas pole?

Mitte kõik STM32 mikrokontrollerid, millel on USB tugi, pole toetatud. F4 seeria siiski on:

Viiteid:

https://developer.mbed.org/platforms/ST-Nucleo-F401RE/

https://developer.mbed.org/compiler/

http://www.st.com/web/en/catalog/tools/PF257938