C8051F320的USB調(diào)試
C8051F320帶有USB2.0的標準控制器,可以為需要USB接口的設備提供廉價、簡易、和便于開發(fā)的解決方案。我就是在我的“虛擬示波器DIY”項目中使用了它,感覺不錯,今天是第一次接上USB調(diào)試,用的固件是它本身開發(fā)程序帶的例子,有些小的值得記錄的經(jīng)驗和體會。
單片機上和USB的接口有四個,分別是VBUS、D+、D-、GND。但是多了一個REGIN接口,我今天的問題就出在這個口的處理上。雖然系統(tǒng)使用了USB口,但是在這之前我不知道這個單片機可以直接通過REGIN口總單片機取電,我就單獨用個穩(wěn)壓管從USB取電然后通過VDD給它供電,所以一開始這個REGIN根本就沒有接。出現(xiàn)的情況很是奇妙:只有當把仿真器連到板子上,使用仿真模式,然后運行程序,這時候可以在設備管理器中看到有新的設備發(fā)現(xiàn),除此之外,比如把程序下載進去,單獨運行,就會出現(xiàn)發(fā)現(xiàn)未知設備,然后始終出錯。但是如果不使用USB的功能,弄個普通的小程序,就可以運行的很好。這方面的原因,我還沒有參悟透,但是初步估計,有可能是例程中的USB控制方式影響了它的供電情況,應該可以設置成外部供電的模式,等再仔細看看它的使用說明吧。
還有個使用Keil時的小問題:因為使用的是人家的例程,所以直接把它的源文件復制到自己的工程中去,編譯調(diào)試的時候有幾十個warning,但是沒有一個錯誤,就是那種找不到符號的警告,以為沒有什么大事,就直接仿真運行,一開始就是這樣的,所以無論怎么測試,程序都運行的不對。才突然發(fā)現(xiàn)有很多函數(shù)沒有定義,才意識到這些函數(shù)是被開發(fā)商做成.lib的庫了,得包含進來,暈死,居然把這給忘了。