salut
conf windows XP code Blocks win32 gui
pouvez vous me dire si ce code me permet d'envoyer un octet dont la valeur correspond a la lettre B avec les bonnes valeurs vitesse 9600baud pas de parité 1 bit stop ?
j'utilise portmon
dans la fonction
le deuxièmes paramètre ne devrait il pas écrire Byte aux lieux de &Byte ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 WriteFile (hPort, // Instance d'accès de votre port série &Byte, //Pointeur sur la donnée à envoyer sizeof(unsigned char),//Nombre de byte à envoyer &dwNumBytesWritten, //byte écrit dans le buffer NULL);
portmon
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 #include <windows.h> #include <string.h> int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow) { DWORD dwNumBytesWritten=0; char Byte = 'B'; HANDLE hPort; LPSTR lpszPortName = TEXT("COM1"); hPort = CreateFile ( lpszPortName, //port com1 GENERIC_READ | GENERIC_WRITE, //accès en lecture ou en écriture FILE_ATTRIBUTE_SYSTEM, //Share mode NULL, //Pointer to the security attribute OPEN_EXISTING, //Cela indique que l'instance sera créée //à condition que le port de //communication demandé existe //et donc est connu de l'OS 0, //Port attributes NULL); if (hPort == INVALID_HANDLE_VALUE) { MessageBox(NULL, TEXT("erreure"), TEXT("erreur createFile"), MB_OK); } PurgeComm(hPort,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR); DCB PortDCB;//structure DCB GetCommState (hPort,&PortDCB); // Structure de configuration PortDCB.DCBlength = sizeof (DCB); PortDCB.BaudRate = 9600; PortDCB.fBinary = TRUE; PortDCB.fParity = FALSE; PortDCB.fOutxCtsFlow = FALSE; PortDCB.fOutxDsrFlow = FALSE; PortDCB.fDtrControl = DTR_CONTROL_ENABLE; PortDCB.fDsrSensitivity = FALSE; PortDCB.fTXContinueOnXoff = FALSE; PortDCB.fOutX = FALSE; PortDCB.fInX = FALSE; PortDCB.fErrorChar = FALSE; PortDCB.fNull = FALSE; PortDCB.fRtsControl = RTS_CONTROL_ENABLE; PortDCB.fAbortOnError = FALSE; PortDCB.ByteSize = 8; PortDCB.Parity = NOPARITY; PortDCB.StopBits = ONESTOPBIT; if (!SetCommState (hPort, &PortDCB)) { MessageBox(NULL, TEXT("erreur"), TEXT("erreur structure"), MB_OK); //Mettre ici votre code d'erreur } WriteFile (hPort, // Instance d'accès de votre port série &Byte, //Pointeur sur la donnée à envoyer sizeof(unsigned char),//Nombre de byte à envoyer &dwNumBytesWritten, //Pointer sur la variable contenant le nombre //byte écrit dans le buffer NULL); CloseHandle(hPort); }
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
19 0 0.00004302 port com.exe IRP_MJ_CREATE Serial0 SUCCESS Options: Open 1 0.00000307 port com.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR 2 0.00000112 port com.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS 3 0.00000084 port com.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS 4 0.00000112 port com.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS 5 0.00000084 port com.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS 6 0.00000084 port com.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS 7 0.00000084 port com.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS 8 0.00000084 port com.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS 9 0.00000084 port com.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS 10 0.00000754 port com.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 9600 11 0.00000335 port com.exe IOCTL_SERIAL_SET_RTS Serial0 SUCCESS 12 0.00000363 port com.exe IOCTL_SERIAL_SET_DTR Serial0 SUCCESS 13 0.00000251 port com.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 14 0.00000112 port com.exe IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 15 0.00000251 port com.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40 XonLimit:2048 XoffLimit:512 16 0.00001481 port com.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: B 17 0.00000168 port com.exe IRP_MJ_CLEANUP Serial0 SUCCESS 18 0.01199454 port com.exe IRP_MJ_CLOSE Serial0 SUCCESS
Partager