【Micropython】肝货~使用USB_VCP通过USB串口与树莓派或PC端通信

为什么要使用USB_VCP?

Micropython有很多串口,例如PYboard,有5个串口可以使用,但是,平时我们在做一些项目的时候,需要使用的引脚较多,可能会产生复用的情况。例如与树莓派进行串口通信时,树莓派只有一个引脚串口,在一些项目中为了不占用这个引脚,将该引脚腾出让给其他无法使用USB串口的设备至关重要。甚至关乎项目成败。40个gpio里只有一个串口,如果我们使用TTL转串口,将Micropython串口转接到树莓派的USB口,那会非常麻烦并且引入了许多未知的,可能导致通信失败的变量。杜邦线的好坏,松紧程度也许会导致通信失败等问题。因此,USB的串口必须要使用起来。我们调试Micropython需要用到的Putty使用的就是该串口。那么也许有小伙伴就会疑惑了,我们使用了这个串口,还可以使用Putty等调试工具进行调试吗。答案是:当然可以!!!

下面附上Micropython引脚图。

废话不多说,直接看USB_VCP。

Micropython引脚图

1、Micropython USB_VCP简介:

USB_VCP是一个内置函数,是标准pyb库下的一个对象。class pyb.USB_VCP

import pyb
usb_vcp = pyb.USB_VCP()  # 将该对象赋给usb_vcp

2、USB_VCP()中的一些方法:

usb_vcp.setinterrupt(chr)

设置中断python运行键,默认是3(Ctrl+C)。
-1是禁止中断功能,在需要发送原始字节时需要。

usb_vcp.any()

如果缓冲区有数据等待接收,返回True

usb_vcp.read([nbytes])

最多读取nbytes字节。如果不指定nbytes参数,那么这个函数和readall()功能相同。

usb_vcp.readall()

读取缓冲区全部数据

usb_vcp.readinto(buf[, maxlen])

读取串口数据并存放到buf。如果指定maxlen参数,那么最多读取maxlen个字节

usb_vcp.readline()

读取整行数据

usb_vcp.readlines()

读取所有数据并分行存储,返回字节对象列表

usb_vcp.write(buf)

写入缓冲区数据,返回写入数据的个数

usb_vcp.recv(data, *, timeout=5000)

data,可以是读取数据个数,或者是缓冲区
timeout,等待接收超时时间

usb_vcp.send(data, *, timeout=5000)

data,缓冲区或者整数
timeout,发送超时时间

 3、一些简单的使用案例:

接收端demo

import pyb
usb_vcp = pyb.USB_VCP()  # 将该对象赋给usb_vcp

if usb_vcp.any(): # 判断是否有数据流入
    reads = usb_vcp.read(25) # 读取25个字符 (或者使用send方法)
    pyb.delay(10)
    print(reads) # 输出读取到的数据

发送端demo

import pyb
usb_vcp = pyb.USB_VCP()  # 将该对象赋给usb_vcp

name = "我亦无争、天亦美"
usb_vcp.write(name) # 将字符串"我亦无争、天亦美"写出  (或者使用recv方法)
pyb.delay(10)
print(name) # 写出的数据

相信看到这里,你已经对USB_VCP这个对象有比较深的概念了,可以去动手尝试一下,如果这些还不足以让你完成你的项目。可以登录Micropython官网查阅相关资料。

MicroPython 1.18 documentation官方文档

MicroPython - Python for microcontrollers官网首页

我的博客还有如何刷写Micropython固件的。如果购买了Micropython不会刷写固件可以看看,固件太旧运行速度会很慢哦~

micropython pyboard stm32f405 固件刷写_我亦无争、天亦美的博客-CSDN博客

欢迎交流学习~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我亦无争、天亦美

一直在踩坑,感谢支持

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

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

打赏作者

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

抵扣说明:

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

余额充值