有没有人在ChibiOS上成功使用USB转串口库?

时间:2012-10-11 12:57:51

标签: usb serial-port rtos stm32f4discovery

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

我正在使用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 :/

1 个答案:

答案 0 :(得分: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);

希望这会有所帮助。