阅读:1427回复:11
有问题请教版主及各位高手:关于枚举
我刚开始学,用的是周立功的DP-51的板子(D12+87c52),不知道怎样才能实现枚举,它的过程我已经看了以前的贴子,具体还不会做。例如第一步:
1) 单片机上电后立即初始化所有的接口、存储区、定时器和中断服务程序指针,按USB协议要求把PDIUSBD12芯片中的Soft_Connect位寄存器置为“1”,把D+线变为高电平,此时D-为低电平,信号为差分1。 我这样写D12_SetMode(0x1E,0x0B);就把Soft_Connect位置为“1”了吗(函数已定义)?怎么把D+线变为高电平? |
|
沙发#
发布于:2004-04-30 16:07
soft_connect置为1,
D+就通过1.5K电阻接到VCC [编辑 - 4/30/04 by longyinjiuxiao] |
|
板凳#
发布于:2004-05-10 10:54
把soft_connect、置为1后,应该是下面吧。
单片机第一次接收到主机的GetDescriptor请求中断响应,主机要求外设发送设备描述符,确定外设缺省管道控制端点的每次数据包大小。单片机程序中通过控制端点回送设备描述符,这次只需要保证设备描述符中前8个字节发送正确。 问:这时单片机程序应该怎么写,才算回送设备描述符。 我知道大家都是高手,论坛也很红火,拜托回答一下。不胜感激!! |
|
地板#
发布于:2004-05-10 21:57
大家不要懒得回答呀,
总要先富的带动后富的呀!帮忙呀 |
|
地下室#
发布于:2004-05-11 09:28
写程序,往端点0的中写数据就可以了。
描述符其实就是一个包含描述信息的数据结构。 论坛上有很多的源代码例子啊,找来看看。 ---你这样问问题,没人愿意回答的。 |
|
5楼#
发布于:2004-05-11 15:54
呵呵,真是倍受打击,问题很差因为不懂呀,
所以才问,所以才学呀 谢谢你回答 |
|
6楼#
发布于:2004-05-11 18:12
好好学,问问题时应突出重点,这样大家才好解答!
|
|
7楼#
发布于:2004-05-15 10:42
请问楼上的,描述符不是在IN中断里送出的吗???
|
|
8楼#
发布于:2004-05-15 10:52
是的。
|
|
9楼#
发布于:2004-05-15 11:03
为什么我一直收不到IN中断呢?我在收到3个GET-DEVICE-DESCRIPTOR后,就一直是挂起改变,然后就一直没有下文了?请赐教!
|
|
10楼#
发布于:2004-05-15 11:13
你确认执行到以下程序的aaa位置了吗?
void ep0_rxdone(void) { unsigned char ep_last, i; ep_last=D12_ReadLastTransactionStatus(0); //清中断标志 if (ep_last & D12_SETUPPACKET) { //接收到SETUP包 aaa: ControlData.wLength = 0; ControlData.wCount = 0; |
|
11楼#
发布于:2004-05-17 10:18
源程序我看了,是针对D12 smart的。在主函数中,我就没看到它看到调用到中断函数 fn_usb_isr(),那它是怎么发送的设备描述符的。
求发送设备描述符的那段程序。 |
|