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

computer00

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

#1楼主:EDN USB学习板之实战第一个USB程序: USB键盘 [精华]

文章发表于:2007-12-08 03:58

EDN USB开发板上共有8个按键,功能分别为:
K1:左Ctrl键  K2:左Shift键  K3:左Alt键  K4:0键
K5:1键  K6:2键  K7:Caps Lock键 K8:Num Lock键

按键功能测试:

同时按下K1和K2可做输入法切换,这跟键盘上的两个键功能一样的。
K7可打开大写字母锁定,同时LED2亮起。K8是小数字键盘锁定键,
当数字键盘打开时,LED1亮起,这时可用K4,K5,K6输入数字。
请留意EDN板上的LED会跟你自己的键盘上的LED灯同步。不管按哪块
键盘切换都是如此。不过按住切换键不放,可能会导致两块键盘之间
的LED失步。

程序下载完成后可以使用串口调试助手观察枚举过程。波特率为9600。

Keil C源代码包下载: 点击下载

另外给大家推荐一个比较好用串口调试助手:点击下载

焊接说明:http://group.ednchina.com/93/7005.aspx

原理图下载:http://group.ednchina.com/93/6683.aspx

下载STC MCU软件用的ISP软件:http://www.mcu-memory.com/datasheet/stc/stc-isp-v3.5-setup/stc-isp-v3.5-not-setup.exe

点击开大图

      【回复】

douhexin

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

#2

文章发表于:2007-12-08 16:02

顶起来!!!等待板子中!!!

billowtust

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

#3

文章发表于:2007-12-08 16:06

支持,赶紧下载下来试试,呵呵,板子焊好了

computer00

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

#4

文章发表于:2007-12-08 16:07

哈哈~~~已经有朋友拿到板子和元件,并且已经装好,跑起程序了~~~所以我才先将键盘的程序放上来让大家先玩着~~~

大家有什么进度也可以发上来,让大一起分享。

zcl

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

#5

文章发表于:2007-12-08 16:53

等待板子中。。。。,不过要等到回杭州才能使用(这边没51下载线,惨)

computer00

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

#6

文章发表于:2007-12-08 19:37

如果你订购了全套元件的话,不需要专门的51下载线,直接用板上串口即可ISP下载。

billowtust

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

#7

文章发表于:2007-12-09 21:58

键盘程序已经跑起来了,呵呵

只是用BUS HOUND查看的时候总线一直在读键盘,而我看了一下USB鼠标的通信,当鼠标不动的时候就没有数据传输。

程序已经仔细地读过两遍了,可能是对USB的协议还不熟,有些地方不是很懂,等大家都收到板子了再开始提问吧。

computer00

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

#8

文章发表于:2007-12-09 23:44

呵呵,是我的程序返回的数据,没有按键动作的时候,返回全0,这样我的程序处理起来就简单很多,不用去判断了。你也可以再改进下程序,当按键有变动时(利用KeyUp和KeyDown这两个)才返回按键,其它情况不返回,就可以实现空闲时无数据返回了。

 

将void endp2_in(void) 函数最后部分改成下面这样,就可以实现无按键动作时无数据返回了:

 if(KeyUp||KeyDown)
 {
  //返回8个字节数据
  KeyUp="0";
  KeyDown="0";
  write_endpoint_buff(5,8,InBuffer);
 }
 KeyCanChange=1; //允许修改按键值
}
/**********************************************/

computer00

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

#9

文章发表于:2007-12-09 23:46

晕,这个网页有bug,会自动在上面添加一个"",我那个KeyUp=0和KeyDown=0后面本来是没""的。

这个端点是中断端点,并且我在描述符里面描述的是10ms查询一次,所以事实上主机是在一直请求数据输入的。

billowtust

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

#10

文章发表于:2007-12-10 09:06

了解^_^

jameswoo

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

#11

文章发表于:2007-12-14 22:45

00快帮忙看看,为的板子复位后串口显示信息如下,而且没有键盘设备被检测到,是什么回事呢?是否板子焊得有问题?

系统启动.
********************************************************************
******                 EDN USB学习板键盘程序                  ******
******                      AT89S52 CPU                       ******
******                  建立日期:Dec 10 2007                 ******
******                   建立时间:14:23:19                   ******
******                    作者:电脑圈圈                      ******
******                    欢迎访问作者的                      ******
******           USB专区:http://group.ednchina.com/93/       ******
******      BLOG1:http://www.ednchina.com/blog/computer00    ******
******                BLOG2:http://computer00.21ic.org       ******
******                  请按K1-K8分别进行测试                 ******
******       K1:左Ctrl键  K2:左Shift键  K3:左Alt键  K4:0键    ******
******       K5:1键  K6:2键  K7:Caps Lock键 K8:Num Lock键     ******
********************************************************************
断开USB连接.
USBD12芯片初始化
   设置地址.
       地址为:  0
连接USB.
USB总线复位.
USB总线复位.
USB总线复位.
USB总线复位.
USB总线复位.
USB总线复位.

总共 , 当前 /,23【下一页】

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

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

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

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

设计资源与分销

";