音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請教周工uart中斷問題

作者:bsp25K 欄目:ARM技術
請教周工uart中斷問題
 
2樓: >>參與討論
bsp25K
請教周工uart中斷問題
我編寫的EasyARM2200 的uart0驅(qū)動,在禁止FIFO,用軟件實現(xiàn)發(fā)送接收緩沖的情況下,Rx中斷沒有問題,我發(fā)送34個數(shù)字,Tx中斷只進入了1次,但是有時候卻正常,以下是我的設置,請周工指點一下
void VICConfig (void)
{
    VICIntEnable  = VICIRQ_UART0;              
    VICIntSelect &= ~VICIRQ_UART0;             
    
    VICVectCntl0  = VICIRQ_SLOT_EN + UART0_ID;  
    VICVectAddr0  = (INT32U)&IRQUART0Handler;       
    VICVectAddr   = 0x00000000;
}

INT8U UART0Config (INT32U baud, UARTMODE set)
{
    //UARTMODE    uart0_set;
    INT32U      bak;
    
    //Parameters FILTER
    if ((baud == 0)||(baud > 115200)) return (0);
    if ((set.datab < 5)||(set.datab >8)) return (0);
    if ((set.stopb == 0)||(set.stopb > 2)) return (0);
    if ((set.parity > 4)) return (0);
    
    // Set the Baud rate of COM
    OS_ENTER_CRITICAL();                        /* Necessary!!!!                                   */
    U0LCR |= UART_LCR_ACCESS_DL;                /* Set DLAB = 1 to access the DLL,DLM registers    */
    bak   = BAUD_SET / baud;
    U0DLL = bak & 0x00ff;
    U0DLM = (bak >> 8) & 0x00ff;
    
    // Set the mode of COM(LCR)
    bak = set.datab - 5;                        /* Set word length                                 */
    if (set.stopb == 1) {
        bak &= ~0x04;                           /* 1 stop bit                                      */
    }
    
    SWITCH (set.parity) {
        case 0:
            bak &= ~UART_LCR_PARITY_EN;
            break;
            
        case 1:
            bak |= UART_LCR_PARITY_EN;
            set.parity = set.parity - 1;
            bak |= set.parity << 4;
            break;
            
        case 2:
            bak |= UART_LCR_PARITY_EN;
            set.parity = set.parity - 1;
            bak |= set.parity << 4;
            break;
          
         default:
            break;
    }
    U0LCR = bak;
    
    // FIFO Setting
    U0FCR |= (UART_FCR_FIFO_EN + UART_FCR_TXFIFO_RST + UART_FCR_RXFIFO_RST);
    //U0FCR = UART_FCR_RX_TRG1;
    U0FCR &= ~UART_FCR_FIFO_EN;
    
    OS_EXIT_CRITICAL();
    
    return (1);
}                          


參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
請教周工:EsayARM2131套件中的SD CARD PACK用法?
請周工幫忙:
為什么會這樣啊,請大家?guī)兔?
請教周公關于向量表映射的問題
RTL8019調(diào)試過程中出現(xiàn)的問題
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號