C8051F320带有USB2.0的标准控制器,可以为需要USB接口的设备提供廉价、简易、和便于开发的解决方案。我就是在我的“虚拟示波器DIY”项目中使用了它,感觉不错,今天是第一次接上USB调试,用的固件是它本身开发程序带的例子,有些小的值得记录的经验和体会。
单片机上和USB的接口有四个,分别是VBUS、D+、D-、GND。但是多了一个REGIN接口,我今天的问题就出在这个口的处理上。虽然系统使用了USB口,但是在这之前我不知道这个单片机可以直接通过REGIN口总单片机取电,我就单独用个稳压管从USB取电然后通过VDD给它供电,所以一开始这个REGIN根本就没有接。出现的情况很是奇妙:只有当把仿真器连到板子上,使用仿真模式,然后运行程序,这时候可以在设备管理器中看到有新的设备发现,除此之外,比如把程序下载进去,单独运行,就会出现发现未知设备,然后始终出错。但是如果不使用USB的功能,弄个普通的小程序,就可以运行的很好。这方面的原因,我还没有参悟透,但是初步估计,有可能是例程中的USB控制方式影响了它的供电情况,应该可以设置成外部供电的模式,等再仔细看看它的使用说明吧。
还有个使用Keil时的小问题:因为使用的是人家的例程,所以直接把它的源文件复制到自己的工程中去,编译调试的时候有几十个warning,但是没有一个错误,就是那种找不到符号的警告,以为没有什么大事,就直接仿真运行,一开始就是这样的,所以无论怎么测试,程序都运行的不对。才突然发现有很多函数没有定义,才意识到这些函数是被开发商做成.lib的库了,得包含进来,晕死,居然把这给忘了。
上一篇:1602 上下滚动显示
下一篇:单片机在IO端口产生38KHZ的方波