有没有人在ChibiOS上成功使用USB到串行库



我正在使用ChibiOS/RT操作系统,试图让USB到串行库工作。我已经设法将所有文件链接在一起,它与Yagarto一起运行。但我似乎甚至无法使用 USB 到串行库的启动功能。

我正在使用STM32F4发现,并希望将其USB用作PC的连接。我已经使用带有IAR的CDC类完成了此操作,但我想将ChibiOS用于此项目,而这一切似乎都过于复杂。(我使用过ChibiOS,但只有UART和一些端口切换led之类的东西)。

你能给我一个启动USB的示例代码吗? 我一直找不到任何东西。

sduStart( ??? , ??? ); // I saw what parameters it wants in there but I cannot figure what to actually put :/

第一个参数是指向 SerialUSBDriver 的指针,定义如下:

SerialUSBDriver SDU1;

第二个参数是指向 SerialUSBConfig 的指针,定义如下:

SerialUSBConfig SDU1_cfg = {                                                     
    .usbp     = &USBD1,      // USB driver to use                                
    .int_in   = CDC_IRQ_EP,  // Interrupt IN endpoint used for notifications        
    .bulk_in  = CDC_DATA_EP, // Bulk IN endpoint used for outgoing data transfer 
    .bulk_out = CDC_DATA_EP  // Bulk OUT endpoint used for incoming data transfer
};

您应该定义正确的终结点编号CDC_IRQ_EP和CDC_DATA_EP。在我的特定情况下,它们是这样定义的(但这无关紧要):

#define CDC_IRQ_EP   6
#define CDC_DATA_EP  7

所以工作调用应该是这样的:

sduStart(&SDU1, &SDU1_cfg);

希望这有帮助。

相关内容

  • 没有找到相关文章

最新更新