J'utilise la classe C# SerialPort pour écrire sur mon port COM. Ce qui est bizarre, c'est que je peux obtenir des données du port très bien - il envoie les données que j'attends. Cependant, je ne peux pas envoyer de données au port. Toutes les données que j'envoie me sont immédiatement renvoyées en tant que nouvelles données provenant du port. J'attends une commande "Terminé" mais elle me renvoie les données que je viens d'envoyer. Cela fonctionne très bien à partir de Windows HyperTerminal mais ce code ne fonctionnera tout simplement pas. J'utilise 9600, 8-N-1 sans contrôle de flux.Erreurs C# avec les commandes SerialPort WriteLine
Je suis la plupart du temps en utilisant le code de cet article:
J'instancier mon port avec cette
comPort.BaudRate = int.Parse(_baudRate); //BaudRate
comPort.DataBits = int.Parse(_dataBits); //DataBits
comPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), _stopBits); //StopBits
comPort.Parity = (Parity)Enum.Parse(typeof(Parity), _parity); //Parity
comPort.PortName = _portName; //PortName
comPort.Handshake = Handshake.None;
comPort.ReadTimeout = 2000;
comPort.RtsEnable = true;
//now open the port
comPort.Open();
Et l'écriture est juste en utilisant comport.write (string) et je l'ai également utilisé comport .writeline (string) avec le même résultat. Quelle est la principale différence entre ce code et l'HyperTerminal plain vanilla qui les ferait agir différemment?
Désolé, destiné à inclure un lien vers l'article dont la plupart proviennent: http://www.dreamincode.net/forums/topic/35775-serial-port-communication-in-c%23/ –