串口编程
串口概念、初始化、接受发送数据及C代码
什么是串口通信:串口按位(bit)发送和接收字节。串口是使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。通信使用3根线完成:(1)地线,(2)发送,(3)接收。
什么是串行接口:串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
Linux串口通信的步骤:
串口的初始化
1、打开串口
//打开串口
int open_port(void)
{
int fd;
char *uart3= "/dev/ttySAC3";
fd=open(uart3,O_RDWR | O_NOCTTY | O_NONBLOCK);//O_NONBLOCK设置为非阻塞模式,在read时不会阻塞住,在读的时候将read放在while循环中,下一节篇文档将详细讲解阻塞和非阻塞
// printf("fd=%d\n",fd);
if(fd==-1)
{
perror("Can't Open SerialPort");
}
return fd;
}
打开串口时也可以多加一些内容,比如判断串口为阻塞状态、测试是否为终端设备等,这些是必要的,所以较上面的基本的打开串口的代码,更加完整健壮一些的代码流程如下所示:
2、