关于树莓派3串口成功使用的一些见解,树莓派3虽然官方说硬件串口分配给了蓝牙模块,引脚上的tx和rx据说是一个模拟时钟源的迷你串口,由于时钟源是内核模拟的所以会受到各种因素的干扰,导致波特率上下波动不准确(这是网上说的)。
在串口上走了很多弯路,最终找到一个博客的帖子说有三种方法用来树莓派和Arduion串口通讯:1、USB 2、串口直连 3、i2c连接 ,就光USB连接我就废了老大的劲了。
简而言之,我把USB连接方式来和大家分享一下:
1、用USB把两块板子连接起来,哪个USB接口都行
2、输入指令查询端口
ls /dev/tty*
3、把usb连接线拔掉
4、再次输入指令
ls /dev/tty*
看看那个接口消失又出现,查看有没有ttyUSB0(是零不是欧)这个名字(网上各种搬砖的名字有ttyS0、ttyAMA0、ttyACM0。。。) (注只有在两个硬件USB互连的情况下才会有这个ttyUSB0接口。如果两者没有连接是不会有的) 最新的系统一般都会自动生成。看到ttyUSB0就说明二者可以通讯了。
5、树莓派安装串口工具
安装指令:sudo apt-get install minicom
配置串口指令:minicom:sudo minicom -s启动出现配置菜单:选serial port setup
进入串口配置
输入A 配置串口驱动为/dev/ttyUSB0
输入E 配置速率为9600 8N1
输入F 将 Hardware Flow Control 设 为 NO
回车 退出
修改Modem and dialing, (由于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, )
将Init string, Reset string, Hang-up string设置为空.
设置完成后选择Save setup as dfl将当前设置保存为默认设置.
在配置菜单 选Save setup as df1保存(一定要记得这一步)
选Exit退出下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyUSB0 对应为串口0 为你连接开发板的USB口
目前树莓派端的配置已经完成了
接下来上arduino测试代码
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print (“message”);
delay(1000);
}
树莓派是接收端输入指令minicom即可看到输出
但是有些朋友不想只是看到这些数据,而是用python脚本读取,下面上一个简单的串口读取python脚本:
import time
import serial
ser = serial.Serial( #下面这些参数根据情况修改
port=‘/dev/ttyUSB0’, #串口位置
baudrate=9600, #波特率
#默认字节数8 停止位1
)
x = ser.read(7) #读7个字节数据(一个字节等于一个英文字母,因为前面打印的是message所以读7个
print x
运行这个脚本是和运行nimicom工具一样的效果