keil5提供了样板virtualcom,就在上面修改。
我们需要修改的是USBD_User_CDC_0.c和VirtualCOM.c函数
keil给出的模板是既使用串口又使用USB,对于只需要USB功能的见到USART统统删。
USBD_User_CDC_0.c只需要保存USBD_CDC0_ACM_SetLineCoding和USBD_CDC0_ACM_GetLineCoding两个函数,并删除里面串口的东西。
VirtualCOM.c里调用的函数像 USBD_Initialize USBD_Connect在rl_usb.h里声明,并且是库函数,我们无法看到具体代码,所以我们只需要知道函数的作用和返回值就好
首先USBD_Initialize ()被调用,进行初始化
然后是 USBD_Connect()//connects the USB Device to the USB Bus
接着调用USBD_Configured(),返回值大于0说明配置好可以进行通信
使用USBD_CDC_ACM_ReadData()函数读取来自USB主机的多个数据字节,返回值大于0的值是读取到的字节个数,小于0的话参考usbStatus。 使用USBD_CDC_ACM_WriteData()函数发送数据给USB主机,返回值大于0的值是要发送到的字节个数,小于0的话参考usbStatus 这样就完成了一个最简单的USB通信,PC端用超级终端或者其他软件与开发板通信。 |