返回该小组首页 回复主题
computer00

computer00

小组等级:     E币:6224  (E币换礼)

#1楼主:EDN USB学习板之实战第六个USB程序:自己定义的USB设备 [精华]

文章发表于:2008-03-13 01:30

下载整个工程包:

地址1:UsbOfCompuer00.rar

地址2:rar

下载地址3:rar

本次实战程序是自定义的USB设备,所以操作系统并没有自带驱动,需要自己开发。
在经过无数次的蓝屏和郁闷之后,圈圈终于成功写好了驱动程序。启用了D12的端
点1和端点2,端点1为中断传输,最大包为16字节,查询间隔为10ms。端点2为批量
传输,最大包为64字节。端点1的输出第一个字节为控制END USB板上的LED的,每个
bit代表一个LED,为1时表示对应的LED亮。端点1的输入第一个字节为返回的开关
状态,每个bit代表一个按键,为时表示对应的按键按下。输出端点2的数据通过串
口发送出去,串口接收到的数据通过端点2返回。圈圈写了一个上位机软件,可以
通过它控制EDN USB板上的8个LED、显示8个按键的状态、往端点2发送数据、从端点
2读数据等操作。

驱动程序和应用程序可在我的博客中下载:

http://group.ednchina.com/93/
http://www.ednchina.com/blog/computer00
http://computer00.21ic.org

      【回复】

wanjun_hm

   小组等级:    E币:66  (E币换礼)

#2

文章发表于:2008-05-12 13:05

OO您好:我已经验证过usb鼠标都很正常,但是做自定义设备实验枚举却不正常不知何故

computer00

   小组等级:    E币:6224  (E币换礼)

#3

文章发表于:2008-05-12 16:04

这个要安装我给的驱动才可以的。

highflu

   小组等级:    E币:200  (E币换礼)

#4

文章发表于:2008-05-13 20:30

       好文,水平有限呀,不是太明白.

       我最近在EDN USB学习板上调通了一个无线键盘的程序,无线用的是NRF401.       但是本设计有一个非常不爽的地方就是,我的接收端是一直向USB端点发数据的,没有键按下时,不能的向USB端点发数据0.我也尝试将其改成只有键按下时才发数据.可尝试了两天还不没有解决.下面发出修改后的程序,望有兴趣的网友可以帮我看看,为何我的程序不成功.多谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  详细的设计请看:http://blog.ednchina.com/highflu/115188/message.aspx

computer00

   小组等级:    E币:6224  (E币换礼)

#5

文章发表于:2008-05-13 22:58

当有按键动作的时候才返回数据。例如案键松开、按键按下时,才将数据返回给USB。

例如我的键盘程序:

 if(KeyUp||KeyDown)
 {
  //返回8个字节数据
  KeyUp="0";
  KeyDown="0";
  write_endpoint_buff(5,8,InBuffer);
 }

highflu

   小组等级:    E币:200  (E币换礼)

#6

文章发表于:2008-05-14 19:50

       这点我试过了,就是有问题嘛!!  所以想好好的请教你,当按键松开、按键按下时,才将数据返回给USB时,不知道为何就是不成功,而且发的数据往往是不正确的,开始还以为是NRF2401的问题.后来仔细的测试了它,就是它5 个数据.0x55,KeyPress,KeyUp,KeyDown,0xaa.

我是先判断接收的第一个数和第五个数是否是0x55和0xaa,是正确的话就将KeyPress,KeyUp,KeyDown作为正确的数来用.这个想法应该是没有问题的.可就一直没有成功.

还请多多指教呀!!!!

 

computer00

   小组等级:    E币:6224  (E币换礼)

#7

文章发表于:2008-05-14 20:25

那我也没办法了。代码都给你了。

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...

设计资源与分销

";