| 本人用的是STM32F105来做的串口虚拟设备,准备虚拟4个串口。代码使用STM32CUBE生成的虚拟单串口基础上修改来的。目前已经能枚举4个串口。但是只能打开串口1.在打开其他串口的时候发现有问题。打开其他串口对应的端点时没有回应,入下图:串口2是由端点3和端点4构成,端点3正常相应,端点4异常。串口3个串口4的所有端点都异常。端点3正常 端点4异常 猜测的可能:1、端点4没有被打开(但是在程序中,对所有的端点都进行了相同的操作)? 2、程序中有对端点4以后的限制,还没有被发现。 |
前面图片上传的有问题,
1. STM32F105的USB 为USB_OTG_FS, 除了端点0外就3个双向端点, 所以理论上最多只可以虚拟3个串口. 2. 在USBD_LL_Init()函数内注意将使用到的端点分配FIFO。 3.在class init内打开对应端点. 堆栈大小最好设置大一些,例如0x1000.