C1/C2 自带 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十个数据。

下图是实际运行效果:

打开网易新闻 查看精彩图片