aaronyang2913
aarongyang2913
2015-10-15 15:19
采纳率: 0%
浏览 7.1k

树莓派 用Python编写串口通讯,能发送但无法接收

在使用Raspberry Pi2上,使用Python环境(2.7, 3.0都试过了),执行如下程序

import serial
ser = serial.Serial("/dev/ttyAMA0", 9600, timeout=5)
ser.write("hello")
串口调试助手能够正常收到数据,然后第一次执行如下指令:
ser.read(10)
此时在串口调试助手上发送abcde,在屏幕上能够收到数据,即abcde。但是在此执行
ser.read(10)
无论串口调试助手上发送什么数据,在屏幕上只会显示:
''

但是如果我重新执行ser.write指令,再执行ser.read后,又能够收到了。但是在此执行仍然收不到!请大侠帮忙!谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • devmiao
    devmiao 2015-10-15 15:53
    点赞 评论
  • aaronyang2913
    aarongyang2913 2015-10-16 02:37

    谢devmiao的回答,我看了帖子,很是详细。但还是没有解释我碰到的问题呀。我现在是有数据从电脑发出了,但是在树莓派上再次使用read()函数读到的是空字符?这是怎么回事?

    点赞 评论
  • oyljerry
    oyljerry 2015-10-16 08:55

    用树莓派自己的日志等信息先查看是否有收到电脑发出的数据,然后就是你的程序侦听的设置等是否正确

    点赞 评论
  • aaronyang2913
    aarongyang2913 2015-10-19 02:13

    我这两天又测试了一下,使用了minicom在树莓派上运行,结果依旧。 运行minicom后,输入任何信息,在电脑侧的串口调试助手马上就能收到,但是在串口调试助手输入信息然后点击“发送”,则在minicom处只收到一次,之后什么也收不到了。但是依然能够从minicom处发送信息给串口调试助手。
    我在电脑侧使用的是usb转232串口,波特率、奇偶校验、数据位等参数和树莓派中设定的一样,但在树莓派这里就是只能发送,无法接收,不知如何是好了!

    点赞 评论
  • qq_23685513
    qq_23685513 2017-04-06 09:49

    那是因为你只发了一次hello,所以只能读出一次,你要是写了三遍就能read出三遍了。

    点赞 评论
  • qq_40132977
    qq_40132977 2019-06-17 10:11

    while 包住read试试

    点赞 评论

相关推荐