最简单的树莓派+python3+串口通信的教程以及出现的问题的解决方式

6 篇文章 5 订阅
5 篇文章 3 订阅

寒假打算做个东西,需要用到串口通信,就百度教程,但是发现教程参差不齐,非常麻烦,什么下载这个下载那个,装什么minicom,简直了,于是在这里简化所有的步骤,一次搞定树莓派+python3+串口通信的开发!!!!!!

首先把树莓派和电脑端链接起来,接线方式如下:

如果不知道树莓派的串口在哪里,下面附上查看的命令:

输入 gpio readall 的命令就可以看了,如果不知道树莓派引脚排列,欢迎去看我的另一个教程,专门有解释哦。

---------------------------------------------------------------------------------------------------------------------------------------------

然后打开一个py文件,输入以下代码:

# -*- coding:utf-8 -*-
import serial
import time
ser = serial.Serial("/dev/ttyAMA0", 9600)  # 位置1
ser.flushInput()  # 位置2
ser.write("begin".encode("utf-8"))  # 位置3
def main():
    while True:
        count = ser.inWaiting()  # 位置4
        if count != 0:
            recv = ser.read(count)  # 位置5
            ser.write("Recv some data is : ".encode("utf-8"))  # 位置6
            ser.write(recv)  # 位置7
            ser.flushInput()
        time.sleep(0.1)  # 位置8

if __name__ == '__main__':
    main()

下面一个一个解释:

# 位置1:打开串口的命令,"/dev/ttyAMA0" 不一定是固定的,需要在这里查看

后面的9600是波特率,常用的有 115200 9600,其他的默认设置就可以。

# 位置2:先清空缓冲区域,省得有垃圾数据没有被接收影响我们的工作

# 位置3:串口发送一个字符串,这里需要用到encode,因为write 这个方法发送以二进制发送,接受也是接收的二进制,所以才要编码为这个,当然,我的文件编码是utf-8。

发送数据之后,还会返回一个整数,为发送的字符数量。

# 位置4:得到当前未接收的数据有多少个

# 位置5:将这么多数据全部读取出来。

# 位置6、7:回显接收的数据。因为接收的也是字节流,所以不需要编码,直接就能发送出去。

# 位置8:可以不要,但是为了不占用太多CPU资源,就可以适当写一下。

# 要点:要用 sudo 权限运行,否则无法使用串口。

就这么多即可完成串口通信,很简单吧。嘿嘿。

 

 

  • 35
    点赞
  • 278
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChuckieZhu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值