基本概念及流程分析
什么叫做串口通信:串口通信是指一次只传送一个数据位。虽然在通信的时候串口有 8 位或者 9 位等,但是在物理层面传输的时候,它仍然是以单个 bit 的方式传输的。
什么是串口:串口一般特指 RS232 标准的接口。虽然以太网以及 USB 等等也是以串行的方式发送数据,但不是串口。
什么是RS232:RS-232 是 EIA(Electronic Industries Association)定义的串行通信的电器接口。最被广泛使用的是RS-232C,它将 mark(on)比特的电压定义为-3V 到-12V 之间,而将 space(off)的电压定义到+3V 到+12V 之间。
RS232 有两种标准定义,25 针和 8 针的。不过即使是 8 针,在大多数场合工程师也觉得太多了,绝大多数情况下都是只使用 TX,RX 针脚发送和接收信号,再加上一个 GND
地脚。
打开串口,一般使用 open 函数,打开之后会返回句柄,这个句柄就可以提供给发送和接收函数使用。串口本质上也是字符设备,但是串口是属于一种比较特殊的字符设备。
初始化串口,串口需要配置波特率,数据位,校验位等等一系列的参数,初始化的过程掌握了,发送和接收都比较容易实现。虽然初始化比较麻烦,但是无论是在 window 下还是在 linux下,串口的初始化都是很容易找到例程的。个人建议只要能够读懂代码,根据实际需求进行验证和配置即可。
发送和接收数据,前面提到过串口是属于字符设备的,可以使用 read 函数和 write 函数实现。
关闭,使用函数 close 即可关闭串口。