Écriture sur le port COM en C# ou python
-
30-09-2019 - |
Question
J'essaie d'écrire une chaîne sur un COM4 qui est un adaptateur USB-série à l'aide de Visual Studio C# et j'ai obtenu l'erreur suivante :
L'accès au port 'COM4' est refusé.
Mon programme est extrêmement simple :
serialport.Open();
serialport.WriteLine("test");
serialport.Close();
J'ai également essayé d'utiliser pyserial avec python et j'ai obtenu :
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
ser.write("string")
File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 255, in write
raise SerialException("WriteFile failed (%s)" % ctypes.WinError())
SerialException: WriteFile failed ([Error 6] The handle is invalid.)
Je sais que cette question n'est pas vraiment liée à la programmation et concerne probablement Windows 7, mais j'espérais que quelqu'un aurait déjà eu un problème similaire.
La solution 3
Cela n'avait rien à voir avec les autorisations ni avec le port utilisé.j'ai trouvé un question connexe qui disait que c'était à cause de la version que j'avais installée (Python 64 bits et pyserial 32 bits), je me sens tellement idiot.
Ce que je n'arrive toujours pas à comprendre, c'est pourquoi cela n'a pas fonctionné non plus en C#, mais ce n'est pas grave.Je vais juste utiliser python.
Autres conseils
Essayez ceci:
Faites un clic droit sur l'exécutable et choisissez « Exécuter en tant qu'administrateur ». Windows 7 par défaut exécute des programmes sans privilèges d'administrateur. Je parie que la possibilité d'écrire à un port COM nécessite l'exécution d'un programme en tant qu'administrateur.
Vous ne pouvez pas avoir plusieurs connexions simultanées à un port série. Le port est probablement utilisé.