完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
rtt3.0.1发布了,实现了很多usb Class,刚好最近要用到USB,这两天在看,有几点疑问想请教大家: 1、接口描述符中的USB_DYNAMIC | USB_DIR_OUT中的USB_DYNAMIC 应该是要替换成实际使用的端点号,但是我并没找到相关的代码,请教下那部分代码将USB_DYNAMIC替换成实际的端点号了. /* data interface descriptor / const static struct ucdc_data_descriptor _data_desc = { / interface descriptor / USB_DESC_LENGTH_INTERFACE, USB_DESC_TYPE_INTERFACE, USB_DYNAMIC, 0x00, 0x02, USB_CDC_CLASS_DATA, 0x00, 0x00, 0x00, / endpoint, bulk out / USB_DESC_LENGTH_ENDPOINT, USB_DESC_TYPE_ENDPOINT, USB_DYNAMIC | USB_DIR_OUT, USB_EP_ATTR_BULK, USB_CDC_BUFSIZE, 0x00, / endpoint, bulk in */ USB_DESC_LENGTH_ENDPOINT, USB_DESC_TYPE_ENDPOINT, USB_DYNAMIC | USB_DIR_IN, USB_EP_ATTR_BULK, USB_CDC_BUFSIZE, 0x00, }; 2、以下是stm32f10x-HAL bsp中drv_usb.c中代码,不太明白_ep_read这个函数有什么用,感觉什么都没干.
|
|
相关推荐
3个回答
|
|
你好你的第一个问题:rt_usbd_ep_assign中替换的,EP_ADDRESS(ep) |= device->dcd->ep_pool[i].addr;
|
|
|
|
_ep_read的确没有用 在这个bsp里 但是对于其他的芯片可能会被用到 当产生out中断返回的size是0的话协议栈会调用这个函数来读取完整的数据
|
|
|
|
谢谢,第一个问题已经明白了;
第二问题还有不理解,按照usb的协议,一个transfer的数据阶段的结束标识是数据的size为0或者size小于max packet size,感觉应该和芯片没关系啊; 整个usb device的框架大致明白了,编译了下winusb,PC上能够成功安装驱动,但是还有不太明白这个应该如何和自己的实际应用联系起来,比如 _ep_in_handler什么都没干,要实现自己功能是不是还得修改这部分的代码呢
还有一个需要完善的就是目前采用menuconfig配置usb device,无法添加自定义的USB class |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1245 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
4842 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1663 浏览 0 评论
2544 浏览 0 评论
1888 浏览 0 评论
76160 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-4 16:24 , Processed in 0.689580 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号