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

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(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

LPC2131 uart Tx中斷如何觸發(fā)??

作者:whwlxl 欄目:ARM技術(shù)
LPC2131 uart Tx中斷如何觸發(fā)??
我在在調(diào)試uart0 Tx中斷時(shí),
U0FCR = 0X00;
在要發(fā)送的數(shù)據(jù)包的地方使能THRE中斷
gTxBuff[0]='a';
gTxBuff[1]='b';
gTxBuff[2]='c';
gTxBuff[3]='d';
gTxPoint = 0;
U0IER = 0x03;

在中斷中是這樣做的
void __irq IRQ_UART0(void)
{
uint8 IIR;
do{
     IIR=U0IIR;
     if( (IIR&0x01)==0);
     {
       SWITCH( IIR &0x0e )
      {case 0x02://Tx
         if( gTxPoint<4 ){   U0THR = gTxBuff[gTxPoint]; gTxPoint++; )
         else U0IER = 0x01;//禁止傳誦中斷
         break;
         case 0x04://RX
         .............
      }
     }
}
接收數(shù)據(jù)的中斷沒(méi)有問(wèn)題?墒前l(fā)現(xiàn)就是進(jìn)不了發(fā)送中斷。謝謝各位給點(diǎn)提示。


UART0 THRE 中斷(U0IIR3:1=001)為第三優(yōu)先級(jí)中斷。當(dāng)UART0 THR FIFO 為空并且滿足特定的初始
化條件時(shí),該中斷激活。這些初始化條件將使UART0 THR FIFO 被數(shù)據(jù)填充,以免在系統(tǒng)啟動(dòng)時(shí)產(chǎn)生許多
THRE 中斷。初始化條件在THRE=1 時(shí)實(shí)現(xiàn)了一個(gè)字符的延時(shí)減去停止位并在上一次THRE=1 事件之后沒(méi)
有在U0THR 中存在至少2 個(gè)字符。在沒(méi)有譯碼和服務(wù)THRE 中斷時(shí),該延遲為CPU 提供了將數(shù)據(jù)寫(xiě)入
U0THR 的時(shí)間。如果UART0 THR FIFO 中曾經(jīng)有兩個(gè)或更多字符,而當(dāng)前U0THR 為空時(shí),THRE 中斷立
即設(shè)置。當(dāng)發(fā)生U0THR 寫(xiě)操作或U0IIR 讀操作并且THRE 為最高優(yōu)先級(jí)中斷(U0IIR3:1=001)時(shí),THRE
中斷復(fù)位。

這是周立功LPC2131手冊(cè)上的?墒亲x不明白他說(shuō)的啥意思。!

看了給的串口例程,應(yīng)該和我的程序差不多,都是靠U0IER的TX中斷使能來(lái)觸發(fā)
TX中斷的。只是它的FIFO選擇的是8字節(jié)的。謝謝各位給個(gè)TX的中斷,
并說(shuō)明如何來(lái)觸發(fā)TX。我的程序需要定時(shí)從串口發(fā)送協(xié)議包,所以需要中斷!

2樓: >>參與討論
andrewpei
你不向THR中寫(xiě)數(shù)據(jù),就永遠(yuǎn)不能觸發(fā)中斷!
這個(gè)和單片機(jī)的UART是完全一樣的原理。發(fā)送中斷要想觸發(fā),必須先向THR或發(fā)送移位寄存器中寫(xiě)一個(gè)數(shù)!

3樓: >>參與討論
上善若水
以下摘自easyarm2131開(kāi)發(fā)板帶的文檔:《ARM與uCOS-II技術(shù)論壇》
第315問(wèn):
Q:以下是我的一些設(shè)置:
U1FCR = 0x05; // 使能FIFO,并設(shè)置觸發(fā)點(diǎn)為1 字節(jié)
U1IER = 0x03; // 允許RBR、THRE 中斷
/* 設(shè)置中斷允許 */
VICIntSelect = 0x00000000; // 設(shè)置所有通道為IRQ 中斷
VICVectCntl1 = 0x27; // UART1 中斷通道分配到IRQ slot 0
VICVectAddr1 = (int)IRQ_UART1; // 設(shè)置UART1 向量地址
VICIntEnable = 0x00000080; // 使能UART1 中斷
我用查詢方式發(fā)送和中斷方式接受能正常工作,但是我把發(fā)送也用中斷方式時(shí),發(fā)送中
斷卻沒(méi)有產(chǎn)生。看資料說(shuō)明似乎還要加一些初始化條件,但不是很明白,請(qǐng)各位大俠指
點(diǎn)一下還要加些什么?
A:我終于知道原因了,原來(lái)在觸發(fā)發(fā)送中斷之前要先發(fā)送字符觸發(fā)發(fā)送中斷。

4樓: >>參與討論
whwlxl
我發(fā)送前先向U0THR寫(xiě)了數(shù)據(jù)?墒遣恍。再試試!
我最開(kāi)始的程序是這樣的:
gTxBuff[0]='a';
gTxBuff[1]='b';
gTxBuff[2]='c';
gTxBuff[3]='d';
gTxPoint = 1;
U0THR=gTxBuff[0];//寫(xiě)TX緩沖。
U0IER = 0x03;
中斷程序不變。

我做過(guò)C8051F系列單片機(jī),PC機(jī),S3C2410等串口的發(fā)送+接收中斷。
C8051F系列單片機(jī),PC機(jī)和各位說(shuō)的LPC2131發(fā)送+接收中斷的步驟差不多,
我最開(kāi)始也是那樣做的?墒菦](méi)有發(fā)不了數(shù)據(jù),所以又看文檔才改成上面
的程序。S3C2410的串口中斷比較麻煩點(diǎn)。

我再做做實(shí)驗(yàn)!OK就把代碼貼上來(lái)。謝謝各位,確定了我最初的想法。

5樓: >>參與討論
鄉(xiāng)村獵人
可以觸發(fā)發(fā)送中斷
U0FCR = 0x07; // 使能FIFO,并設(shè)置觸發(fā)點(diǎn)為1字節(jié)
U0IER = 0x03; // 允許RBR中斷,即接收中斷;允許THRE中斷,既發(fā)送中斷;


在啟動(dòng)發(fā)送時(shí)U0THR = 0xXX;就可以觸發(fā)發(fā)送中斷了(這點(diǎn)沒(méi)有51方便)。

SWITCH (IIR & 0x0e)
{
case 0x02:      //U0IIR[3:0] = 0010  發(fā)送保持寄存器空中斷
......
  }


不過(guò)第一個(gè)字符在啟動(dòng)時(shí)就發(fā)送過(guò)去了,中斷中就開(kāi)始發(fā)送第二個(gè)字符了。



6樓: >>參與討論
上善若水
re
如果這樣,為了觸發(fā)發(fā)送中斷發(fā)出的第一個(gè)字節(jié)不成了垃圾?干擾正常的發(fā)送?還要人工在接收方濾除?

7樓: >>參與討論
whwlxl
做了實(shí)驗(yàn),還是不行。把代碼貼出來(lái)給大伙看看!
TO :上善若水

“如果這樣,為了觸發(fā)發(fā)送中斷發(fā)出的第一個(gè)字節(jié)不成了垃圾?干擾正常的發(fā)送?還要人工在接收方濾除?”

第一個(gè)字符一般情況下是數(shù)據(jù)包頭。所以直接發(fā)送了,后面的數(shù)據(jù)跟著發(fā)就行。
例如 0x55,0xaa,data0,data1,sum這個(gè)串口數(shù)據(jù)包,0x55,0xaa是包頭,中間
兩數(shù)據(jù)是數(shù)據(jù),最后一個(gè)是校驗(yàn)和。
在啟動(dòng)串口中斷時(shí)可先 U0THR =0x55,然后在中斷例程里發(fā)0xaa,data0,data1,sum。

TO:鄉(xiāng)村獵人
其實(shí)我的程序就是這樣的。我把代碼貼上來(lái),大家看看有什么地方出錯(cuò)了。
就是沒(méi)有發(fā)送中斷。
uint8    gRxBuff[8];
uint8    gRxPoint=0;
uint8    gTxPoint=8;

void Config_Uart0( void )
{
    int    Fdiv;
    //P0.0,P0.1 connect to Tx0 Rx0
    PINSEL0 = (PINSEL0&(~0x0f))|0x05;
    //enable baud rate set
    U0LCR = 0x80;
    //Set baud rate
    Fdiv = ( Fpclk/16 ) / 115200;
    U0DLM = Fdiv/256;
    U0DLL = Fdiv%256;
    //Set DataBit,Parity,StopBit...
    U0LCR = 0x03;//8,n,1
    
    U0IER = 0x05;//Rx,Interrupt enable, Tx Interrupt disable;
    U0FCR = 0x07;//FIFO 1 byte
}

void __irq IRQ_UART0(void)
{
    uint8 byte;
    if( (U0IIR&0x0f)==0x06 )
    {
        byte = U0LSR;
    }
    else
    {
        while( ((byte=U0IIR)&0x01)==0 )
        {
            SWITCH( byte&0x0e)
            {
            case    0x0c:    //Rx timeout
                byte = U0RBR;
                break;
            case    0x04:            
                gRxBuff[gRxPoint] = U0RBR;
                gRxPoint++;
                if(gRxPoint>=8)
                {
                    gRxPoint=0;
                    gTxPoint=0;
                }
                break;
            case    0x02:
                if( gTxPoint<8 )
                {
                    U0THR = gRxBuff[gTxPoint];
                    gTxPoint ++;
                }
                else
                {
                    U0IER = 0x01;
                }
                break;
            default:goto EXIT_UART_INT;
            }
        }
    }
    EXIT_UART_INT:
    VICVectAddr = 0x00;    //clear interrupt
}

int main (void)
{// add user source code
    //PINSEL1 = (PINSEL0&(~(0x0f<<16)))|(0x05<<16);    //P0.8,P0.9 connect to Tx1 Rx1
    Config_Uart0();
    
    IRQEnable();
    VICIntSelect = 0x00000000;
    VICVectCntl0 = 0x20|0x06;
    VICVectAddr0 = (uint32)IRQ_UART0;
    VICIntEnable = 1<<0x06;
    
    do
    {
        //Uart0_SendByte(Uart0_GetByte());
        //Uart0_SendByte('A');

                  //觸發(fā)TX中斷。
        if( !gTxPoint )
        {
            U0THR=0x55;
            gTxPoint++;
            //U0IER=0x03;
            U0IER = U0IER | 0x02;
        }
    }while(1);
    return 0;
}

調(diào)試了,我每次用串口調(diào)試工具發(fā)送8個(gè)字符,結(jié)果只能收到2131傳來(lái)的第一
個(gè)數(shù)據(jù)0x55,我覺(jué)得我的程序也沒(méi)有錯(cuò)了!可是應(yīng)該是沒(méi)有產(chǎn)生TX中斷。

8樓: >>參與討論
whwlxl
在線等,各位誰(shuí)有調(diào)試好的TX中斷傳送的代碼,發(fā)來(lái)看看!
沒(méi)有招了,調(diào)了好久還是不出來(lái)!各位誰(shuí)有調(diào)好的代碼,發(fā)到我郵箱吧
謝謝了!whwlxl@163.com

9樓: >>參與討論
greenyear
上電初始化uart0時(shí),先向U0THR寫(xiě)1次即可
我的程序和你差不多,只需在上電初始化uart0時(shí),先向U0THR寫(xiě)了數(shù)據(jù);

不必為了觸發(fā)發(fā)送中斷每次先通過(guò)U0THR發(fā)出的第一個(gè)字節(jié),不知是何原因?

10樓: >>參與討論
whwlxl
誰(shuí)給我發(fā)份源碼???
呵呵,greenyear, 在初始化的時(shí)候加了U0THR=0x00還是不行!!
各位誰(shuí)有TX中斷源碼。連項(xiàng)目一起打包發(fā)過(guò)來(lái)看看我的程序到底
哪里錯(cuò)了。TX就是不行,RX沒(méi)有任何問(wèn)題!多謝了。。。。!

whwlxl@163.com

11樓: >>參與討論
javie
先寫(xiě)數(shù)據(jù),后觸發(fā)
思路是這樣的

同意一樓

12樓: >>參與討論
whwlxl
別光說(shuō)啊,給個(gè)代碼看看。你們說(shuō)的我都想到也做過(guò)了,不行!
別光說(shuō)啊。給個(gè)串口TX中斷發(fā)送的項(xiàng)目過(guò)來(lái)。
我的程序都改了無(wú)數(shù)次了,能想到都改過(guò)了。
包括上面各位的思路,就是TX中斷不通。RX就OK!
UART 中斷做過(guò)好多了,PC、單片機(jī)、ARM的。
LPC213X到真是難住我了。

whwlxl@163.com,有代碼壓縮打包項(xiàng)目發(fā)一份過(guò)來(lái)吧,感激不盡!

13樓: >>參與討論
javie
十分抱歉,我的書(shū)和扳子都借給別人了
要不我現(xiàn)在就可以做實(shí)驗(yàn)


14樓: >>參與討論
whwlxl
謝謝各位幫忙!
http://file.21ic.com.cn/upload/img/200511/20061713414872664.gif
把下載的文件修改成rar的擴(kuò)展名。用winRAR打開(kāi)。

也可在這里直接下載
http://www.eetop.com.cn/cgi-bin/topic.cgi?forum=3&topic=2046&show=0
是我的串口工程。


不知道哪里錯(cuò)了,請(qǐng)各位幫忙修改!!多謝了!

http://file.21ic.com.cn/upload/img/200511/20061713414872664.gif

15樓: >>參與討論
whwlxl
好了,是程序錯(cuò)了。出錯(cuò)的地方在下面:
void __irq IRQ_UART0(void)
{
    uint8 byte;

/*************************************
    if( (U0IIR&0x0f)==0x06 )
    {
        byte = U0LSR;
    }
    else
    {
     錯(cuò)誤出在這里。。。。。!
***************************************/
        while( ((byte=U0IIR)&0x01)==0 )
        {
            SWITCH( byte&0x0e)
            {
            case    0x0c:    //Rx timeout
                byte = U0RBR;
                break;
            case    0x04:            
                gRxBuff[gRxPoint] = U0RBR;
                gRxPoint++;
                if(gRxPoint>=8)
                {
                    gRxPoint=0;
                    gTxPoint=0;
                }
                break;
            case    0x02:
                if( gTxPoint<8 )
                {
                    U0THR = gRxBuff[gTxPoint];
                    gTxPoint ++;
                }
                else
                {
                    U0IER = 0x01;
                }
                break;
            default:goto EXIT_UART_INT;
            }
    //    }
    }
    EXIT_UART_INT:
    VICVectAddr = 0x00;    //clear interrupt
}
謝謝各位了。。。。!多謝。。。!

16樓: >>參與討論
上善若水
說(shuō)明白啊。
那里怎么錯(cuò)了?好像沒(méi)問(wèn)題啊。

17樓: >>參與討論
whwlxl
到底錯(cuò)哪了我不清楚,不過(guò)我把上面的代碼刪除就好了!
/*************************************
    if( (U0IIR&0x0f)==0x06 )
    {
        byte = U0LSR;
    }
    else
    {
     錯(cuò)誤出在這里。。。。。!
***************************************/
這段刪除了,就可以正常接收,發(fā)送數(shù)據(jù)了!

18樓: >>參與討論
whwlxl
貼串口(TX+RX)+TIME0+ADC采樣的代碼!
#include "config.h"

#define TX0BUFF_LEN    4
#define RX0BUFF_LEN    8
                //0x55 if first send
uint8 gTx0Buff[TX0BUFF_LEN]={0xaa,0x00,0x00,0x00};
uint8 gTx0Point=TX0BUFF_LEN;

uint8 gRx0Buff[RX0BUFF_LEN];
uint8 gRx0Point=0;

typedef union dbdw
{
    uint8    db[2];
    uint16    dw;
}DBDW;

void Config_Uart0( void )
{
    int    Fdiv;
    //P0.0,P0.1 connect to Tx0 Rx0
    PINSEL0 = (PINSEL0&(~0x0f))|0x05;
    //enable baud rate set
    U0LCR = 0x80;
    //Set baud rate
    Fdiv = ( Fpclk/16 ) / 19200;
    U0DLM = Fdiv/256;
    U0DLL = Fdiv%256;
    //Set DataBit,Parity,StopBit...
    U0LCR = 0x03;    //8,n,1
    U0IER = 0x01;    //Rx,Interrupt enable, Tx Interrupt disable;
    U0FCR = 0x07;    //FIFO 1 byte
}

void Config_ADC0( void )
{
    PINSEL1 = (PINSEL1&(~(0x03<<28)))|(0x01<<28);
    ADCR =    (1<<3) |
        ((Fpclk/100000-1)<<8) |
        (0<<16) |
        (0<<17) |
        (1<<21) |
        (0<<22) |
        (1<<24) |
        (0<<27) ;
}

uint8 Uart0_GetByte( void )
{
    uint8 byte;
    while((U0LSR&0x01)==0);
    byte = U0RBR;
    return byte;
}


void __irq IRQ_Timer0(void)
{
    IRQDisable();
    AD0CR = (AD0CR&0xf8ffffff)|(0x1<<24);
    T0IR = 0x01;
    VICVectAddr = 0x00;
    IRQEnable();
}

void __irq IRQ_ADC0(void)
{
    uint32    ADdata;
    IRQDisable();
    ADdata = AD0DR;
    gTx0Buff[3]=gTx0Buff[1]=(uint8)(ADdata>>6);
    gTx0Buff[2]=(uint8)(ADdata>>14);
    gTx0Buff[3] += gTx0Buff[2];
    U0THR = 0x55;
    gTx0Point=0;
    U0IER = 0x03;
    VICVectAddr = 0x00;
    IRQEnable();
}

void __irq IRQ_UART0(void)
{
    uint8 byte;
    IRQDisable();
    while( ((byte=U0IIR)&0x01)==0 )
    {
        SWITCH( byte&0x0e)
        {
        case    0x02:    //Tx Interrupt
            if( gTx0Point<TX0BUFF_LEN )
            {
                U0THR = gTx0Buff[gTx0Point];
                gTx0Point ++;
            }
            else
            {
                U0IER = 0x01;
            }
            break;
        case    0x04:    //Rx Interrupt
            gRx0Buff[gRx0Point] = U0RBR;
            gRx0Point = (gRx0Point+1)%RX0BUFF_LEN;
            break;
        case    0x0c:    //Rx timeout
            byte = U0RBR;
            break;
        case    0x06:
            byte = U0LSR;
            break;
        default:goto EXIT_UART_INT;
        }
    }
    EXIT_UART_INT:
    VICVectAddr = 0x00;    //clear interrupt
    IRQEnable();
}

int main (void)
{// add user source code
    Config_Uart0();
    Config_ADC0();
    
    IRQEnable();
    
    T0TC = 0;
    T0PR = 0;
    T0MCR =0x03;
    T0MR0 =Fpclk/200;
    T0TCR =0x01;
    
    VICIntSelect = 0x00000000;
    VICVectCntl0 = 0x20|4;    //Timer0
    VICVectCntl1 = 0x20|18;    //ADC0
    VICVectCntl2 = 0x20|6;    //Uart0
    
    VICVectAddr0 = (uint32)IRQ_Timer0;
    VICVectAddr1 = (uint32)IRQ_ADC0;
    VICVectAddr2 = (uint32)IRQ_UART0;
    VICIntEnable = (1<<4)|(1<<18)|(1<<6);
    
    while(1);
    return 0;
}
200Hz的采樣速度把AD0.3的電壓數(shù)據(jù)通過(guò)串口發(fā)送出去。


19樓: >>參與討論
lucidmask
是不是U0IIR讀過(guò)一次后就會(huì)復(fù)位中斷狀態(tài)?
 
20樓: >>參與討論
上善若水
re:lucidmask
應(yīng)該是的吧。書(shū)上原話說(shuō):“在退出中斷服務(wù)程序之前,必須讀取UxIIR來(lái)清除中斷”,言外之意就是,讀了一次中斷就清除掉了。

21樓: >>參與討論
hotpower
學(xué)習(xí)學(xué)習(xí)...
 
22樓: >>參與討論
lucidmask
我想這是不是上面程序錯(cuò)的原因呀?
 if( (U0IIR&0x0f)==0x06 )  //這里不是讀U0IIR了嗎?
    {
        byte = U0LSR;
    }
    else
    {


23樓: >>參與討論
鄉(xiāng)村獵人
串口0接收發(fā)送中斷服務(wù)程序(不是最終程序,不過(guò)可用)
///////////////////////////////////////////////////////////
//函數(shù)名稱(chēng):IRQ_UART0()
//函數(shù)功能:串口0接收發(fā)送中斷服務(wù)程序
//入口參數(shù):無(wú)
//出口參數(shù):無(wú)
///////////////////////////////////////////////////////////
void __irq IRQ_UART0(void)
{
    uint8 IIR,TEMP;
    TEMP=0;
    while(((IIR = U0IIR) & 0x01) == 0)     //有中斷未處理完
    {
         SWITCH (IIR & 0x0e)
         {
             case 0x02:      //U0IIR[3:0] = 0010  發(fā)送保持寄存器空中斷
                 if (UART0_Send_Flag)
                 {
                     U0THR = *UART0SendBuf_RdPointer;        //從發(fā)送隊(duì)列中讀取數(shù)據(jù)寫(xiě)入發(fā)送保持寄存器
                     UART0SendBuf_RdPointer ++;
                    if (UART0SendBuf_RdPointer >= UART0_SendBuf + LEN_UART0_SendBuf) UART0SendBuf_RdPointer = UART0_SendBuf;
                    if (UART0SendBuf_RdPointer == UART0SendBuf_WrPointer)  {UART0_Send_Flag = 0;UART0_SendBuf_Empty=1;}        
                 }
                 else
                 {
                     UART0_SendBuf_Empty = 1;        //UART0發(fā)送緩沖為空.
                 }
                 break;
             case 0x04:      //U0IIR[3:0] = 0100  接收緩沖寄存器就緒中斷
             case 0x0c:        //U0IIR[3:0] = 1100   字符超時(shí)指示中斷
                 do
                 {
                     *UART0ReceiveBuf_WrPointer = U0RBR;       //從接收緩沖寄存器中讀取數(shù)據(jù)寫(xiě)入接收隊(duì)列       
                    UART0ReceiveBuf_WrPointer ++;
                    if (UART0ReceiveBuf_WrPointer >= UART0_ReceiveBuf + LEN_UART0_ReceiveBuf) UART0ReceiveBuf_WrPointer = UART0_ReceiveBuf;
                }
                while ((U0LSR & 0x01) != 0);
                break;
             case 0x06:        ////U0IIR[3:0] = 0110  奇偶等錯(cuò)誤或間斷中斷     
                 TEMP = U0LSR;
                 break;
             default:
                 break;
         }
    }
    VICVectAddr = 0x00;            // 中斷處理結(jié)束
}


24樓: >>參與討論
鄉(xiāng)村獵人
這里是MAIN的初始化部分
    UARTMODE set;

    set.datab  = 8;
    set.stopb  = 1;
    set.parity = 0;
    
    UART0_Init(115200, set);            // 串口初始化
    //U0FCR = 0x81;                        // 使能FIFO,并設(shè)置觸發(fā)點(diǎn)為8字節(jié)
    U0FCR = 0x07;                       // 使能FIFO,并設(shè)置觸發(fā)點(diǎn)為1字節(jié)
    U0IER = 0x03;                        // 允許接收發(fā)送中斷
    
    IRQEnable();                        // 使能IRQ中斷
    /* 使能UART0中斷 */
    VICIntSelect = 0x00000000;            // 設(shè)置所有的通道為IRQ中斷
    VICVectCntl0 = 0x20 | 0x06;            // UART0分配到IRQ slot0,即最高優(yōu)先級(jí)
    VICVectAddr0 = (uint32)IRQ_UART0;    // 設(shè)置UART0向量地址
    VICIntEnable = 1 << 0x06;            // 使能UART0中斷
    
    UART0SendBuf_RdPointer = UART0_SendBuf;
    UART0SendBuf_WrPointer = UART0_SendBuf;
    UART0ReceiveBuf_RdPointer = UART0_ReceiveBuf;
    UART0ReceiveBuf_WrPointer = UART0_ReceiveBuf;


25樓: >>參與討論
Herowa
了解了,謝謝whwlxl
 
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教一個(gè)PWM中斷的問(wèn)題
一個(gè)關(guān)于MAM的萊鳥(niǎo)問(wèn)題
LCD12232 For ARMlpc214x 顯示程序移植OK.
問(wèn)個(gè)關(guān)于ucosII的簡(jiǎn)單問(wèn)題
求教!不使用操作系統(tǒng)時(shí),可以使用文件函數(shù)fread,fseek嗎?
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)