前言:使用GD32F303单片机,使用其外设USB的CDC类实现虚拟串口的收发数据,本实验主要讲USB实验如何基于一个官方的Demo,移植成自己的一个完整工程(附上源码例程)。
(理论部分后续再讲)
MCU:GD32F303CBT6
一、移植
1、准备
(1)、找到相应的路径下的usb_cdc工程,我使用的是IAR工程,所以选择EWARM文件夹下的工程文件,双击打开。
(2)、打开CDC_ACM.eww工程之后再IAR里面可以看到整个工程的架构、使用到的文件,如图。
可以看到移植USB cdc工程主要就是使用到了USBD类文件、设备文件和驱动文件这几类。GD的官方有吧USB库封装在同一个文件夹内,方便移植。
(3)、在工程右键键打开包含文件的文件夹,可以知道具体使用的是哪一个文件夹下面的文件。
可以看到主要就是使用的是《GD32F30x_usbd_library》 文件夹下面的文件
使用到的文件:
①、...\GD32F30x_Firmware_Library_V2.2.0\Firmware\GD32F30x_usbd_library\class\device\cdc
cdc_acm_core.c、cdc_acm_core.h
②、...\GD32F30x_Firmware_Library_V2.2.0\Firmware\GD32F30x_usbd_library\device
usbd_core.c、usbd_core.h
usbd_enum.c、usbd_enum.h
usbd_pwr.c、usbd_pwr.h
usbd_transc.c、usbd_transc.h
③、...\GD32F30x_Firmware_Library_V2.2.0\Firmware\GD32F30x_usbd_library\usbd
usbd_lld_core.c、usbd_lld_core.h
usbd_lld_int.c、usbd_lld_int.h
2、复制移植为一个新工程
(1)创建一个文件夹:
将上面说到的文件移植到文件夹内
(2)、双击工程之后,需要将一下的源文件删除,然后重新加入,复制移植过路径不一样了。
(3)右键Option打开工程管理,将头文件路径重新加入,并换为相对路径的方式
重新加载的路径为:
(4)、最后编译0错误就可以了
二、实验
1、烧录到主板吗,可以看到代码里面的主循环逻辑就是将接收到的数据再发送出来,类似与普通的串口数据收发。
2、使用串口调试助手,打开后可以显示出COM口序号,我这里是19:COM19:GD32 Virtual Com Port.(设备管理器上也可以看到),如果没看到就需要安装一下官方的虚拟串口驱动。
3、修改设备信息,在linux下看一看到虚拟串口的信息,这些信息可以修改设置:
在cdc_acm_core.c文件内:主要是修改结构体cdc_desc内的一些成员信息
(1)、其中这两项是可改的:
参考:AN049_GD32_USBD_Firmware_Library_User_Guide_Rev1.0_CN.pdf
工程:GitHub - YZX-11/GD32F303-usb_cdc
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_64192009/article/details/144105311
|