首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有人在ChibiOS上成功地使用了USB转串行库?

有没有人在ChibiOS上成功地使用了USB转串行库?
EN

Stack Overflow用户
提问于 2012-10-11 20:57:51
回答 1查看 1.5K关注 0票数 2

我使用的是ChibiOS/RT操作系统,试图让USB to Serial library正常工作。我已经成功地将所有文件链接在一起,它与Yagarto一起运行。但我似乎甚至不能使用USB转串行库的启动功能。

我正在使用using,并希望使用它的STM32F4连接到PC。我已经使用CDC类和IAR完成了这项工作,但是我想在这个项目中使用ChibiOS,这一切似乎都太复杂了。(我使用过ChibiOS,但只使用了通用异步收发器和一些端口切换leds等)。

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

代码语言:javascript
复制
sduStart( ??? , ??? ); // I saw what parameters it wants in there but I cannot figure what to actually put :/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-14 00:16:06

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

代码语言:javascript
复制
SerialUSBDriver SDU1;

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

代码语言:javascript
复制
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。在我的特殊情况下,它们是这样定义的(但这并不相关):

代码语言:javascript
复制
#define CDC_IRQ_EP   6
#define CDC_DATA_EP  7

因此,工作调用应该是这样的:

代码语言:javascript
复制
sduStart(&SDU1, &SDU1_cfg);

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12840097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档