w怎么接显示 树莓派zero_树莓派ZeroW串口通讯

电脑系统:WIN10

树莓派型号:Zero W

树莓派系统:Raspbian,2018-11-13-raspbian-stretch-lite.img

Python 2.7.3

软件&工具:sscom5.13.1(串口助手),串口通讯线,串口驱动(电脑用)

硬件配置使用树莓派的GPIO15、GPIO16作为串口的TxD和RxD,另外还有附近的5V、GND。准备好串口通讯线,电脑上装好驱动。

树莓派CPU的内部有两个串口,一个是硬件串口,一个是迷你串口(mini-uart)。硬件串口的速率是稳定的,而迷你串口没有时钟源,由内核提供时钟参考源,由于内核本身的频率是变化的,导致迷你串口的速率不稳定。

系统默认把硬件串口分配给了蓝牙模块,迷你串口分配给了GPIO(GPIO15、GPIO16),这将影响串口通讯的可靠性,所以在安装树莓派系统的时候,交换了两个串口的分配:

pi@raspberrypi:~ $ ls -l /dev  #查看设备信息

ttyAMA0就是GPIO上的那个串口,系统默认它是作为console使用的,不过在安装树莓派系统的时候已经把这个配置给删掉了,现在可以作为普通的串口使用。

基本功能

先实现基本的数据收发功能,主要是为了测试接收和发送的通路是否正常。

新建一个测试文件 test_serial.py,右键复制内容,保存退出:

pi@raspberrypi:~ $ sudo nano test_serial.py

1 # -*- coding:utf-8 -*-

2 import serial

3 import time

4

5 def main():

6 ser = serial.Serial("/dev/ttyAMA0", 19200)

7 ser.flushInput()

8 ser.flushOutput()

9

10 while True:

11 recv_num = ser.inWaiting()

12

13 if recv_num > 0:

14 recv_buffer = ser.read(recv_num)

15 ser.flushInput()

16

17 ser.flushOutput()

18 ser.write('received ' + str(recv_num) + ' bytes >> ')

19 ser.write(recv_buffer)

20

21 time.sleep(0.1)

22

23 if __name__ == '__main__':

24 main()

这段程序首先是打开串口0,波特率19200。然后在while循环中等待接收数据,接收到数据以后,把这个数据以及它的字节数发送出来。

每0.1s扫描一次,测试数据最好稍微短一点,否则就肯定被截断了。

运行 test_serial.py

pi@raspberrypi:~ $ python test_serial.py

如果中途需要退出,比如去重新编辑文件,可以按Ctrl+Z

连接串口通讯线,打开串口助手(sscom),选择扫描到的COM口,设置波特率为19200,不勾选HEX显示、HEX发送,然后点击打开串口。

串口助手发送:hello_serial

串口助手接收:received 12 bytes >>  hello_serial

串口助手接收到的就是树莓派串口发送的,说明硬件连接正常,串口发送接收功能正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值