怎样用ch372 stm8做一个简易的键盘

教我做一个… 电脑键盘_3dmax吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:366,575贴子:
教我做一个… 电脑键盘收藏
是的 老师第一节课就随便讲了点工具栏 就让我们自己做 全班都糊里糊涂的 已经着急的快哭晕在寝室。感觉应该不会很难 可是自己琢磨真的遇到很多问题
求人帮帮我 跪谢。
火星3dmax培训,博物馆实景考察+近100种项目实训,真正实现毕业生与企业无缝连接.国际重量级企业上门&争抢&火星学员,3dmax培训认准火星时代,马上免费试听&&&
我这有个成品
我们也做过
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或买不起机械键盘 屌丝我只有自己做一个了!哎。_机械键盘吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:666,140贴子:
买不起机械键盘 屌丝我只有自己做一个了!哎。收藏
好吧,不装逼 ,家里桌子太小,我和媳妇一起打游戏手打手于是自己准备做个LOL的小键盘,只要LOL用的到的键就OK了首先 主控拆了DELL8115的主控
机械键盘,京东外设产品,安全高效,全场精选,限时抢购!机械键盘,网上购物选JD,品类齐全 轻松购物.
然后找对应的按键了前面的数字表示正数
后面的表示倒数
接着找板子 确定需要哪些键
楼主可以帮我的薄膜艾瑞克改一下么
当然加灯是必须的,果断上了青轴加绿色的雾灯
然后全部焊到主控上
灯试了下接 大小写和小键盘锁定的
觉得不够亮于是直接到USB的供电上
灯一直开着太晃眼了
加上空格太大,放不下
只有用一个SHIFT的键盘
于是空位安了一个开关
外壳是拆的其他键盘的
然后用502粘了一下
改了内部构造 加了几个螺丝固定的
觉得还可以半成品OK了
细节再慢慢改
机械键盘,&苏宁易购&百大品牌,全场钜惠!热卖单品,0利疯抢!够省钱,更超值!&苏宁易购&机械键盘,正品低价,支持货到付款!7天无理由退换货,100个城市半日达!
等我先去撸一把回来在写测评,哇哈哈哈哈看帖记得留下15个字哟亲!!!!!
只想说三个字吊炸天
呀,差6个字,给补上,低调奢华有内涵
目测楼主被小学生喷的时候无法还口了。
我怎么感觉那么异怪呢 -3-
楼主您厉害
不怎么好啊,没有喷队友模式
又一个屌爆的,上次有一个也做过这样的lol专用
你好牛逼啊啊啊啊啊啊啊啊啊啊啊
不明觉厉。。。好屌的样子
卧槽。。。。。。牛逼!!!!!!
没有NM这游戏怎么玩?
技术帝。。。
动手能力是不错的,
其实一直不明白为啥霜冻就带个灯就那么那么的贵,于是我准备明天改个V1改成霜冻,带跑马灯的,哇哈哈哈哈哈
这么厉害!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或如何从零开始做一个USB键盘?
我的图书馆
如何从零开始做一个USB键盘?
【时国怀的回答(32票)】:
分两种情况:
1、做一个真正的键盘,这种设计基本上不涉及大量的软件编码。
2、做一个模拟的USB键盘,实际上可以没有按键功能,这种的需要考虑大量的软件编码,实际上是一个单片机。
第一种设计:买现成的USB设备芯片,然后焊好就可以了,几乎没听说过谁自己从零开始做USB设备芯片的,首先晶振之类的如何满足要求就是一个问题。
基本原理就是按键,转换扫描码,写入寄存器,然后等主机那边去读就可以了。
主机端实际上不需要做什么设计,因为键盘属于标准的class设备,都是自带驱动的。
第二种设计:首先要找到一个支持OTG的单片机(板子),编写完整的USB Device Stack(大概几万行),定义好USB描述符(Descriptor)和HID描述符(Windows需要),然后等待主机的中断传输请求即可。
每次把需要发送的扫描码(scan code)写到中断传输的缓冲区里,让device stack把数据发送走即可。
至于信号部分,这些都是USB控制器(简称控制器,下同)集成的,如果说你要自己写一个控制器,那么需要的技术就太复杂了,全球也没有多少厂商能弄出来自己的控制器。做控制器需要熟练背诵USB2.0技术规范以及EHCI/UHCI/OHCI技术规范。
---------------------既然问具体怎么做,那么我也补充一些吧---------------------
首先,需要一个支持OTG或者USB Device工作模式的板子/芯片/模块。板子可大可小,可以是工业级的带OTG的板子,也可以是小小的只有一个单片机的那种。小的那种我没有用过,我就说大的。
OTG的意思可以大概理解为这个USB口既可以作为主机口接设备,也可以作为设备接入主机,新一点的手机都带这个功能。
我所知道的OTG控制器有Mentor Graphics的,还有Freescale有一些板子也支持。
找到这样的板子,然后就是找代码了,Linux里实际上就有这样的代码,比如Mentor Graphics的控制器驱动的代码在:linux-3.7.1driversusbmusb,这里,当然如果你用的是别的版本的Linux,在相应的位置也能找到代码。不知道Linux源码从哪里找?传送门:
有了代码,你还需要U-boot或者其它的东西去启动这个板子,同时要使用对应的交叉编译器,应该是arm的交叉编译器。
于是,板子能起来了,接到主机(比如PC上)也能识别出来一个“未知设备”了,剩下的工作就是给这个未知设备写驱动。
首先,要通过控制器代码去编写相关的USB设备描述符,PC能识别各种设备都是靠描述符,对此,需要先了解USB技术规范:《Universal Serial Bus Specification Revision 2.0》,这个百度一下就能下载,但是全英文的,我见过中文的,但翻译的很糟糕并且不全。
在此技术规范的章节:9.6.1 Device里有详细描述了USB设备描述符的信息。具体怎么把描述符写到驱动里,这个我不是特别清楚,所以只能说你要自己看代码了。
有了设备描述符,实际上还有很多别的描述符要设置,比如接口描述符、配置描述符等等,这些规范里都有,需要一一阅读。
有了这些,你只是制造了一个USB设备,但Windows还不认账,此时,需要设置HID描述符,因为键盘输入HID设备,关于HID的描述也有技术规范《Device Class Definition for Human Interface Devices (HID) Version 1.11》,同样没有中文的。
然后,你就可以根据这个规范发送对应的中断传输(interrupt)信号,就可以跟主机通信了。然后具体你想模拟哪个按键,需要发送对应的扫描码,具体的内容参考这里:,扫描码的介绍是有中文的,找到以后,你就可以很开心的发送键盘按键信息了。
然后,就完事了,难度就是要阅读很多技术规范,以及大量的代码。
当然,某些商用的嵌入式系统自带USB设备模拟驱动,如果有钱(很贵的),买一套成品过来,找一个板子就可以了。
【猫杀的回答(1票)】:
真要从零开始做的话,最麻烦的在于USB底层协议的东西,specification动辄几十页还算少的。所以除非真心蛋疼,一般不会从零去做这部分。好在有大量的软、硬件解决方案,已经把这部分的heavy lifting给做了。
键盘是属于USB HID,所以是免驱的,插上就能正确使用(前提当然是你硬件端搞对)。所以软件部分,也没什么可做的。
以我个人之前折腾过的几个项目来看,用AVR单片机是比较容易的,因为存在v-usb,LUFA这样的开源库:
基于这两个框架还有port到Arduino的方案,那就是最最最简单的了,比如:
有单片机开发基础的人,1天搞个快速原型出来不是问题,代码量也就几百行的样子。
这里有篇博文给了个实例:
总的来说,找对资料,搞个键盘这样简单的东西出来,就是严格按照cookbook来做就行了,没什么技术门槛。要注意的就是,一定要严格按照给的元件来,我最早一个原型就因为Zener管用的1/2W而非要求的1/4W就导致设备枚举失败;二是能打样PCB最好打样PCB,至少也得覆铜板热转印蚀刻,想用洞洞板焊出的电路把USB糊弄过去有的时候很难。
下图是我最早做的一个原型,基于vusb for arduino的项目搞了一个Arduino Pro Mini的USB shield,插电脑上设备能枚举,也能用Arduino模拟按键,懂单片机的都知道,再多一步按键扫描就搞定了。不过后来我要做的那个项目改成了蓝牙无线方案,也就没继续弄USB了。
【李柯言的回答(0票)】:
首先得会找石油 找矿山←_←
【LeibnizHu的回答(0票)】:
《圈圈教你玩USB》里面就有讲…………随书附送PCB版
发表评论:
馆藏&57544
TA的推荐TA的最新馆藏小学六年级
用CH372配置了hid键盘和鼠标,在系统中驱动后 会多出感叹号来。 提示设备无法启动。
用USB.ORG 网上的测试工具 发现 枚举过程中有几个USB指令未响应。
使用如下程序修改部分代码,未改动USB枚举中的东西。
17177 积分
看了一下你的程序,鼠标的报表,你确定是可以的吗?如果报表错误也可能是发生你现在实验的现象。
区分这点很容易。
你看一下是鼠标还是键盘多出感叹号。
小学六年级
感谢红桃六的回复。我确认了,是由于报表错误所引起。
现在错误已经改掉了。在设备管理器中能看到完整的设备。但固件仍然无法通过 用USB.ORG 网上的测试工具 发现 枚举过程中有几个USB指令未响应。
最近忙得厉害,调试得真辛苦。贵司有能通过那个USB.ORG 上面的命令兼容性测试的例程吗?
17177 积分
只要在WINDOWS下可以正确识别即可。说明肯定是可以使用的。这些指令可以加上,但是很多是没意义的。所以我们的代码里没有做相关处理。
小学六年级
从简单应用来说,可以不做处理。
但USB规范里明确写了,USB devices must respond to standard device requests, even if the device has not yet been assigned an address or has not been configured.
我觉得,既然是做USB设备,那么,多写几行代码,满足协议定义也是有一定意义的,因为我们不知道操作系统如何使用其它的我们没响应的请求和命令。
或者,将来有可能产品会在其它非WINDOWS系统上跑。那么我们理解WINDOWS的实现也并不是适应所有的。如果实现了协议所有定义,那产品应该就能适应更多的场合吧。
17177 积分
USB规范里的标准请求当然是支持的。但是HID类请求是无需全部支持的。上面的应为你是摘自USB标准规范,还是HID类规范?
评分扣除自身相应积分,普通会员最高加分3分
你需要登录才可以发帖
江苏沁恒论坛

我要回帖

更多关于 usb ch372 ch375 的文章

 

随机推荐