串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是由于串口通信是异步的,串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
linux下串口通信主要有下面几个步骤:
先介绍下打开串口的步骤:
1 //打开串口 2 int open_port(void) 3 { 4 int fd; 5 6 fd=open("/dev/ttyUSB0",O_RDWR | O_NOCTTY | O_NONBLOCK);//O_NONBLOCK设置为非阻塞模式,在read时不会阻塞住,在读的时候将read放在while循环中,下一节篇文档将详细讲解阻塞和非阻塞 7 // printf("fd=%d\n",fd); 8 9 if(fd==-1) 10 { 11 perror("Can't Open SerialPort"); 12 } 13 14 return fd; 15 }