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