È una notizia eccellente quando scopro che un dispositivo USB comunica in VCP piuttosto che in USB-HID, perché le connessioni seriali sono facili da capire.
Se il dispositivo funziona in VCP
(Virtual Com Port), è facile come utilizzare il tipo System.IO.Ports.SerialPort
. È necessario conoscere alcune informazioni di base sul dispositivo, la maggior parte delle quali può essere ricavata da Gestione Windows (Gestione periferiche). Dopo aver costruito in questo modo:
SerialPort port = new SerialPort(portNo, baudRate, parity, dataBits, stopBits);
È may or may not necessità di impostare alcune bandiere aggiuntivi, come Richiesta di invio (RTS) e Data Terminal Ready (DTR)
port.RtsEnable = true;
port.DtrEnable = true;
Poi, aperto il porto.
port.Open();
Per ascoltare, è possibile collegare un gestore di eventi per port.DataReceived
e quindi utilizzare port.Read(byte[] buffer, int offset, int count)
port.DataReceived += (sender, e) =>
{
byte[] buffer = new byte[port.BytesToRead];
port.Read(buffer,0,port.BytesToRead);
// Do something with buffer
};
Per inviare, è possibile utilizzare port.Write(byte[] buffer, int offset, int count)
fonte
2013-10-24 00:04:14
Dove posso vedere il (nome della porta portno)? SerialPort.GetPortNames restituisce 0 porte. – Karlth
Nel mio caso, non conosco il numero di porta perché potrebbe non essere sempre lo stesso. Uso un 'ManagementObjectSearcher' per trovare il dispositivo (poiché conosco il nome), quindi eseguo' var searcher = new ManagementObjectSearcher ("SELECT * FROM WIN32_SERIALPORT") 'e iterato sulla raccolta' ManagementBaseObject' in 'searcher.Get () '. Lo farò nella risposta. –
Beh, sembra che ho bisogno di installare un driver di porta seriale Mbed per Windows (http://mbed.org/handbook/Windows-serial-configuration). L'ho eseguito e il computer ha sbuffato e gonfiato per alcuni minuti, producendo finalmente una bella riga "mbed serial port (COM3)" nel Device manager! :) Ci proverò. – Karlth