一、串口通信的一些概念
串口通信通常用在多机通信中。
串口通信是全双工的,那什么是全双工呢?
打个比方,一男一女在电话争吵,双方都能同时说话,对方也都能听到。
串口通信有两根数据线:Rx Tx
比如树莓派要和51单片机通信,将树莓派的R接到51的T,树莓派的T接到51的R(当然还要供电,就不啰嗦了)。就可以实现树莓派和单片机的交互了,双方都可以收发数据。当然你也可以只接一根,就变成单工了,只允许数据单向流动。
串口通信的双方必须要遵循特定的串口通信协议才能实现双方数据收发,就像两个人对话一样,语言相通,语速一致,才能实现对话。
在串口通信中,语言可以理解为数据格式(数据位、停止位、奇偶校验位),语速可以理解为波特率。
以上在串口通信的面试中已经足够了
二、树莓派串口通信设置
这一步是很重要的,因为树莓派3b的串口默认是被蓝牙占用的,也就会默认是用于蓝牙的。
但在前面的学习中,我们对树莓派的串口进行过一次设置或者说配置,就是解除了串口的蓝牙占用,用于串口登录,通过串口打印一些系统初始化的信息。
现在需要再次修改配置信息,来设置用于串口通信。配置方法如下:
①进入该目录 /boot/,打开cmdline.txt文件
cd /boot/
sudo vi cmdline.txt
进入该文件后,删除红色方框内容
删除后保存退出,删除后为:
②重启
sudo reboot
三、树莓派串口通信API
用到串口通信API需要包含头文件:
#include <wiringSerial.h>
串口常见的API参考文章:树莓派wiringPi库详解
四、树莓派与PC通信
将树莓派与电脑进行连接,测试一下树莓派与电脑的串口通信。
1.接线
TTL与树莓派TX,RX连接后插入电脑端口,注意是交叉接线,最后TTL与树莓派还要共地稳压,保证数据正常沟通。一共三根线,Rx ——Tx、Tx——Rx、GND——GND。最后别忘记给树莓派供电哦!
2.程序与测试
我们要实现的功能是树莓派与电脑的双工通信,也就是树莓派向PC发送数据,看PC是否接收到;PC向树莓派发送数据,看树莓派是否接收到。我们可以通过串口助手来查看树莓派发上来的数据以及模拟发送数据给树莓派。
①树莓派通过串口发送数据给PC
程序如下:
#include <wiringPi.h>
#include <wiringSerial.h>
#include <stdio.h>
int