寒假打算做个东西,需要用到串口通信,就百度教程,但是发现教程参差不齐,非常麻烦,什么下载这个下载那个,装什么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 权限运行,否则无法使用串口。
就这么多即可完成串口通信,很简单吧。嘿嘿。
来源: https://blog.csdn.net/qq_38431572/article/details/86488688