|
詢問pic18f452 USART傳送問題
|
|
新會員
|
void isr_high(void) { Rec_Data=ReadUSART(); Data_Buffer[i]=Rec_Data; Data_Temp[j]=Data_Buffer[i]; if(Data_Temp[12]==0xA7 && Data_Temp[13]==0xA5 && Data_Temp[14]==0x5A ) { while(TXSTAbits.TRMT=0); putcUSART(0xA7); while(TXSTAbits.TRMT=0); putcUSART(0xA5); while(TXSTAbits.TRMT=0); putcUSART(0x5A); } if (i<3) { i++; } else { i=0; } j++; }
這是我進入中斷後的副程式,當我判斷得知收到的資料為A7A55A時 我必須接著回傳A7A55A給傳輸端 但是當我使用MPLAB IDE的Watch來觀看TXREG這個變數時 雖然都有跟隨我的指令動作 可是在我使用邏輯分析儀實際測量USART的TX腳位時卻遲遲收不到訊號 所以想要請問各位大大這是那邊出了問題 還請麻煩一解迷津 下面是我USART的Initialize的Code void InitializeUSART(void) { OpenUSART( USART_TX_INT_OFF // Set TXSTA Reg. =0b00100100 & USART_RX_INT_ON // Set RCSTA Reg. =0b10010000 & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH ,103); // Set SPBRG=103, Baud Rate = 9600
RCSTAbits.SPEN=1; TRISCbits.TRISC7=1; // Set input for RXD TRISCbits.TRISC6=0; // Set output for TXD TXSTA=0b00100100; PIR1bits.RCIF=0; PIR1bits.TXIF=0; IPR1bits.RCIP=1; // Set Receive of USART are High priority }
發表於: 2007/3/20 22:02
|
|