Section 7.  Installation 
 
 
7.7.17.5 Serial I/O CRBasic Programming 
To transmit or receive RS-232 or TTL signals, a serial port (see table CR800 
Serial Ports 
(p. 280)) must be opened and configured through CRBasic with the 
SerialOpen() instruction.  The SerialClose() instruction can be used to close the 
serial port.    Below is practical advice regarding the use of SerialOpen() and 
SerialClose().    Program CRBasic example Receiving an RS-232 String
 (p. 290) 
shows the use of SerialOpen().  Consult CRBasic Editor Help for more 
information. 
SerialOpen(COMPort,BaudRate,Format,TXDelay,BufferSize) 
 
•  COMPort — Refer to CRBasic Editor Help for a complete list of COM 
ports available for use by SerialOpen(). 
•  BaudRate — Baud rate mismatch is frequently a problem when 
developing a new application. Check for matching baud rates. Some 
developers prefer to use a fixed baud rate during initial development. 
When set to -nnnn (where nnnn is the baud rate) or 0, auto baud-rate 
detect is enabled.    Autobaud is useful when using the CS I/O and RS-
232 ports since it allows ports to be simultaneously used for sensor and 
PC comms. 
•  Format — Determines data type and if PakBus
®
 communications can 
occur on the COM port. If the port is expected to read sensor data and 
support normal PakBus
®
 telemetry operations, use an auto-baud rate 
argument (0 or -nnnn) and ensure this option supports PakBus
®
 in the 
specific application. 
•  BufferSize — The buffer holds received data until it is removed. 
SerialIn(), SerialInRecord(), and SerialInBlock() instructions are used 
to read data from the buffer to variables. Once data are in variables, 
string manipulation instructions are used to format and parse the data. 
SerialClose() must be executed before SerialOpen() can be used again to 
reconfigure the same serial port, or before the port can be used to communicate 
with a PC. 
 
7.7.17.5.1  Serial I/O Programming Basics 
SerialOpen()
1
 
•  Closes PPP (if active) 
•  Returns TRUE or FALSE when set equal to a Boolean variable 
•  Be aware of buffer size (ring memory)