SERRXD (qualifier,qualifier...)

SERRXD (qualifier,qualifier...),{#}variable,{#}variable...

SERRXD {#}variable,{#}variable...

Additional optional timeout syntax options for M2, X1 and X2 parts

SERRXD [timeout], (qualifier...)

SERRXD [timeout], (qualifier...),{#}variable,{#}variable

SERRXD [timeout], {#}variable,{#}variable

SERRXD [timeout,address], (qualifier...)

SERRXD [timeout,address], (qualifier...),{#}variable,{#}variable

SERRXD [timeout,address], {#}variable,{#}variable

Qualifiers - are optional variables/constants (0-255) which must be received in exact order before subsequent bytes can be received and stored in variables.

Variable(s) - receive the result(s) (0-255). Optional #'s are for inputting ASCII decimal numbers into variables, rather than raw characters.

Timeout - is an optional variables/constants which sets the timeout period in milliseconds (not available on M parts).

Address - is a label which specifies where to go if a timeout occurs.


Serial input via the serial input programming pin.

The serrxd command is similar to the serin command, but acts via the serial input pin rather than a general input pin. This allows data to be received from the computer via the programming cable. The PICAXE chip normally constantly scans the serial download pin to see if a computer is trying to initialise a new program download. However when it is desired to use serrxd it is necessary to disable this scanning. This is automatic, and is effectively the same as issuing a disconnect command.

After a serrxd or disconnect command is used it will not be possible to download a new program until:

1) the reconnect command is issued

2) a reset command is issued

3) a hardware reset is carried out.

Remember that is always possible to carry out a new download by carrying out the hard-reset procedure.


Reading number values

When the #variable format is used received data will be taken and converted to a number.

All characters received are ignored until the first ASCII digit character is received. A number is then determined until a non-digit character is received. The value stored in the variable will be number represented by the digit characters received. Note that the #variable will not complete until the number has been terminated by a non-digit character being received.

Serial Baud Rate and Input Format

The baud rate at which a serrxd command receives data depends on the operating speed at the time the serrxd command is executed. The default baud rates is 9600 baud for X2 parts operating at the default 8MHz speed and 4800 baud for non-X2 parts when operating at the default 4MHz speed.

All data bytes sent have 8 data bits, use no partity and have 1 stop bit. This is commonly refered to as "8,N,1" format; 9600,N,8,1 for X2 parts at default speeds, 4800,N,8,1 for non-X2 parts at default speed.

Effect of Increased Clock Speed

Increasing the clock speed increases the serial baud rate as shown below (non X2 parts).

4MHz 4800
8MHz 9600
16MHz 19200
32MHz 38400
64MHz 76800
Applies To:
All (except 08, 08M, 18, 18A, 18X, 28, 28A, 28X, 40X)
See Also:
Related Create:

Receive serial data from a computer

Receive data into the scratchpad from a computer connected to the programming connector

Code Example:
	serrxd [1000, timeout],@ptrinc,@ptrinc,@ptr
Copy Code Submit an Example

Submit Your Own Code!

You must be logged in to submit code examples. Login now.