|
|||||||||||
| 技術(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ù) |
我在在調(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 于 2006/1/5 18:25:00 發(fā)布:
你不向THR中寫(xiě)數(shù)據(jù),就永遠(yuǎn)不能觸發(fā)中斷! 這個(gè)和單片機(jī)的UART是完全一樣的原理。發(fā)送中斷要想觸發(fā),必須先向THR或發(fā)送移位寄存器中寫(xiě)一個(gè)數(shù)! |
|
| 3樓: | >>參與討論 |
| 作者: 上善若水 于 2006/1/6 11:44:00 發(fā)布:
以下摘自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 于 2006/1/6 13:32:00 發(fā)布:
我發(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)村獵人 于 2006/1/6 17:05:00 發(fā)布:
可以觸發(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樓: | >>參與討論 |
| 作者: 上善若水 于 2006/1/6 17:40:00 發(fā)布:
re 如果這樣,為了觸發(fā)發(fā)送中斷發(fā)出的第一個(gè)字節(jié)不成了垃圾?干擾正常的發(fā)送?還要人工在接收方濾除? |
|
| 7樓: | >>參與討論 |
| 作者: whwlxl 于 2006/1/7 8:40:00 發(fā)布:
做了實(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 于 2006/1/7 10:40:00 發(fā)布:
在線等,各位誰(shuí)有調(diào)試好的TX中斷傳送的代碼,發(fā)來(lái)看看! 沒(méi)有招了,調(diào)了好久還是不出來(lái)!各位誰(shuí)有調(diào)好的代碼,發(fā)到我郵箱吧 謝謝了!whwlxl@163.com |
|
| 9樓: | >>參與討論 |
| 作者: greenyear 于 2006/1/7 11:56:00 發(fā)布:
上電初始化uart0時(shí),先向U0THR寫(xiě)1次即可 我的程序和你差不多,只需在上電初始化uart0時(shí),先向U0THR寫(xiě)了數(shù)據(jù); 不必為了觸發(fā)發(fā)送中斷每次先通過(guò)U0THR發(fā)出的第一個(gè)字節(jié),不知是何原因? |
|
| 10樓: | >>參與討論 |
| 作者: whwlxl 于 2006/1/7 13:20:00 發(fā)布:
誰(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 于 2006/1/7 13:22:00 發(fā)布:
先寫(xiě)數(shù)據(jù),后觸發(fā) 思路是這樣的 同意一樓 |
|
| 12樓: | >>參與討論 |
| 作者: whwlxl 于 2006/1/7 13:29:00 發(fā)布:
別光說(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 于 2006/1/7 13:32:00 發(fā)布:
十分抱歉,我的書(shū)和扳子都借給別人了 要不我現(xiàn)在就可以做實(shí)驗(yàn) |
|
| 14樓: | >>參與討論 |
| 作者: whwlxl 于 2006/1/7 13:41:00 發(fā)布:
謝謝各位幫忙! 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 于 2006/1/7 13:59:00 發(fā)布:
好了,是程序錯(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樓: | >>參與討論 |
| 作者: 上善若水 于 2006/1/7 14:07:00 發(fā)布:
說(shuō)明白啊。 那里怎么錯(cuò)了?好像沒(méi)問(wèn)題啊。 |
|
| 17樓: | >>參與討論 |
| 作者: whwlxl 于 2006/1/7 15:55:00 發(fā)布:
到底錯(cuò)哪了我不清楚,不過(guò)我把上面的代碼刪除就好了! /************************************* if( (U0IIR&0x0f)==0x06 ) { byte = U0LSR; } else { 錯(cuò)誤出在這里。。。。。! ***************************************/ 這段刪除了,就可以正常接收,發(fā)送數(shù)據(jù)了! |
|
| 18樓: | >>參與討論 |
| 作者: whwlxl 于 2006/1/7 16:07:00 發(fā)布:
貼串口(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 于 2006/1/7 19:20:00 發(fā)布:
是不是U0IIR讀過(guò)一次后就會(huì)復(fù)位中斷狀態(tài)? |
|
| 20樓: | >>參與討論 |
| 作者: 上善若水 于 2006/1/7 20:09:00 發(fā)布:
re:lucidmask 應(yīng)該是的吧。書(shū)上原話說(shuō):“在退出中斷服務(wù)程序之前,必須讀取UxIIR來(lái)清除中斷”,言外之意就是,讀了一次中斷就清除掉了。 |
|
| 21樓: | >>參與討論 |
| 作者: hotpower 于 2006/1/8 1:46:00 發(fā)布:
學(xué)習(xí)學(xué)習(xí)... |
|
| 22樓: | >>參與討論 |
| 作者: lucidmask 于 2006/1/8 12:40:00 發(fā)布:
我想這是不是上面程序錯(cuò)的原因呀? if( (U0IIR&0x0f)==0x06 ) //這里不是讀U0IIR了嗎? { byte = U0LSR; } else { |
|
| 23樓: | >>參與討論 |
| 作者: 鄉(xiāng)村獵人 于 2006/1/10 9:43:00 發(fā)布:
串口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)村獵人 于 2006/1/10 9:51:00 發(fā)布:
這里是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 于 2006/1/10 17:10:00 發(fā)布:
了解了,謝謝whwlxl |
|
| 免費(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) |