Re: CDC程式的問題?
|
||||
---|---|---|---|---|
初級會員
|
了解,感謝提醒,都忘了還有旗標這個可以幫忙偵錯的地方。
發表於: 2008/2/1 17:26
|
|||
|
Re: CDC程式的問題?
|
||||
---|---|---|---|---|
版主
|
BPS 用示波器算一下也是可以知道的,BPS 錯誤相對的 Framing Error Bit (FERR) 也會被設為1。
發表於: 2008/2/1 14:42
|
|||
|
Re: CDC程式的問題?
|
||||
---|---|---|---|---|
版主
|
有用 ICD2 除錯嗎?
用 ICD2 設中斷點在接收中段服務程式裡,先檢查會不會產生接收中斷,然後檢查接收的資料為何? 這個的除錯是很簡單的。
發表於: 2008/2/1 14:23
|
|||
|
CDC程式的問題?
|
||||
---|---|---|---|---|
初級會員
|
目前在下用4550和4011做串列傳輸的實驗,因為最後希望目標是可以串列和USB的動作都有,故直接用CDC的範例。
在串列部份,去測4550的接收腳,以及4011的傳送腳皆可以讀到欲傳送的數據,但是要做數據的判斷卻有問題,例如傳了0x22, 0x33, 0x44,要4550收到0x33時輸出0x33以及燈亮,但是4550卻無任何動作。 接收部份用接收中斷的方式,收到資料同時判斷。以下是相關程式段: void Rx_isr (void) { tempR = RCREG; if(tempR == 0x33) TXREG = tempR; } void InitializeUSART(void) { TRISCbits.TRISC7=1; // RX TRISCbits.TRISC6=0; // TX SPBRG = 0x24; SPBRGH = 0x00; // 0x0024 for 48MHz -> 230400 baud TXSTA = 0x24; // TX enable BRGH=1 RCSTA = 0x90; // continuous RX BAUDCON = 0x08; // BRG16 = 1 PIR1bits.RCIF = 0; // 清中斷旗標 PIE1bits.RCIE = 1; // 接收中斷功能致能 IPR1bits.RCIP = 0; // 設定為低優先中斷 }//end InitializeUSART 2顆IC鮑率皆設為230400。希望前輩們可以幫忙看看,感激不盡!
發表於: 2008/1/31 11:03
|
|||
|