USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 4430|回复: 1
打印 上一主题 下一主题

板子收到了,还行!

[复制链接]

6

主题

0

好友

1162

积分

管理员

Rank: 9Rank: 9Rank: 9

楼主
发表于 2014-1-27 15:52:38 |显示全部楼层
1. 您也可以定义成其它值,只要保证D12_DATA和D12_COMMAND定义不一样就可以

2. 是MCU设置D12的地址和端点。

其实您不用太关心最底层的D12驱动代码,因为换了其它USB芯片又不一样,USB芯片厂商一般都提供了范例代码的,在其基础上修改就可以了。学习USB设备开发应该多关心USB的各种命令和描述符、USB的枚举过程
回复

使用道具 举报

6

主题

0

好友

1162

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2014-1-28 12:47:24 |显示全部楼层
放飞心情 发表于 2014-1-27 16:50
1.你上面回复的:2. 是MCU设置D12的地址和端点。那照这个理解:不是我们PC HOST在枚举设备的过程中会发一个 ...

在枚举过程中,HOST当然会向设备发送Set_Address请求,然后D12会产生一个中断,D12的有一个中断输出引脚和MCU相连,MCU会检测到这个中断,当D12中断发生时,MCU应该读取D12的中断寄存器,判断是什么引起的中断,比如主机发送Set_Address命令时,MCU通过读取中断寄存器能判断出是主机发出 Set_Address命令了,这时MCU应该控制D12作出正确响应,而您最开始问的outportb函数,是MCU向D12写入一个命令或数据的函数,注意这里的命令并不等同于主机发的命令。“我对HOST发请求和USB设备响应请求的详细过程(即枚举)没有一个清晰的逻辑”,也正因为如此,您才从程序源代码里看不出来。建议您不要急,先看看配套光盘上的《实例讲解USB的枚举(配置)过程 》一文(看的过程中配合《USB命令(请求)和USB描述符》这篇文章进行分析),一定要把枚举过程中每个数据包都分析一下,弄懂枚举过程中再回头看源码才有可能看得懂。看源码主要看Chap_9.c和Descriptor.c两个文件里的源码,其它都是驱动D12最底层的功能代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-5-16 05:19 , Processed in 0.051156 second(s), 18 queries .

百合电子工作室版权所有
回顶部