首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三行代码极简方式DIY一个USB转串口

C1/C2 自带 USB 虚拟串口

本教程来至 FlexLua 官网 ShineBlink 开发板教程,即使不懂单片机开发也可很容易用FlexLua零门槛开发各种 IoT 硬件。

一、实现功能

本篇章所实现的功能是将Core(ShineBlink Mini 开发板)的USB口通过 Lua 代码配置成虚拟串口,这样和电脑通过USB线连接好后,电脑就会发现一个新的串口设备,我们通过在电脑上运行的串口调试终端(sscom,putty,minicom,etc..)打开这个串口后,每隔300毫秒向Core发送一包10个字节的数据,Core收到这10个字节后将这个10个字节的数据每个都加1后再返回给电脑。

二、完整代码

注意: 在 C1 开发板中,如果您的项目中同时用到Ble蓝牙功能时,一定要先初始化Ble蓝牙之后,再调用LIB_UsbConfig函数初始化USB功能。

--配置Core的USB接口以USB转串口模式工作,注意:配置成CDC_PD后print函数并不会打印输出到电脑上

LIB_UsbConfig("CDC_PD")

--开始大循环

while(GC(1) == true)

do

--如果Core和电脑通过USB线连好了,且电脑端打开了该串口

if LIB_UsbCommPortOpenQuery() == 1 then

--查询是否收到电脑发来的串口数据

recv_flag,recv_tab = LIB_UsbCdcRecv()

if recv_flag == 1 then

--将收到的数据每个都加1,再返送给电脑

for i = 1, #recv_tab do

recv_tab[i] = recv_tab[i] + 1

end

LIB_UsbCdcSend(recv_tab)

end

end

end

如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

三、演示

如果您的电脑是win10系统,当和Core通过USB线连接好了会自动装好驱动,如果是Win7系统请用baidu或google搜索 “nRF52 USB CDC ACM驱动” 关键词来完成驱动安装的工作。

接下来在串口调试终端软件上按照 N, 8, 1, 115200 设置,并找到正确的com口打开,这里我设置每300毫秒发送

0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09十个数据。

下图是实际运行效果:

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O18fFpwZvsSyHtLkcif8pA_A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券