2018.9.6
由于实验室项目需要处理数据并用串口进行发送,最后还要开机自启,专门鼓捣了一番。由于网上的方案随着树莓派本身版本变化而不适应,因此调试过程中也实在耗费了不少功夫。最有价值的调试方案还是官方的英文教程:Raspberry Pi 3 UART Boot Overlay Part Two,本文也是主要参照英文教程的方法进行调试,顺便附加了网上的一些其他经验。
本文分为两部分:1.树莓派串口数据发送配置(包括QT测试),2.树莓派用户程序开机自启(QT release的用户程序)
环境:
树莓派3B+ Version 2018 June(理论上Raspbian Jessie releases 2016年3月18日后的版本均适用)
Qt Creator 4.2.0 Based on Qt 5.7.1 (GCC 6.2.1 20161124, 32 bit)
串口发送数据:
首先先解释一下为什么树莓派3B+使用串口收发数据这么麻烦。树莓派内部有两个串口,
1. 硬件串口:官方称为PL011 UART,对应软件上的serials1,默认使用ttyS0,默认分配给蓝牙
2. 迷你串口:官方称为mini-uart,对应软件上的serials0,默认使用ttyAMA0,没有时钟源,必须由内核提供时钟参考源,这样以来由于内核的频率本身是变化的,就会导致“迷你串口”的速率不稳定。
因此我们希望能够稳定地使用硬件串口进行数据收发,解决思路是:使能串口,更换映射关系令serials1对应ttyAMA0,关闭硬件串口控制的蓝牙功能,将硬件串口重新恢复给GPIO的串口使用。
具体调试与实现步骤:
1. 串口线连接
注意引脚与图中接线,树莓派与串口连接线的RXD与TXD相互反接,树莓派GPIO中串口的管脚在p6、p8和p10(注意图中的白线和灰线)。
2. 开启串口功能
sudo raspi-config