1、登陆linux系统,查看当前可用的设备,在终端输入:
dmesg | grep ttyS*
例如会显示如下,当前ttyS0可用
2、可先使用linux系统中的串口调试工具(cutecom)检查线路是否正常
linux安装cutecom的命令
sudo apt-get install cutecom
安装完成后,执行
sudo cutecom
显示
3、调试正常后,再验证代码的读取与发送
int g_tty_fd1 = -1 ;/*文件描述符*/
const char com1_path[] = "/dev/ttyS0";//串口1设备地址
/*打开串口设备1*/
g_tty_fd1 = open(com1_path, O_RDWR|O_NOCTTY|O_NDELAY) ;
nset1 = set_uart(g_tty_fd1,115200, 8, 'N', 1);
4、RS422收、发需要交叉连接
RS422采用4线全双工差分传输,多点通信的数据传输协议。和RS-485不同的是RS-422不允许出现多个发送端而只能有多个接收端。硬件构成上EIA-422 (RS-422)相当于两个EIA-485(RS-485),即两个半双工的EIA-485(RS-485)构成一个全双工的EIA-422(RS-422)。
5、Linux设置系统串口的波特率等参数
1)stty查看串口(/dev/ttyS0)参数,包括波特率,数据位等
stty -F /dev/ttyS0 -a
2)stty设置串口参数
stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8
该命令将串口1(/dev/ttyS0)设置成115200波特率,8位数据模式。一般情况下设置这两个参数就可以了,如果显示数据乱码,可能还需要设置其它参数,使用man查看stty其它设置选项。
3)cat打印串口(/dev/ttyS0)数据,如果串口接收到数据,会显示在终端上。
cat /dev/ttyS0
4)使用串口(/dev/ttyS0)发送数据
echo "hello jieke" > /dev/ttyS0
5、代码下载