![](/uploads/1/2/5/5/125561786/656506507.jpeg)
I'm using PHP to interface my AVR microcontroller in /dev/ttyS0. I bet someone else does the same.
Here's some hint :
- dio_tcsetattr -> is set to enable :
- RTS / CTS hardware control
- ICANON mode
(means that dio_read will wait until 0x0A/LF or other control character is entered in /dev/ttyS0 before it returns reading result, when you use dio_write it will also send 0x0A/LF automatically in the end of the message to your device).
For those who dont need RTS/CTS and/or ICANON, you can use linux command : stty.
Here's mine :
<?php
exec('stty -F /dev/ttyS0 4800 raw');
$fd=dio_open('/dev/ttyS0',O_RDWR | O_NOCTTY | O_NDELAY);
dio_fcntl($fd,F_SETFL,0);
dio_write($fd,'x41',1); // write 0x41 or 'A' to /dev/ttyS0
// Replace result_length with your expected command result length
for ($i=0;$i < result_length;$i++) {
$result .=dio_read($fd, 1);
}
echo $result;
?>
Refer to :
- Serial Programming Guide for POSIX Operating Systems, http://www.easysw.com/~mike/serial/
- stty man pages
![Port Port](/uploads/1/2/5/5/125561786/841789052.jpg)
![Communications Communications](http://odroid.com/dokuwiki/lib/exe/fetch.php?w=400&tok=9869ec&media=en:etc:cp2104_device_manager.gif)
'baud' - baud rate of the port - can be 0,9600,4800,2400,1800, 1200,600,300,200,150,134,110. Example #1 Setting the baud rate on a serial port.
![](/uploads/1/2/5/5/125561786/656506507.jpeg)