关于树莓派3串口成功使用的一些见解

关于树莓派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工具一样的效果


 

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注