• slider image 71
  • slider image 72
  • slider image 73
:::


Browsing this Thread:   1 Anonymous Users






Dspic33FJ64MC508A 第一次上電 UART RX中斷收不到值
#1
新會員
新會員


查看用戶資訊
想請問一下,有人遇到過第一次上電的時候,UART RX中斷有收不到值的問題嗎?

目前用Debug去看,以一筆資料有10個Byte,這10個Byte在第一次RX中斷都不會進去,當我傳送第二次的時候才會正常,請問有人有遇過這個問題嗎?

還是我以下UART的設定有問題呢?

OpenUART1(UART_EN UART_IDLE_CON UART_EN_WAKE UART_DIS_LOOPBACK UART_DIS_ABAUD &
              
UART_NO_PAR_8BIT UART_1STOPBIT UART_IrDA_DISABLE UART_MODE_SIMPLEX &
              
UART_UEN_00 UART_UXRX_IDLE_ONE UART_BRGH_SIXTEEN,
              
UART_INT_TX UART_IrDA_POL_INV_ZERO UART_SYNC_BREAK_DISABLED UART_TX_ENABLE &
              
UART_INT_RX_CHAR UART_ADR_DETECT_DIS UART_RX_OVERRUN_CLEAR,
              
UART1Period);
    
ConfigIntUART1UART_RX_INT_EN UART_RX_INT_PR4 UART_TX_INT_DIS UART_TX_INT_PR4 );

//-----UART RX Interrup-----//
void __attribute__( ( interrupt no_auto_psv ) ) _U1RXInterruptvoid )
{
    
UART1_ReceiveBuffer[UART1_Read_Count] = ReadUART1();
    
UART_Status_Flag.bits.UART_RX_ReadStart 1;     
    
UART1_Read_Count++;                             
    
UART1_Count 0;                                
    
IFS0bits.U1RXIF 0;         
}

發表於: 6/30 11:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: Dspic33FJ64MC508A 第一次上電 UART RX中斷收不到值
#2
新會員
新會員


查看用戶資訊
更正,再次確認後發現,第一筆資料是有收到的,也是完整的。
第一次上電等待資料整筆收完,實際收到的資料是往右位移一個byte。

假設PC傳送10個byte給RX陣列接收,RX陣列0的位置應該為PC發送的第1個Byte,但是第一次上電RX陣列第0個Byte都是0,RX陣列第1個Byte才是PC發送的第一個Byte。

正常收到值應該是這樣
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;

第一次實際收到值為
array[0] = 0;
array[1] = 1;
array[2] = 2;
array[3] = 3;
array[4] = 4;
array[5] = 5;

發表於: 6/30 13:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: Dspic33FJ64MC508A 第一次上電 UART RX中斷收不到值
#3
版主
版主


查看用戶資訊
懷疑是接收的 Ring Buffer 指標的初始設定有問題,請確認一下指標設定部分看看。

發表於: 7/1 13:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]