lhaih
驱动小牛
驱动小牛
  • 注册日期2004-04-28
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1427回复:11

有问题请教版主及各位高手:关于枚举

楼主#
更多 发布于:2004-04-30 15:58
我刚开始学,用的是周立功的DP-51的板子(D12+87c52),不知道怎样才能实现枚举,它的过程我已经看了以前的贴子,具体还不会做。例如第一步:
1) 单片机上电后立即初始化所有的接口、存储区、定时器和中断服务程序指针,按USB协议要求把PDIUSBD12芯片中的Soft_Connect位寄存器置为“1”,把D+线变为高电平,此时D-为低电平,信号为差分1。
我这样写D12_SetMode(0x1E,0x0B);就把Soft_Connect位置为“1”了吗(函数已定义)?怎么把D+线变为高电平?
longyinjiuxiao
驱动小牛
驱动小牛
  • 注册日期2004-03-15
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-30 16:07
soft_connect置为1,
D+就通过1.5K电阻接到VCC

[编辑 -  4/30/04 by  longyinjiuxiao]
lhaih
驱动小牛
驱动小牛
  • 注册日期2004-04-28
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-10 10:54
把soft_connect、置为1后,应该是下面吧。
单片机第一次接收到主机的GetDescriptor请求中断响应,主机要求外设发送设备描述符,确定外设缺省管道控制端点的每次数据包大小。单片机程序中通过控制端点回送设备描述符,这次只需要保证设备描述符中前8个字节发送正确。
 
问:这时单片机程序应该怎么写,才算回送设备描述符。
 
我知道大家都是高手,论坛也很红火,拜托回答一下。不胜感激!!
lhaih
驱动小牛
驱动小牛
  • 注册日期2004-04-28
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-10 21:57
大家不要懒得回答呀,
总要先富的带动后富的呀!帮忙呀

bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-11 09:28
写程序,往端点0的中写数据就可以了。
描述符其实就是一个包含描述信息的数据结构。
论坛上有很多的源代码例子啊,找来看看。

---你这样问问题,没人愿意回答的。
lhaih
驱动小牛
驱动小牛
  • 注册日期2004-04-28
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-05-11 15:54
呵呵,真是倍受打击,问题很差因为不懂呀,
所以才问,所以才学呀
谢谢你回答
shaoshengli
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2022-02-14
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望77点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2004-05-11 18:12
好好学,问问题时应突出重点,这样大家才好解答!
ms520sxl
驱动牛犊
驱动牛犊
  • 注册日期2004-03-17
  • 最后登录2005-01-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-05-15 10:42
请问楼上的,描述符不是在IN中断里送出的吗???
longyinjiuxiao
驱动小牛
驱动小牛
  • 注册日期2004-03-15
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-05-15 10:52
是的。
ms520sxl
驱动牛犊
驱动牛犊
  • 注册日期2004-03-17
  • 最后登录2005-01-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-05-15 11:03
为什么我一直收不到IN中断呢?我在收到3个GET-DEVICE-DESCRIPTOR后,就一直是挂起改变,然后就一直没有下文了?请赐教!
longyinjiuxiao
驱动小牛
驱动小牛
  • 注册日期2004-03-15
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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;
lhaih
驱动小牛
驱动小牛
  • 注册日期2004-04-28
  • 最后登录2007-10-19
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-05-17 10:18
源程序我看了,是针对D12 smart的。在主函数中,我就没看到它看到调用到中断函数 fn_usb_isr(),那它是怎么发送的设备描述符的。

求发送设备描述符的那段程序。
游客

返回顶部