www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]S3C2440A的通用異步收發(fā)器(UART)配有3個獨立異步串行I/O(SIO)端口,每個都可以是基于中斷或基于DMA模式的操作。換句話說,UART可以通過產(chǎn)生中斷或DMA請求來進行CPU和UART之間的數(shù)據(jù)傳輸。UART通過使用系統(tǒng)時鐘可

S3C2440A的通用異步收發(fā)器(UART)配有3個獨立異步串行I/O(SIO)端口,每個都可以是基于中斷或基于DMA模式的操作。換句話說,UART可以通過產(chǎn)生中斷或DMA請求來進行CPU和UART之間的數(shù)據(jù)傳輸。

UART通過使用系統(tǒng)時鐘可以支持最高115.2Kbps的比特率。如果是外部器件提供UEXTCLK的UART,則UART可以運行在更高的速度。每個UART通道包含兩個的64字節(jié)的FIFO給發(fā)送和接收。

S3C2440A的UART包括了可編程波特率,紅外(IR)發(fā)送/接收,插入1個或2個停止位,5位、6位、7位或8位的數(shù)據(jù)寬度以及奇偶校驗。每個UART包含一個波特率發(fā)生器、發(fā)送器、接收器和一個控制單元,如圖11-1所示。波特率發(fā)生器可以由PCLK、FCLK/n或UEXTCLK(外部輸入時鐘)時鐘驅(qū)動。發(fā)送器和接收器包含了64字節(jié)FIFO和數(shù)據(jù)移位器。

將數(shù)據(jù)寫入到FIFO接著在發(fā)送前復(fù)制到發(fā)送移位器中。隨后將在發(fā)送數(shù)據(jù)引腳(TxDn)移出數(shù)據(jù)。與此同時從接收數(shù)據(jù)引腳(RxDn)移入收到的數(shù)據(jù),接著從移位器復(fù)制到FIFO

使用2440的uart和其他芯片的uart使用類似,也是分為以下幾步

設(shè)置數(shù)據(jù)長度,開始為,停止位,奇偶校驗相關(guān)


選擇設(shè)置uart時鐘,中斷類型,fifo狀態(tài)等


設(shè)置FIFO,(我禁用了fifo)


設(shè)置自動流控制(我禁用了自動流控制)


設(shè)置波特率


波特率的計算公式如下


然后很重要的一點是串口配置好了還需要配置串口IO,參見之前的IO配置

如果要使能中斷的話還要配置相應(yīng)的中斷,主要還是之前說過的寄存器,但是多了兩個,子中斷寄存器,


也就是說打開串口總中斷之后需要再打開相應(yīng)的子中斷才能工作,中斷處理清除總中斷標(biāo)志之后還要清除對應(yīng)的子中斷標(biāo)志才行

Uart0.c

#include"uart0.h"#include"stdio.h"http:////////////////////////////////////////////////////////////////////加入以下代碼,支持printf函數(shù),而不需要選擇useMicroLIB#if1#pragmaimport(__use_no_semihosting)//標(biāo)準庫需要的支持函數(shù)struct__FILE{inthandle;};FILE__stdout;//定義_sys_exit()以避免使用半主機模式_sys_exit(intx){x=x;}//重定義fputc函數(shù)intfputc(intch,FILE*f){while(!(rUTRSTAT0&0x2));//WaituntilTHRisempty.WrUTXH0((u8)ch);;returnch;}#endif/***********只打開接收中斷***********/void__irquartRxISP(void){charch;inti=0;rSUBSRCPND"=0x3;//清除rx,tx中斷請求rSRCPND|=0x1<<28;//清除串口源掛起rINTPND|=0x1<<28;//清除串口子掛起if(rUTRSTAT0&1)//接收緩沖區(qū)有數(shù)據(jù){ch=rURXH0;//接收字節(jié)數(shù)據(jù),接受處理Uart0SendByte(ch);}}voidUart0Init(u32baud){CalcBusClk();//計算總線頻率rULCON0=0x03;//8位數(shù)據(jù),1位停止位,無校驗,不使用紅外rUFCON0=0;//禁止fiforUMCON0=0;//禁止rts自動流控制rUCON0=0x5;//使用pclk時鐘,中斷模式rUBRDIV0=((int)(PCLK/16./baud+0.5)-1);rGPHCON&=~((3<<4)|(3<<6));rGPHCON|=(2<<4)|(2<<6);//把GPH3、GPH2設(shè)置為RXD[0]、TXD[0]功能rSRCPND|=0x1<<28;//清除串口中斷掛起rSUBSRCPND|=0x3;//清除收發(fā)中斷rINTPND|=0x1<<28;//清除串口中斷請求rINTSUBMSK&=~(0x1);//打開UART0接收中斷,使能中斷rINTSUBMSK|=(0x1<<1);//關(guān)閉UART0發(fā)送中斷,禁止中斷rINTMSK&=~(0x1<<28);//打開UART0中斷屏蔽,總中斷pISR_UART0=(unsigned)uartRxISP;//中斷子程序建立連接}voidUart0SendByte(u8dat){while(!(rUTRSTAT0&0x2));//WaituntilTHRisempty.WrUTXH0(dat);while(!(rUTRSTAT0&0x2));//WaituntilTHRisempty.}



Uart0.h


#ifndef__UART0_H_#define__UART0_H_#include"2440addr.h"#include"def.h"#include"clock.h"#include"stdio.h"voidUart0Init(u32baud);voidUart0SendByte(u8dat);#endif


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在現(xiàn)代嵌入式系統(tǒng)中,實時性保障是確保系統(tǒng)穩(wěn)定運行和高效處理任務(wù)的關(guān)鍵。特別是在涉及硬實時任務(wù)(如DMA傳輸)時,合理設(shè)計多級中斷系統(tǒng)和任務(wù)調(diào)度方案至關(guān)重要。本文將探討如何使用ARM Cortex-M的NVIC優(yōu)先級分組機...

關(guān)鍵字: 中斷系統(tǒng) 嵌入式系統(tǒng)

串口全稱是串行接口(Serial Interface),串口通訊指僅用一對傳輸線就能將數(shù)據(jù)以比特位進行傳輸?shù)囊环N通訊方式。盡管串口通訊必按字節(jié)傳輸?shù)牟⑿型ㄐ怕?,但是串口可以在僅用兩根線的情況下完成數(shù)據(jù)傳輸,大大降低了成本...

關(guān)鍵字: 串口 UART

隨著電腦技術(shù)的發(fā)展,一些老的設(shè)備在新電腦上不能被使用,主要原因是不管是臺式電腦,還是筆記本電腦,都很少有串口接口,也就是我們常說的COM口。好在這些設(shè)備都有USB接口,不妨通過接口轉(zhuǎn)換的方式,使我們的設(shè)備在新電腦上重新被...

關(guān)鍵字: 串口 USB

串口:串口是一個泛稱,UART、TTL、RS232、RS485都遵循類似的通信時序協(xié)議,因此都被通稱為串口。串口通訊應(yīng)用是工控人必須掌握的一個技能,幾乎在每一個項目中都會用到,今天我們就來詳細比較一下它們究竟有何區(qū)別。

關(guān)鍵字: 串口 協(xié)議

在嵌入式開發(fā)過程中,許多系統(tǒng)通常使用串口驅(qū)動來滿足通信要求,但在實際應(yīng)用中,使用SPI通信方式會更加高效和快捷。

關(guān)鍵字: 串口 驅(qū)動

串口WiFi模塊作為新一代嵌入式WiFi模塊,因其體積小、功耗低的特點,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居等領(lǐng)域。

關(guān)鍵字: 串口 WiFi模塊 嵌入式

在現(xiàn)代嵌入式系統(tǒng)設(shè)計中,F(xiàn)PGA(現(xiàn)場可編程門陣列)的靈活性和可重構(gòu)性使其成為許多應(yīng)用的理想選擇。而在FPGA的開發(fā)和部署過程中,如何實現(xiàn)遠程升級和故障恢復(fù)成為了一個重要議題。本文將詳細探討如何通過BPI FLASH實現(xiàn)...

關(guān)鍵字: FPGA 串口 MultiBoot 嵌入式系統(tǒng)

在現(xiàn)代電子設(shè)計中,F(xiàn)PGA(現(xiàn)場可編程門陣列)因其高度的靈活性和可重構(gòu)性,成為眾多領(lǐng)域的核心組件。特別是在需要動態(tài)更新或調(diào)整系統(tǒng)功能的場景中,F(xiàn)PGA的串口升級和MultiBoot功能顯得尤為重要。本文將深入探討FPGA...

關(guān)鍵字: FPGA 串口 MultiBoot

之前有個同事因為用串口查詢方式發(fā)送數(shù)據(jù),被我說了一頓,明明有DMA資源,竟然放著不用,對于魚鷹這種性能強迫癥來說,肯定無法忍受,所以當(dāng)時就和他說,有時間你把它改一下。誰知道過了好幾個月他才有時間弄這個,然后還是出了問題,...

關(guān)鍵字: DMA 串口

串行通訊是指僅用一根接收線和一根發(fā)送線就能將數(shù)據(jù)以位進行傳輸?shù)囊环N通訊方式。盡管串行通訊的比按字節(jié)傳輸?shù)牟⑿型ㄐ怕?,但是串口可以在僅僅使用兩根線的情況下就能實現(xiàn)數(shù)據(jù)的傳輸。

關(guān)鍵字: 串口 串行通信
關(guān)閉