usb
来源:互联网 发布:java程序员发展前景大不大 编辑:程序博客网 时间:2024/04/30 04:20
最近在c8051f340上实现usb ccid设备通信,以学习usb知识,费了好大的力气才彻底搞定,简要说说过程。
开始时比较固执,从0开始,看了一会儿手册,再按仿照例程的代码进行初始化,同时参考一个现有的其他芯片的代码的架构,试图融合两套代码的优点,“架构采用现成的,代码采用例程的”,每一步都要和手册进行比较,但是结果并不理想,原因有两个。
第一是两个芯片的差异比较大,现成的架构不太可能完全不动的移植到另一个平台上,因为同时参考两套代码,状态很乱,哪个的优点都没学成,无力再调试,只好另起炉灶了。
第二个是usb比起以前的串行通信,还是要复杂一点,有时移植一部分代码看不到效果,还会引起驱动层的反应不良,机器在这一阶段就蓝屏了好多次,后来插上设备几秒就迅速拔下来,避免机器重启。
断断续续的经过了近两个月以及两个版本之后,第三个版本基本完全采用官方提供的例程,不再同时参考两套代码。只做代码风格上的修改,每一步修改都保证usb的效果不变,因为对芯片的usb部分也稍微熟悉了,对usb规范也懂了皮毛了,这次修改的效果很明显,很快一个usb ccid设备就可以通讯了,但是........
它不稳定,经常憋死,不能在办公室环境中稳定通信的设备没有价值。
这之后又经历了一个第四版,憋了好几天,请教了好几个高手,最后发现是多设置一个寄存器导致的,修正了就完全正确了。
usb知识是基本功,usb通讯在大部分情况下可以取代串口通讯了,学usb要多问,要个人带一下。
- USB
- USB
- USB
- usb
- usb
- usb
- USB
- usb
- USB
- USB
- USB
- USB
- usb
- usb
- usb
- usb
- usb
- usb
- Java对象的序列化和反序列化
- JIRA插件开发
- 深入理解事件与委托
- Hibernate中outer-join、lazy 、fetch join关键字的使用
- 第一篇文章
- usb
- 关于Java对象序列化您不知道的5件事
- [翻译] 开源ERP的10个评估标准
- Vs008中关于托盘气泡提示显示不出来的问题and sdk实现托盘加气泡
- Linux信号简介和信号处理相关函数
- 设计模式学习总结
- JasperReport 与 Struts2 整合
- 如何找回删除并清空回收站的东西
- 利用JAVA打包生成zip文件的类