用户工具

站点工具


icore3_micropython_14
银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-06-17 gingko 初次建立

例程十四:【micropython】USB_VCP虚拟串口

一、实验目的

使用micropython创建虚拟串口并与PC通信,发送采集到的ADC数据。

二、实验设备及平台

  1. iCore3双核心板点击购买
  2. Micro USB线
  3. 电脑

三、实验原理

micropython上的USB兼做VCP,可以通过函数去控制VCP,和PC进行数据通信,不必再转接USB串口IC。但要避免与REPL争夺USB CDC通讯。原理示意图如下所示: 硬件原理图

四、实验步骤

  1. 用数据线将iCore3的USB-OTG口与电脑相连;
  2. 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py,弹出磁盘;
  3. 将iCore3重新上电,代码运行;
  4. 打开putty,选择端口号COM6(具体请在此电脑右击→管理→设备管理器中查看),波特率115200,数据位8,停止位1,校验位None。点击打开串口进行连接;

五、实验现象

putty连接上后,接收ADC数据,PA4接地时,ADC值为0,如下图所示: AD值

六、实验程序

# -*- coding: utf-8-*-
import pyb  #导入库
 
led = pyb.LED(1)             #创建红色led对象
chx = pyb.ADC(pyb.Pin('A4')) #创建ADC对象,PA4
usb = pyb.USB_VCP()          #创建USB虚拟串口
 
def loop():
    global led, chx, usb
    x = chx.read()           #读取ADC电压值
    i = x // 33  
    s = "x:%d\t\t%s\r\n"%(x,'#'*i)
    usb.write(s)             #向虚拟串口发送ADC值
    led.toggle()             #红色LED状态翻转
    pyb.delay(250)  
 
while True:
    loop()
icore3_micropython_14.txt · 最后更改: 2022/03/18 15:18 由 sean