可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据。树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践。这篇文章教大家如果通过树莓派的串口发送数据。
一、开启树莓派的串口功能
sudo raspi-config
选择Interfacing Options ->Serial,选择“yes”选项即可开启树莓派串口功能。
开启树莓派的串口功能
二、安装minicom串口软件
minicom是Linux上的串口调试工具,通过这个软件可以方便的在串口上发送和接受数据。首先安装minicom
sudo apt-get install minicom
minicom串口调试工具的用法如下:
用法:minicom [选项] ... [配置]
Linux和其他类似unix的系统的终端程序。
-b,--baudrate:设置波特率(忽略config中的值)
-D,--device:设置设备名称(忽略config中的值)
-s,--setup:进入设置模式
-o,-noinit:启动时不初始化调制解调器和锁定文件
-m,--metakey:对命令使用meta或alt键
-M,--metakey8:使用8位元密钥作为命令
-l,--ansi:文字;假定屏幕使用非IBM-PC字符集
-L,--iso:不要假设屏幕使用ISO8859
-w,--wrap:换行
-H,--displayhex:以十六进制显示输出
-z,-statline:尝试使用终端的状态行
-7,--7bit:强制7bit模式
-8,--8bit:强制8bit模式
-c,--color = on / off:开启或关闭ANSI样式的颜色用法
-a,--attrib = on / off:使用反转或高亮显示属性
-t,--term = TERM:覆盖TERM环境变量
-S,--script = SCRIPT:在启动时运行SCRIPT
-d,--dial = ENTRY:从拨号目录拨打ENTRY
-p,--ptty = TTYP:连接到伪终端
-C,--capturefile = FILE:开始捕获到FILE
-F,--statlinefmt:状态行的格式
-R,-remotecharset:通信伙伴的字符集
-v,--version:输出版本信息并退出
-h,--help:显示帮助
配置:要使用的配置文件
这些选项也可以在MINICOM环境变量中指定。
当前未设置此变量。
访问文件的配置目录和配置
编译到/ etc / minicom。
向报告错误。
启动minicom:
minicom -D /dev/ttyAMA0
默认波特率为115200,如需设置波特率为9600加参数 -b 9600,-D代表端口,/dev/ttyAMA0 类似于windows中的COM1,
注:如果是树莓派3B,板载的串口ttyAMA0作为蓝牙使用,用户串口端口改为ttySO。如下程序也类似,如果是到的树莓派3B,ttyAMA0需改为ttyS0。
三、树莓派使用python 通过串口发送数据
首先安装python serial扩展库。
sudo apt-get install python-serial
然后编写树莓派通过串口发送数据程序。
#!/usr/bin/python
# -*- coding:utf-8 -*-
import serial
ser = serial.Serial("/dev/ttyAMA0",115200) #启动串口
print('serial test start ...')
ser.write('Hello World! \n') #通过串口发送数据
try:
while True:
ser.write(ser.read()) #接收字符并回传
except KeyboardInterrupt:
if ser != None:
ser.close() #关闭串口
然后执行程序,如果有usb转串口工具,就可以用3根杜邦线,把usb转串口的RX,TX,GND 三个引脚和树莓派的TX,RX,GND三个引脚对应连接起来,这样打开电脑的串调试工具,就可以看到树莓派用python通过串口发送过来的数据了。
在执行程序的时候,一些常见错误和其解决方法如下。
错误1:“AttributeError: ‘module’ object has no attribute ‘Serial’”
解决方法:
(1)你的文件名serial.py和引入的第三方库名字重复了,解决方法:重命名文件名,并删除当前目录下的serial.pyc文件
(2)你没有安装第三方库文件,解决方法,pip install serial 之后 pip install pyserial
错误2:“TypeError: ‘module’ object is not callable”
解决方法:
(1)你的文件名serial.py和引入的第三方库名字重复了,解决方法:重命名文件名,并删除当前目录下的serial.pyc文件
(2)你没有安装第三方库文件,解决方法,pip install serial 之后 pip install pyserial