wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4024|回復: 0
收起左側

S3C2440的UART通信

[復制鏈接]
ID:113276 發表于 2016-4-10 17:40 | 顯示全部樓層 |閱讀模式
1、UART原理簡介

在介紹2440的UART控制器之前,我們首先來了解一下UART的原理
UART:Universal Asynchronous Receiver/Transmitter(通用異步收發送器),用來傳輸串行數據,發送數據時,CPU將并行數據寫入UART,UART按照一定格式在TxD線上串行發出;接收數據時,UART檢測到RxD線上的信號,將串行收集放到緩沖區中,CPU即可讀取UART獲得的這些數據。
UART最精簡的連線形式只有3根線,TXD用于發送,RXD用于接收,GND用于提供參考電平。UART之間以幀作為數據傳輸單位,幀由具有完整意義的若干位組成,它包含開始位、數據位、校驗位和停止位。發送數據之前,互相通信的UART之間要約定好數據傳輸速率(波特率的倒數)、數據的傳輸格式(多少個數據位、是否使用校驗位、奇校驗還是偶校驗、多少個停止位)。
        
2、S3C2440 UART的特性
S3C2440的通用異步收發器(UART)配有3個獨立異步串行I/O(SIO)端口,每個都可以通過產生中斷或DMA請求來進行CPU和UART之間的數據傳輸。如圖1所示:每個UART包含一個波特率發生器、發送器、接收器和一個控制單元,
圖1 2440UART方框圖(帶FIFO)
波特率發生器可以由PCLK、FCLK/n或UEXTCLK(外部輸入時鐘)時鐘驅動。UART通過使用系統時鐘可以支持最高115.2Kbps的比特率。如果是使用外部器件提供UEXTCLK的UART,則UART可以運行在更高的速度。發送器和接收器各包含一個64字節的FIFO和數據移位器。要發送數據時,先將數據寫入到FIFO接著在發送前復制到發送移位器中,隨后將數據從發送數據引腳(TXDn)移出;接收數據時,從接收數據引腳(RXDn)移入收到的數據,接著從移位器復制到FIFO。

3、S3C2440 UART的使用
對于S3C2440,使用UART之前,首選需要對2440的UART模塊進行初始化,需要設置波特率、傳輸格式(多少個數據位、是否使用校驗位、奇校驗或偶校驗、多少個停止位、是否使用流量控制)、選擇所涉及的管腳為UART功能、選擇UART通道的工作模式為中斷模式或DMA模式。設置好之后,往相關寄存器寫入數據即可發送,讀取相關寄存器即可接收到數據,還可以通過查詢狀態寄存器或設置中斷來獲知數據是否發送完畢、是否接收到數據。
我用的開發板是天嵌的TQ2440,該開發板用SP3232EEN擴展了一個RS232串口,電路連接如圖2 所示:
圖2 RS232原理圖
波特率發生器
每個UART的波特率發生器為發送器和接收器提供串行時鐘,波特率發生器的時鐘源可以選擇S3C2440A的內部時鐘系統或者UEXTCLK。波特率時鐘是通過16和由UART波特率分頻寄存器(UBRDIVn)(n=0,1,2)指定的16位分頻系數來分頻源時鐘(PCLK,FCLK/n或者UEXTCLK)產生的,UBRDIVn由下列表達式確定:
UBRDIVn=(int)(UART時鐘/(波特率*16))-1
UART時鐘:PCLK,FCLK/n或者UEXTCLK,例如,如果波特率為115200bps并且UART時鐘為40MHz,則UBRDIVn為:
UBRDIVn=(int)(40000000/(115200*16))-1=(int)(21.7)-1(取最接近的整數)=22-1=21

       介紹發送和接收操作之前,先介紹幾個重要的寄存器
UBRDIVn寄存器:設置波特率,S3C2440 UART的時鐘源有兩種選擇:PCLK、UEXTCLK、FCLK/n,其中n的值通過UCON0-UCON2聯合設置
ULCONn寄存器:設置傳輸格式
UCONn寄存器:它用于選擇UART時鐘源、設置UART中斷方式
UFCONn寄存器、UFSTATn寄存器,UFCONn寄存器用于設置是否使用FIFO,設置各FIFO的觸發闕值,即發送FIFO中有多少個數據時產生中斷、接收FIFO中有多少個數據時產生中斷。并可以通過設置UFCONn寄存器來復位各個FIFO。讀取UFSTATn寄存器可以知道各個FIFO是否已經滿,其中有多少個數據。
UMCONn寄存器、UMSTATn寄存器,這兩類寄存器用于流量控制,具體看數據手冊
UTRSTATn寄存器,它用來表明數據是否已經發送完畢、是否已經接收到數據
UERSTATn寄存器,用來表示各種錯誤是否發生
UTXHn寄存器,CPU將數據寫入這個寄存器,UART即會將它保存到緩沖區中,并自動發送出去
URXHn寄存器,當UART接收到數據時,CPU讀取這個寄存器,即可獲得數據。
下面通過實際的代碼來理解2440的UART
首選是UART的初始化,TQ2440將UART0引了一個接口出來,就介紹UART0吧
2440的UART引腳是掛接在GPH上的,所以使用UART之前需要先對GPH的引腳功能進行配置。
void uart0_init(void)
{
    GPHCON  |= 0xaa;    // GPH0,GPH1,GPH2,GPH3分別nCTS0,nRTS0,TXD0,RXD0
    GPHUP   = 0x7ff;     //內部上拉被禁止
UFCON0  = 0x00;     // 不使用FIFO
    UMCON0  = 0x00;     // 不使用流控

    ULCON0  = 0x03;     // 8N1(8個數據位,無校驗,1個停止位)
    UCON0   = 0x245;   
// 查詢方式,UART時鐘源為PCLK,中斷請求方式為Tx-電平,Rx-脈沖
   rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 );   //設置波特率
}
接下來幾個是進行數據的發送和接收的函數
//======此函數的作用是向UART發送一個字符,不用FIFO,直接用UART發送
void Uart_SendByte(char data)
{
if(data=='\n')
{
while(!(rUTRSTAT0 & 0x2));
取出rUTRSTAT0(UART0發送/接收寄存器)寄存器中的第2位,含義為Transmit buffer是否為空,為1時表示空。在發送緩沖器為空時,再發送
// Delay(1);                 //because the slow response of hyper_terminal
       WrUTXH0('\r');  //將數據寫入到UART0發送緩沖器中
}
while(!(rUTRSTAT0 & 0x2));   //Wait until THR is empty.
//  Delay(1);
WrUTXH0(data);
}              
//========發送字符串的函數
void Uart_SendString(char *pt)
{
    while(*pt)
        Uart_SendByte(*pt++);
}

//C語言的可變參數,為了達到printf的功能
//例如:Uart_Printf(“my name is %s”a[10]) ;就相當于Uart_SendString(“my name is XX”);XX是a[10]的內容
void Uart_Printf(char *fmt,...)  
{
       va_list ap;
       char string[256];

       va_start(ap,fmt);
       vsprintf(string,fmt,ap);
       Uart_SendString(string);
       va_end(ap);
}

//==等待,直到UART的發送器為空,就是發送完畢
void Uart0_TxEmpty()
{
while(!(rUTRSTAT0 & 0x4));  //Wait until Tx shifter is empty.
}

//===從終端上獲取敲入的字符,返回值為char類型。RdURXH0有數據時,返回URXH的數據。當URXH沒有數據時,總是等待,直到有數據。

char Uart_Getch(void)
{
while(!(rUTRSTAT0 & 0x1)); //接收緩沖器接收到有效數據
return RdURXH0();   //從UART0接收緩沖器(URXH0)接收數據
}
//===Uart_GetKey 這個與Uart_Getch 不同的是,當URXH沒有數據時返回0。有數據時,返回數據,這個函數可以用來查看當前URXH中的值。
char Uart_GetKey(void)
{
if(rUTRSTAT0 & 0x1)    //Receive data ready
return RdURXH0();
else
return 0;
}
//==這個函數用于從終端得到一個字符串,并儲存到string中
void Uart_GetString(char *string)
{
    char *string2 = string;
    char c;
    while((c = Uart_Getch())!='\r')//’\r’是回車鍵
    {
        if(c=='\b')//’\b’是backspace按鍵
        {
            if( (int)string2 < (int)string )
            {
                Uart_Printf("\b \b");//因為backspace,所以刪除最后一個顯示的字符
                string--;
            }
        }
        else
        {
            *string++ = c;       //不是回車和退格鍵,則儲存到string中
            Uart_SendByte(c);   //每輸入一個字符,都將它輸出到終端中
        }
    }
    *string='\0';
    Uart_SendByte('\n');
}



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
99久久精品久久亚洲精品| 日皮视频在线免费观看| 欧美日韩在线成人| 91麻豆蜜桃| 在线观看日韩视频| 色综合激情五月| 成人av在线影院| 亚洲91久久| 精品欧美视频| 污片视频在线免费观看| 天天操天天干天天做| 精品免费国产| 2021久久精品国产99国产精品| 日韩精品一区二区三区中文精品| 亚洲丝袜精品丝袜在线| 国产麻豆视频精品| 亚洲精品三级| jiujiure精品视频播放| 欧美国产视频| 1024在线看片你懂得| 污网站在线看| www.麻豆传媒| 国产亚洲精品午夜高清影院| 国产精品区在线观看| 欧美日韩黄色网| 秘密基地免费观看完整版中文| 成人性生活视频免费看| 欧美综合激情| 国产亚洲情侣一区二区无| 欧美亚洲国产视频小说| 日韩在线观看免费网站| 日韩无一区二区| 一本久道中文字幕精品亚洲嫩| 欧美高清一级片在线观看| 韩国欧美一区二区| 99riav1国产精品视频| 蜜桃视频欧美| 中文字幕日韩在线| 成人午夜一级| 理论片午夜视频在线观看| 9i精品一二三区| 午夜成人影视| 在线免费国产| 桃乃木かなav在线播放| 偷窥自拍亚洲色图| 免费黄色小视频| 精品国产美女福利到在线不卡| 五月婷婷丁香花| 亚洲欧美高清视频| 国产精品午夜福利| 在线播放亚洲精品| 免费黄色av片| youjizz在线视频| 久久视频免费在线观看| 91n在线视频| 黄色片在线观看免费| 久久久国产精品无码| 成人三级做爰av| 香蕉网在线视频| 国产sm在线观看| 污污免费在线观看| 娇妻高潮浓精白浆xxⅹ| 人妻激情偷乱频一区二区三区| 国产精品探花在线播放| 在线观看国产中文字幕| 欧美婷婷精品激情| 99re6在线观看| 国产九九九视频| 亚洲区 欧美区| 久久午夜夜伦鲁鲁片| 第四色在线视频| 自拍偷拍视频亚洲| 亚洲欧美综合7777色婷婷| 国产人妻大战黑人20p| 国产黄色大片免费看| 精品人妻中文无码av在线| 精品女人久久久| 国产亚洲精品久久久久久打不开| 欧美日韩中文字幕在线观看 | 欧美粗暴性video| 精品久久九九| 丰满湿润大白屁股bbw按摩| 黄色三级小视频| 91大神影片| 中文在线观看视频| 国产视频网站在线| 视频在线观看入口黄最新永久免费国产 | 四季av中文字幕| 登山的目的在线| 国产精品成人aaaa在线| 男人的午夜天堂| 国产情侣自拍av| 国产精品国产一区二区三区四区| av 一区二区三区| 风流老熟女一区二区三区| 免费看日韩av| 另类free性欧美护士| 极品色影院av| 97国产在线| 可以在线观看的av| 欧美14一18处毛片| 激情亚洲影院在线观看| 亚洲综合网站| 99re6这里只有精品| 国产综合精品| 日韩黄色一级片| 国产成人精品免费视频网站| 国产欧美日韩精品一区| 日韩一区中文字幕| 色综合天天做天天爱| 日韩精品一区二区三区视频播放| 日韩av一区在线| 高清一区二区三区四区五区| 成人性生交大片免费看视频直播| 99视频免费观看| 亚洲视频在线二区| 亚洲国产精品三区| 国产a级黄色片| 免费一级特黄特色大片| 亚洲天堂视频网| 成人精品美女隐私视频| 色婷五月综激情亚洲综合| 看电影就来5566av视频在线播放| 狠狠躁少妇一区二区三区| 亚洲色图图片| 久久国产精品亚洲人一区二区三区 | 99久久精品一区二区| 国产精品二三区| 在线观看亚洲精品视频| 亚洲女成人图区| 国产97色在线| 日韩av高清| 丝袜老师办公室里做好紧好爽| 99re久久精品国产| 麻豆91精品91久久久| 天堂在线视频免费| 交videos老少配com| 男同在线观看| 国产经典一区| 欧美gay男男猛男无套| 青青草国产精品97视觉盛宴| 久久久久久久综合日本| 日本韩国欧美三级| 按摩亚洲人久久| 狠狠色综合网站久久久久久久| 国产在线播放观看| 国产黄色录像视频| 国产国语亲子伦亲子| 菠萝蜜视频网站入口| 国产黄大片在线观看画质优化| **国产精品| 精品成人国产| 久久久久国产免费免费| 日韩精品专区在线| 国产精品igao视频| 2022中文字幕| 日本少妇aaa| 中文字幕国产视频| 在线观看二区| 欧美综合在线视频观看| 99久久综合99久久综合网站| 日韩视频在线观看一区二区| 国产精品18久久久久久麻辣| 大西瓜av在线| 毛片aaaaa| 国产成人va亚洲电影| 黄网页在线观看| 色婷婷热久久| 国产精品卡一卡二卡三| 亚洲欧美日韩国产中文专区| 国产亚洲欧美一区二区三区| fc2成人免费视频| 国产高清视频免费观看| 色在线免费视频| 亚洲三级性片| 国产欧美一区二区三区鸳鸯浴 | 色噜噜夜夜夜综合网| 国语自产精品视频在线看抢先版图片| 亚洲综合av一区| 青青操在线视频观看| 久草在线视频精品| 曰本三级在线| 在线观看视频日韩| 亚洲www啪成人一区二区麻豆| 欧美成人网在线| www.av中文字幕| а中文在线天堂| 最新国产在线视频| 亚洲男人都懂第一日本| 国产亚洲精品精华液| 亚洲人成五月天| 最新欧美日韩亚洲| 国产奶水涨喷在线播放| 蜜桃传媒av| 理论片一区二区在线| 久久久精品中文字幕麻豆发布| 在线看国产精品| 六月婷婷激情综合| 免费在线不卡av| 美州a亚洲一视本频v色道| 日韩av免费大片| 一区二区不卡在线播放| 日本老师69xxx| 秋霞午夜鲁丝一区二区| 亚洲精品自产拍在线观看| 日本а中文在线天堂| 午夜免费福利在线观看| 精品一二三区| 午夜精品视频一区| 国产日韩av在线播放| 日本wwwxx| 护士精品一区二区三区| 九七影院97影院理论片久久 | 国产精品片aa在线观看| 亚洲黄色录像片| 国产精品久久久av久久久| 可以看的av网址| 国产福利免费观看| 日韩精品视频一区二区三区| 国产精品久久久久久久久图文区 | 亚洲天堂网一区二区| 一个人免费播放在线视频看片| 国产一区二区av在线| 国产蜜臀av在线一区二区三区| 国内免费精品永久在线视频| 日本黄色www| 国产精品白浆流出视频| 日韩中文字幕| 亚洲精品你懂的| 91在线视频导航| 午夜精品福利在线视频| 在线观看视频色潮| 精品99视频| 亚洲成色777777女色窝| 国产日韩欧美精品在线观看| 99热这里是精品| 免费毛片b在线观看| 97精品久久久久中文字幕| 欧美精品久久久久久久免费观看| 无码人妻久久一区二区三区蜜桃| fpee性欧美| 免费精品国产| 欧美精品亚洲二区| 免费日韩在线观看| 国产黄色片免费观看| 欧美理论影院| 国产精品伦理在线| 成人午夜一级二级三级| 欧美片一区二区| 国产乱理伦片a级在线观看| 美洲天堂一区二卡三卡四卡视频| 精品国产一区二区三区久久狼5月| 亚洲精品在线网址| eeuss影院在线观看第一页| 91日韩在线| 亚洲精品久久视频| www.99r| 人日人天天爽| 亚洲美女网站| 久久久国产视频| 成人午夜福利一区二区| 一区二区三区高清在线视频 | 日本免费网站在线观看| 久久精品一级| 在线免费观看成人短视频| 天天操天天干天天玩| 亚洲图区综合| 一区二区美女| 日韩精品一区二区三区视频在线观看| 日本黄色三级大片| 奇米影视狠888| 激情亚洲成人| 免费av一区二区| 99自拍偷拍视频| 免费黄网在线观看| 国产色产综合色产在线视频| 国产伦精品一区二区三区| 国产精品嫩草影院精东| 亚洲精品一二三**| 91精品国产色综合久久ai换脸| 欧美牲交a欧美牲交aⅴ免费下载| 性xxxxx| 国产精品日本欧美一区二区三区| 欧美激情精品久久久久久变态| 国产在线免费av| 亚洲综合伊人久久大杳蕉| 亚洲欧洲日韩在线| 一区二区视频国产| 精品一区二区三区在线成人| 亚洲久久久久| 欧美大尺度在线观看| 亚洲黄色网址大全| 色综合999| 精品国产乱码久久久久久天美| 91大学生片黄在线观看| 久久久久久久久久久久久91| 欧美精品九九| 国模视频一区二区三区| 日韩在线视频免费播放| 成人97精品毛片免费看| 欧美一区二区三区性视频| 伊人色在线视频| 欧美孕妇孕交xxⅹ孕妇交| 久久精品视频网| av电影一区二区三区| 天堂网站www天堂资源在线| 国产欧美日韩一区二区三区在线| 热久久99这里有精品| 国产99久久久久久免费看| 中文字幕亚洲在线观看| 日韩精品在线免费| 亚洲一级片在线播放| 一二三四视频在线中文| 欧美日韩欧美一区二区| 97超碰免费在线观看| 在线观看黄av| 日韩欧美亚洲范冰冰与中字| 最新天堂中文在线| 国产乱理伦片a级在线观看| 亚洲精选视频免费看| 免费在线观看毛片网站| 伊人色综合久久| 亚洲欧美日韩国产手机在线| 日韩久久一级片| 亚洲成人福利| 亚洲一线二线三线久久久| 欧美日韩亚洲一| 天堂av在线资源| 亚洲伊人伊色伊影伊综合网| 亚洲免费黄色网| 免费av毛片在线看| 色婷婷久久久综合中文字幕| 中文字幕永久免费| heyzo在线播放| 欧美一卡二卡三卡| 林心如三级全黄裸体| 色婷婷成人网| 在线观看久久av| 国产免费www| 久久精品久久久| 国产精品国产自产拍高清av水多| 好吊色一区二区| 鲁大师成人一区二区三区| 国产经品一区二区| 一本大道五月香蕉| caoporen国产精品视频| 日本a在线天堂| 三级国产在线观看| 欧美丝袜第一区| 成人午夜剧场视频网站| 粉嫩一区二区三区在线观看| 日韩视频在线观看免费| 一区二区国产欧美| 欧美日韩p片| 国产无套精品一区二区| 黄色免费av| 亚洲黄色av一区| 无码一区二区精品| 亚洲欧美在线人成swag| 老司机亚洲精品| 成人线上播放| 亚洲精美色品网站| 久久久久久久蜜桃| 小说区图片区色综合区| 国内精品国产三级国产在线专| 亚洲av无码乱码国产精品久久| 国产日韩1区| 日韩视频在线播放| 天天干夜夜干| 色婷婷综合在线| 久久久久久久久久97| 啪啪亚洲精品| aa日韩免费精品视频一| 天天操天天射天天插| 亚洲最大成人网4388xx| 国产精品1000部啪视频| 亚洲不卡在线| 国产精品高清在线| 你懂的在线视频观看| 亚洲精品视频在线观看网站| 日韩免费高清一区二区| jazzjazz国产精品久久| 国产精品国产福利国产秒拍 | 久久久久无码国产精品不卡| 日韩伦理一区| 精品久久一区二区三区蜜桃| 天天草夜夜草| 7777精品伊人久久久大香线蕉 | 亚洲福利精品在线| 伊人成人在线观看| 日韩成人精品在线观看| 蜜桃视频一区二区在线观看| a视频在线观看| 最近更新的2019中文字幕| 天天干天天草天天射| 99久久国产综合精品女不卡| www.桃色.com| av日韩精品| 成人一区二区在线| 一本大道香蕉8中文在线视频|