Bonsoir tout le monde!
Je souhaite pouvoir communiquer avec un micro-contrôleur sur le port COM virtuel de mon PC. Pour cela, j'ai un convertisseur USB/Série que je branche sur l'USB de mon PC et sur l'USART de mon µ. Le problème est que je ne parvient pas à faire communiquer mon programme côté PC sur le port COM. Pourtant le convertisseur est branché et détecté par mon PC sur le port COM virtuel. Il fonctionne très bien avec un programme tel que Hercule (qui permet de communiquer sur un port COM) et le µ est allumé.
Du côté de la prog, je me suis penché sur l'API fournit par Windows avec les CreateFile, etc... Et c'est là que débutent les problèmes et plus particulièrement avec la fonction createFile!
En effet, le port COM semble bien être détecté par mon programme mais je reçois à chaque fois l'erreur 5. Si je choisis un port COM avec rien de branché dessus, je reçois l'erreur 2 (j'en déduis que mon convertisseur est bien détecté).
Lorsque je parcours la doc sur le MSDN, je ne parviens pas à voir à quoi correspondent ces différents codes d'erreurs, mais d'après mes recherches sur internet, il semblerait que l'erreur 5 soit une insuffisance de privilèges! Quelqu'un pour confirmer et si oui, me dire comment y remédier?
Pour information, voici le bout de code que j'utilise pour ce début de connection:
Je tombe systématiquement dans la condition à la ligne 12...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 printf("Comport: "); scanf("%d", &g_comport); sprintf(port, "\\\\.\\COM%d", g_comport); unsigned char frame_ack[] = {'T', 0,0,0, 'R', 0,0,0, 'L', 0,0,0, 'A', 0,0,0,0,0, 'S'}; while(State != ComPort_End) { switch(State) { case ComPort_Open: g_hComm = CreateFile(port, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(g_hComm == INVALID_HANDLE_VALUE) { printf("impossible de se co...%d\n", GetLastError()); return -1; } break; ...
Donc si quelqu'un à une petite idée, je lui en serais reconnaissant!
Cordialement!
Partager