[PATCH] Documentation about RS485 serial communications

Claudio Scordino claudio at evidence.eu.com
Thu Oct 28 11:31:45 EDT 2010


Chris Down ha scritto:
> Just a minor issue.
> 
> On 24/10/2010 12:29, Claudio Scordino wrote:
>> +4. USAGE FROM USER-LEVEL
>> +
>> +   From user-level, RS485 configuration can be get/set using the previous
>> +   ioctls. For instance, to set RS485 you can use the following code:
>> +
>> +	#include <linux/serial.h>
>> +
>> +	/* Driver-specific ioctls: */
>> +	#define TIOCGRS485      0x542E
>> +	#define TIOCSRS485      0x542F
>> +
>> +	/* Open your specific device (e.g., /dev/mydevice): */
>> +	int fd = open ("/dev/mydevice", O_RDWR);
>> +	if (fd < 0) {
>> +		/* Error handling. See errno. */
>> +	}
>> +
>> +	struct serial_rs485 rs485conf;
>> +
>> +	/* Set RS485 mode: */
>> +	rs485conf.flags |= SER_RS485_ENABLED;
>> +
>> +	/* Set rts delay before send, if needed: */
> This comment is misleading as the delay must be set regardless.
> If it is not used it should be set to 0.
> 
>> +	rs485conf.flags |= SER_RS485_RTS_BEFORE_SEND;
>> +	rs485conf.delay_rts_before_send = ...;

Hi.

What do you mean ?

The delay has not to be set regardless: if the
SER_RS485_RTS_BEFORE_SEND flag is not set, then the value of
delay_rts_before_send is ignored, whatever value is contained.

In other words, the value of delay_rts_before_send is used only when
SER_RS485_RTS_BEFORE_SEND is set.

If you don't need a delay, you have to unset the
SER_RS485_RTS_BEFORE_SEND flag rather than setting a delay equal to 0...

Best regards,

	Claudio





More information about the linux-arm-kernel mailing list