
Chapter 4
Using Your Serial Hardware
©
National Instruments Corporation
4-3
PCI Serial for Windows 95
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 wanted
to set the PCI-485 board to two-wire mode with
control, you would
write a 0x02 to I/O address 0x3FF. The PCI-485 board would immediately
switch to the two-wire mode with
control.
Setting the Transceiver Mode with DeviceIoControl
The NI Serial software extends the Windows function
DeviceIoControl
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
. Use the defined control
code value listed in Step 1 to set the transceiver mode, and 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:
with echo
0x01
Two-wire mode:
controlled
0x02
Two-wire mode:
auto control
0x03
Table 4-3. DeviceIoControl Function Input Values
Transceiver Mode
DeviceIoControl
Function Input
Value
Four-wire mode
128
Two-wire mode:
with echo
129
Two-wire mode:
controlled
130
Two-wire mode:
auto control
131
DTR
DTR
TXRDY
DTR
DTR
DTR
DTR
TXRDY