Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Devices
usb复合设备
USB复合(CDC+Mstorage)复合设备
发布于 2020-05-05 17:42:49 浏览:2403
订阅该版
MCU是STM32L4系列 使用ENV或RTT-studio生成的代码 单独使用CDC或MSTORAGE设备,通信都很正常 复合后如论坛很多兄弟一样,MSTORAGE枚举不出来,于是修改了MSTORAGE的PID和VID,设备能正常使用了 但是出现一个新的问题是cdc能正常收到串口信息,但vcom tx出异常,串口工具收到都是乱码甚至没有收到,debug打印显示“vcom tx timeout” 对USB协议不太深入了解 请各位帮忙指点指点 为什么复合时会出现vcom 发送有问题???
查看更多
20
个回答
默认排序
按发布时间排序
xb-w
2020-05-06
这家伙很懒,什么也没写!
发现一个规律,哪个设备先初始化,哪个就正常....
wulongchao
2020-05-09
这家伙很懒,什么也没写!
问下 MSTORAGE的PID和VID改的是哪个值
xb-w
2020-05-13
这家伙很懒,什么也没写!
>问下 MSTORAGE的PID和VID改的是哪个值 ``` VID:0x0283 PID:0x5720 ```
wulongchao
2020-05-13
这家伙很懒,什么也没写!
整好了。不是这问题。我用的裸机ST usb库 ,弄复合设备两三天就搞好了,RT这问题几年前就有了。还没修复:L
wulongchao
2020-05-13
这家伙很懒,什么也没写!
>整好了。不是这问题。我用的裸机ST usb库 ,弄复合设备两三天就搞好了,RT这问题几年前就有了。还没修复 ... --- 我这也是能收不能发
xb-w
2020-05-14
这家伙很懒,什么也没写!
>整好了。不是这问题。我用的裸机ST usb库 ,弄复合设备两三天就搞好了,RT这问题几年前就有了。还没修复 ... --- 移植裸机的ST usb的话 matorage的操作flash或tf卡也是用rtt的驱动吗???
Cold
2020-05-14
这家伙很懒,什么也没写!
我的现在都初始化完成了,CDC虚拟串口,但是电脑检测不到任何USB设备,这是什么问题。。。。重新插拔也没有用
Cold
2020-05-14
这家伙很懒,什么也没写!
```c int stm_usbd_register(void) { rt_memset((void *)&_stm_udc, 0, sizeof(struct udcd)); _stm_udc.parent.type = RT_Device_Class_USBDevice; _stm_udc.parent.init = _init; _stm_udc.parent.user_data = &_stm_pcd; _stm_udc.ops = &_udc_ops; /* Register endpoint infomation */ _stm_udc.ep_pool = _ep_pool; _stm_udc.ep0.id = &_ep_pool[0]; rt_device_register((rt_device_t)&_stm_udc, "usbd", 0); rt_usb_device_init(); return 0; } INIT_DEVICE_EXPORT(stm_usbd_register); ``` 注册设备。 接下来打开设备: ``` int main(void) { rt_device_t dev = RT_NULL; char buf[] = "hello rt-thread!\r\n"; /* user app entry */ dev = rt_device_find("vcom"); if (dev) rt_device_open(dev, RT_DEVICE_FLAG_RDWR); else return -RT_ERROR; while (1) { rt_device_write(dev, 0, buf, rt_strlen(buf)); rt_thread_mdelay(500); } return 0; } ```
Cold
2020-05-14
这家伙很懒,什么也没写!
``` msh >list_device device type ref count ------ -------------------- ---------- vcom Character Device 1 usbd USB Slave Device 0 spi1 SPI Bus 0 uart1 Character Device 2 pin Miscellaneous Device 0 ``` 然后,电脑检测不到任何USB设备
wulongchao
2020-05-14
这家伙很懒,什么也没写!
>移植裸机的ST usb的话 matorage的操作flash或tf卡也是用rtt的驱动吗???[/quote] 主要替换用户的回调函数。 //USB Device 用户回调函数接口 ```c USBD_STORAGE_cb_TypeDef USBD_MICRO_SDIO_fops = { STORAGE_Init, STORAGE_GetCapacity, STORAGE_IsReady, STORAGE_IsWriteProtected, STORAGE_Read, STORAGE_Write, STORAGE_GetMaxLun, (int8_t *)STORAGE_Inquirydata, }; USBD_STORAGE_cb_TypeDef *USBD_STORAGE_fops=&USBD_MICRO_SDIO_fops;//指向USBD_MICRO_SDIO_fops结构体. //初始化存储设备 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //返回值:0,成功; // 其他,错误代码 int8_t STORAGE_Init (uint8_t lun) { SD_Init(); W25QXX_Init(); return 0; } //获取存储设备的容量和块大小 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //block_num:块数量(扇区数) //block_size:块大小(扇区大小) //返回值:0,成功; // 其他,错误代码 int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_size) { if(lun==1) { *block_size=512; *block_num=SDCardInfo.CardCapacity/512; } else { *block_size=512; *block_num=1024*1024*12/512; //SPI FLASH的前面12M字节,文件系统用 } return 0; } //从存储设备读取数据 //lun:逻辑单元编号,0,SD卡;1,SPI FLASH //buf:数据存储区首地址指针 //blk_addr:要读取的地址(扇区地址) //blk_len:要读取的块数(扇区数) //返回值:0,成功; // 其他,错误代码 int8_t STORAGE_Read (uint8_t lun,uint8_t *buf,uint32_t blk_addr,uint16_t blk_len) { int8_t res=0; USB_STATUS_REG|=0X02;//标记正在读数据 if(lun==1) { res=SD_ReadDisk(buf,blk_addr,blk_len); if(res)USB_STATUS_REG|=0X08;//SD卡读错误! } else { W25QXX_Read(SPI1,buf,blk_addr*512,blk_len*512); } return res; } ```
撰写答案
登录
注册新账号
关注者
0
被浏览
2.4k
关于作者
xb-w
这家伙很懒,什么也没写!
提问
9
回答
39
被采纳
0
关注TA
发私信
相关问题
1
问个问题,ili9320驱动里面rt_hw_lcd_draw_blit_line 这个函数是干什么用的
2
LCD双缓冲有什么好的办法实现
3
LCD NT35510 驱动代码
4
io设备驱动的疑惑与建议
5
液晶屏驱动 U8g2 移植
6
求助:在模板上添加LCD模块出现L6406E错误
7
hwtimer硬件定时器驱动和使用经验
8
硬件定时器超时时间计算问题
9
请教spi驱动lcd显示屏问题
10
rtt-master(3.1.1)bsp—armfly中drv_lcd.c中是不是错了啊?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
xiaorui
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部