STM32/STM8技术william hill官网
直播中

王文娥

7年用户 140经验值
私信 关注
[问答]

请问STM32的CAN slave mode与master mode的区别是什么?

最近刚开始学习USB,参考的书籍是电脑圈圈,例程是网上找的原子的例程,开发板STM32f4discovery。在进行u***设备枚举时通过串口打印信息得到如下:
80 06 00 01 00 00 40 00   
12 01 00 02 00 00 00 40
USB Device Library v1.1.0  [FS]
reset
00 05 1c 00 00 00 00 00  //设置地址
80 06 00 01 00 00 12 00   //设备描述符
12 01 00 02 00 00 00 40 83 04 20 57 00 02 01 02 03 01   
80 06 00 02 00 00 ff 00   //配置描述符
09 02 20 00 01 01 04 c0 32 09 04 00 00 02 08 06 50 05 07 05 81 02 40 00 00 07 05 01 02 40 00 00
80 06 03 03 09 04 ff 00   //字符串描述符(产品序列号)
1a 03 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 31 00 42 00   "00000000001B"
80 06 00 03 00 00 ff 00   //语言ID
04 03 09 04  "0x0409"
80 06 02 03 09 04 ff 00   //字符串描述符(产品字符串)
32 03 41 00 4c 00 49 00 45 00 4e 00 54 00 45 00 4b 00 20 00 55 00 53 00 42 00 20 00 43 00 61 00 72 00 64 00 20 00 52 00 65 00 61 00 64 00 65 00 72 00  "ALENTAKE ..."
80 06 00 06 00 00 0a 00  //设备限定符

在请求字符串描述符时发现有点问题:
问题1:请求语言ID在请求产品序列号之后(不过好像也没有太大关系,毕竟只是颠倒了位置);
问题2:没有请求厂商字符串;
问题3:为什么最后会有设备限定符请求啊,全速设备貌似没提到这个啊。

目前调试只是在USBD_StdDevReq()函数里进行,由于只是初学,问题比较多,对USB也是云里雾里,还希望有人能指点一下。另外如果有关于ST USB库好的学习资料也可推荐一下。(培训PPT和UM1021除外)

回帖(8)

张倩

2018-11-30 08:53:16
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

冯栋

2018-11-30 08:58:35
本帖最后由 流水源 于 2017-2-21 08:58 编辑

配置描述符09 02 20 00,长度不对,还缺类描述符。
举报

王文娥

2018-11-30 09:12:48
引用: asd010 发表于 2018-11-30 09:56
本帖最后由 流水源 于 2017-2-21 08:58 编辑

配置描述符09 02 20 00,长度不对,还缺类描述符。

对啊,9+9+7+7=32(0x20),不是22,你看错了吧
举报

冯栋

2018-11-30 09:18:28
缺类描述符,还差9字节长度
举报

王文娥

2018-11-30 09:36:31
引用: asd010 发表于 2018-11-30 10:16
缺类描述符,还差9字节长度

哦哦,的确是。
举报

王文娥

2018-11-30 09:54:56
引用: as2969559 发表于 2018-11-30 10:34
哦哦,的确是。

问一下您能给我提供一个适用于STM32F4DISCOVERY开发板的插入电脑就能识别的例程吗,我用的是STM32_USB-Host-Device_Lib_V2.1.0中的HID例程,但下载进去之后总是不能识别设备。
举报

王文娥

2018-11-30 10:08:55
引用: as2969559 发表于 2018-11-30 10:53
问一下您能给我提供一个适用于STM32F4DISCOVERY开发板的插入电脑就能识别的例程吗,我用的是STM32_USB-Host-Device_Lib_V2.1.0中的HID例程,但下载进去之后总是不能识别设备。

我又回去仔细翻了一下书,大容量U盘枚举时应该有接口描述符就行了,没有向HID是的后边还跟了一个HID描述符。
举报

王文娥

2018-11-30 10:18:59
这个帖子很尴尬,当时刚学习什么都不懂。这是大致调通以后自己对以上三个问题的理解:(1)应该是win10系统下枚举顺序就是这样,毕竟圈圈的系统肯定是以前的了。(2)始终没想明白。(3)确实请求设备限定符了,STM32库里应该是直接发了0数据包。之后就是接口描述符了,然而我并没有在处理函数里面打印字符串,所以后边就空了。额,先这样理解吧。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分