Chapter 4 Using Your Serial Hardware
PCI Serial for Windows Me/9x 4-4 ni.com
The scratch register is located at offset 7 from the base address of the port.
For example, if COM2 were located at base address 0x3F8, and you want
to set the PCI-485 board to two-wire mode with DTR control, you would
write a 0x02 to address 0x3FF. The PCI-485 board would immediately
switch to the two-wire mode with DTR control.
Setting the Transceiver Mode with DeviceIoControl
The NI-Serial software extends the DeviceIoControl Windows function
for programming the transceiver control mode. To program the transceiver
control mode using DeviceIoControl, complete the following steps:
1. Add the following lines to your source code:
#include <winioctl.h>
#define IOCTL_SERIAL_SET_TRANSCEIVER_MODE
CTL_CODE(FILE_DEVICE_SERIAL_PORT,37,
METHOD_BUFFERED,FILE_ANY_ACCESS)
2. Use the Win32 function DeviceIoControl, as follows:
a. Use the defined control code value listed in step 1 to set the
transceiver mode.
b. Use the input buffer values (unsigned long) listed in Table 4-3 for
programming different transceiver modes.
Table 4-2. Transceiver Mode Control Bytes
Transceiver Mode Control Byte
Four-wire mode 0x00
Two-wire mode: DTR with echo 0x01
Two-wire mode: DTR controlled 0x02
Two-wire mode: TXRDY auto control 0x03