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