树莓派通过串口接发数据(serial版)

    这次我要通过树莓派3B的串口和电脑互相发送数据,但是树莓派只有一个实实在在能用的串口ttyAMA0,另外一个还是迷你的串口,无法正常使用

    那这样我们就要利用到我的前一篇文章,既然串口要被使用,我们就不能使用串口连接登录树莓派,可以采用一根网线登录或者ssh登录


1、修改文件

输入 sudo vim /boot/cmdline.txt

删掉里面的 console=serial1,115200 和 kgdboc=serial1,115200 ,这样你才能正常地使用串口,不然后面会出现Permission denied

最终变为:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2  rootfstype=ext4 elevator=deadline fsck.repair=yes  rootwait


2、安装python-serial模块

输入 sudo apt-get install python-serial  

安装一看发现原来就有的,笑哭

我咋就没从python开始安装呢。。。

树莓派还是比较完备的,python2、3都有,不少模块也都随身携带,在此赞一下


3、启动python IDE

输入 python3

创建serial实例ser,端口为 ‘/dev/ttyAMA0',波特率设置为115200bps,第三个为校验位,可以不写

>>> import serial
>>> ser = serial.Serial('/dev/ttyAMA0',115200)

检验串口是否打开,若未打开则输入 ser.open() 打开

>>> ser.isOpen()  
True 

4、打开串口调试助手

我用的是百度下的友善串口调试助手,端口设置好之后我们点击上方的启动按钮,下方就会出现opened的绿色字样

树莓派通过串口接发数据(serial版)_第1张图片


然后我们在树莓派的python里发消息,检测发送是否正常:

>>> ser.write(b'Raspberry pi')
12

接收成功!

树莓派通过串口接发数据(serial版)_第2张图片



最后我们写一个python脚本代码,实现串口的发送和接收:

# -*- coding: utf-8 -*
import serial
import time
ser = serial.Serial('/dev/ttyAMA0', 115200)
if ser.isOpen == False:
    ser.open()                # 打开串口
ser.write(b"Raspberry pi is ready")
try:
    while True:
        size = ser.inWaiting()               # 获得缓冲区字符
        if size != 0:
            response = ser.read(size)        # 读取内容并显示
            print response        
            ser.flushInput()                 # 清空接收缓存区
            time.sleep(0.1)                  # 软件延时
except KeyboardInterrupt:
    ser.close()


运行树莓派端的python程序,我们试着发送一串消息过去

树莓派通过串口接发数据(serial版)_第3张图片


树莓派成功接收,大功告成!


你可能感兴趣的:(树莓派应用与开发)