|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
求解:一個(gè)89c51snd1c中usb中斷的問題 |
| 作者:海威 欄目:數(shù)字廣電 |
本人最近想學(xué)習(xí)作個(gè)mp3,可碰到個(gè)莫名其妙的問題,望大蝦指點(diǎn): 使用flip通過usb可以下載hex文件,但是hex文件并沒有關(guān)于usb固件的程序,用bushound監(jiān)視,發(fā)現(xiàn)芯片還是有輸出,只是到GET_DECRIPTER就停住了(無數(shù)據(jù))。我不知道該怎么禁止它發(fā)送(所有關(guān)于usb的中斷我都已經(jīng)禁止了)。 當(dāng)我把帶有usb固件程序的hex文件下載到89c51snd1c后。上電,插上usb線,bushound上獲取的數(shù)據(jù)還是一樣,而且系統(tǒng)根本沒有進(jìn)入usb的中斷(在程序中我通過一個(gè)led指示)。很奇怪。郁悶了一個(gè)星期,希望大蝦幫幫忙。 另外,我設(shè)計(jì)了一個(gè)針對(duì)NandFlash的FAT16文件系統(tǒng)(含文件操作),有需要的朋友,我可以發(fā)給你們,作一個(gè)參考(因usb沒搞定,所以其中難免會(huì)有些問題,請(qǐng)諒解) |
| 2樓: | >>參與討論 |
| 作者: 海威 于 2005/12/31 15:26:00 發(fā)布:
謝謝computer00 謝謝computer00。 GET DESCRIPTOR我現(xiàn)在清楚了 我的初始化程序如下: void usb_init (void) { Usb_enable_int();//(總中斷已開) Usb_enable(); UEPIEN = 0x07; USBIEN = MSK_SPINT | MSK_SOFINT | MSK_EORINT | MSK_WUPCPU; UEPRST = 0x07; /* Reset EP 0, 1 and 2 */ UEPRST = 0x00; endpoint_status[EP_CONTROL] = 0x00; endpoint_status[EP_IN] = 0x00; endpoint_status[EP_OUT] = 0x00; Usb_select_ep(EP_CONTROL);/* CONTROL.html">CONTROL endpoint config */ UEPCONX = CONTROL; } 中斷采用查詢,程序如下: main() {... usb_init(); while(1) { if(Usb_reset()){led1_on();} else if(UEPINT != 0) {led2_on();usb_enumeration_process();} else if(Usb_suspend()){led3_on();} else if(Usb_resume()){led4_on();} } } 結(jié)果就是沒有中斷出現(xiàn)。 |
|
| 3樓: | >>參與討論 |
| 作者: computer00 于 2005/12/31 15:39:00 發(fā)布:
不好意思,我那個(gè)東東搞了也有一段時(shí)間了,都不記得這些寄存器了 你可以去看看我剛剛給你的那個(gè)連接,然后對(duì)照一下幾個(gè)關(guān)鍵寄存器的配置,看是否正確了。 例如USB時(shí)鐘等。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào) |