2

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

我正在使用 STM32F4 Discovery 并希望将其 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 :/
4

1 回答 1

2

第一个参数是一个指向 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);

希望这可以帮助。

于 2018-12-13T16:16:05.523 回答