DeviceIoControlWindowsfunctiononENETRS-485hardware,
completethefollowingsteps:
1. Addthefollowinglinestoyoursourcecode:
#include<winioctl.h>
#defineSERIAL_TM_4WIRE 0x80
#defineSERIAL_TM_2W_ECHO0x81
#defineSERIAL_TM_2W_DTR 0x81
#defineSERIAL_TM_2W_AUTO0x83
#defineIOCTL_SERIAL_SET_TRANSCEIVER_MODE
CTL_CODE(FILE_DEVICE_SERIAL_PORT,37,METHOD_BUFFERED,FILE_ANY_ACCESS)
2. TosettheRS-485transceivercontrolmode,use
IOCTL_SERIAL_SET_TRANSCEIVER_MODEand
DeviceIoControl.Forexample,tosettotwo-wireAuto
Controlmode,usethefollowingcode:
ULONGbytecount;
TRANSCEIVER_MODEtransceiver_mode=SERIAL_TM_2W_AUTO;
DeviceIoControl(
comhandle,
IOCTL_SERIAL_SET_TRANSCEIVER_MODE,
(PVOID)&transceiver_mode,
sizeof(transceiver_mode),
(PVOID)NULL,0,
&bytecount,
NULL
);