National Instruments 3.22E+04 Manuale Utente
Chapter 4
Using Your Serial Hardware
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.
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
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.
transceiver mode.
b.
Use the input buffer values (unsigned long) listed in Table 4-3 for
programming different transceiver modes.
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