关于使用树莓派串口与PC通讯(串口服务器)
记录防止忘记:20200904
器材:
1.PC笔记本,WIN10系统64位
2.树莓派3B
3.网线一根
4.5V电源模块一个,电口转光口模块一个,单模光纤两根,一个光口转usb接头(电源模块就是开关电源,电口转光口为公司自己设计的电路板,关口转usb也是公司大佬自己做的)
环境:上位机(PC笔记本)使用的是调试助手,下位机(树莓派)使用自己编写的QT软件
首先上位机与下位机连接我使用的是VNC :远程连接,下面这个
关于树莓派使用串口连接PC
一.树莓派的串口映射修改:
树莓派有两个串口,
1.硬件串口(/dev/ttyAMA0):有单独的波特率时钟源,性能高、可靠
2.mini串口(/dev/ttyS0):性能低,功能简单,没有专用时钟源而是由CPU内核时钟提供,波特率会受内核时钟的影响。
由于板载蓝牙模块,因此硬件串口默认分配与蓝牙模块通信,而mini串口默认分配给GPIO。如果我们想与外接串口模块进行通信,需要修改串口映射
。
而且GPIO引出的串口默认是用来做控制台使用的,因此还需禁用控制台功能
查看串口映射
在LX终端输入下面代码
ls -l /dev
serial0 ———————— GPIO
serial1 ———————— 蓝牙模块
修改串口映射(nano表示我当前使用的是nano编辑器,还有vim编辑器,根据自己使用情况修改即可)
sudo nano /boot/config.txt
在文件最后添加
dtoverlay=pi3-miniuart-bt
然后按下Ctrl+o(这里是英文O不是零)然后提示是否修改名称,按下Y,接着Ctrl+X离开,重启树莓派,再次查看串口映射
串口映射交换,硬件串口(/dev/ttyAMA0)映射到了GPIO。
禁用控制台功能
sudo systemctl stop [email protected]
sudo systemctl disable [email protected]
sudo systemctl disable [email protected]
查看波特率
sudo stty -F /dev/ttyAMA0
因为系统默认波特率是115200,因此我们需要把波特率修改为9600
从cmdline.txt中删除 console=serial0,115200
在LX终端输入打开文件
sudo nano /boot/cmdline.txt
修改后文件内容如下
console=tty1 root=PARTUUID=d9b3f436-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
重启树莓派,再次查看波特率
到这里树莓派配置完成
硬件连接:物理引脚对呀的8和10就是串口的针脚,连接到电口转光口的模块上,将光纤连接到USB接头,基本连接就完成了
(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)(注意:注意:注意:)
这里的停止位一定要写2,不然上位机发送到下位机,只有第一个字符正确,后面都是乱码
这里的停止位一定要写2,不然上位机发送到下位机,只有第一个字符正确,后面都是乱码
这里的停止位一定要写2,不然上位机发送到下位机,只有第一个字符正确,后面都是乱码
QT代码我放在这里了,如果有不对的地方请大佬指出来,我马上改
MSDN:https://download.****.net/download/lu2631605872/12810188
Github:https://github.com/Dlfk/QT
关于使用TCP连接PC
这个就没有什么外接设备了,开始用VNC连接PC的网线就直接可以用:上位机(PC)打开调试助手,填写好IP地址以及端口号
下位机使用代码
MSDN: https://download.****.net/download/lu2631605872/12810298
Github:https://github.com/Dlfk/QT
小白:记住首先点下位机的侦听按钮,然后上位机在点击连接
这里面的很多东西都是整理网友的,然后自己测试可以用,如果有侵权,马上删除
(排版有点乱,编辑器不太好用,格式刷没有,调整很麻烦)
项目使用到了树莓派作为串口服务器