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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4008|回復: 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');
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
日本午夜一本久久久综合| 国产亚洲视频在线观看| 久久久亚洲人| 日本伊人久久| 国产精品久久一区二区三区不卡| 岛国中文字幕| 中文字幕超碰在线| 高清视频欧美一级| 色天天综合色天天久久| 99久久99久久精品免费观看 | 公交车强行挺进岳身体| 国产又大又粗又硬| 粉嫩av性色av蜜臀av网站| 911福利视频| 麻豆中文字幕在线观看| 成人久久久久久| 久久成人一区二区| 欧美精品一区二区久久久| 亚洲黄色av一区| 成人av电影在线观看| 日韩午夜电影| 精品久久美女| 美女国产精品久久久| 超碰免费在线播放| 黄网站app在线观看下载视频大全官网| 男女啪啪网站| 国产精品一级视频| 国产女同在线观看| 亚洲综合图片一区| 亚洲图片综合网| 一级黄色香蕉视频| 久操网在线观看| 欧美主播一区二区三区美女 久久精品人| 国产成人黄色av| 欧美精品在线免费播放| 日韩精品在线第一页| 欧美日韩高清影院| 天天综合网 天天综合色| 国产精品久久久久影院老司 | 最近2019年手机中文字幕| 欧美一区二区三区四区视频| 午夜精品一区二区三区免费视频 | 热久久99这里有精品| 久久亚洲电影天堂| 亚洲一区二区久久| 亚洲国产精品成人av| 精品视频全国免费看| 黄色一区二区在线| 一区二区三区蜜桃| 国产精品久99| 国产日产欧产精品推荐色| 国产不卡在线一区| 国产精品一卡二卡在线观看| 日韩电影在线免费看| 国产美女诱惑一区二区| 好看的日韩av电影| 欧美二区视频| 国产精品啊啊啊| 欧美粗暴jizz性欧美20| 欧美激情第二页| 羞羞网站免费观看| 性一爱一乱一交一视频| 日本桃色视频| 中文视频在线| 欧美日韩影视| 国产高清免费av在线| 国产天堂在线| 日本不卡三区| 美足av综合网| 久热在线观看视频| av在线日韩| 天天综合在线观看| 亚洲一区二区三区四区电影| 卡通动漫精品一区二区三区| 香蕉久久精品| 日本午夜一区| 亚洲天堂男人| 久久字幕精品一区| 麻豆精品一区二区| 国产成人免费在线| 久久久久久久久99精品| 国产精品色哟哟网站| 亚洲欧美日韩一区| 亚洲国产另类精品专区| 色综合久久综合| 欧美日韩高清一区| 亚洲国产精品资源| 精品国产一区av| 久久久久久中文| 青草青草久热精品视频在线网站 | 亚洲一区二区三区四区av| 97人妻精品一区二区三区免费| 大乳护士喂奶hd| 91麻豆精品国产91久久综合| 欧美丰满艳妇bbwbbw| 韩国av中文字幕| 99视频在线观看免费| 一本大道一区二区三区| 成人精品美女隐私视频| 2019一级黄色毛片免费看网| 欧美日韩影视| 少妇视频一区| 国产美女撒尿一区二区| 天天天综合网| 日韩和的一区二区| www日韩大片| 亚洲男同1069视频| 欧美日韩不卡视频| 在线观看免费高清视频97| 欧美性资源免费| 好吊色欧美一区二区三区| 国产日韩第一页| 日本在线一二三区| 久久久久久久毛片| 久久精品五月天| 亚洲国产精品区| 国产对白国语对白| 麻豆视频在线观看免费| 成人在线观看免费播放| av伊人久久| 日韩电影免费一区| 国产精品天美传媒沈樵| 欧洲av在线精品| 最好看的2019的中文字幕视频| 亚洲精品伦理在线| 午夜久久久久久久久久一区二区| 欧美xxxxxxxxx| 久久久天堂国产精品女人| 成人在线免费观看一区| 亚洲精品无码国产| 成人在线一级片| 中文字幕av影视| 露脸国产精品自产在线播| 国精产品999国精产品官网| av免费网站在线| 鲁大师精品99久久久| 国产日韩视频| 欧美国产国产综合| 日韩欧美一二三| 2019国产精品自在线拍国产不卡| 蜜桃久久影院| 中文字幕天天干| 久久久久亚洲av无码专区| 成人羞羞国产免费图片| 性网站在线免费观看| 成人精品三级| 亚洲激情影院| ...中文天堂在线一区| 精品久久免费看| 国产精品久久久久久久av大片| 男同互操gay射视频在线看| 久久久久麻豆v国产精华液好用吗| 日韩精品一区二区亚洲av观看| 天堂网www在线观看| av文字幕在线观看| 国产精品一区二区av交换| 国产精品资源网| 色爱区综合激月婷婷| 久久久久久久激情视频| 少妇免费毛片久久久久久久久| 国产xxx在线观看| 亚洲熟妇av乱码在线观看| jizzwww| 欧美videos另类精品| 色偷偷综合网| 亚洲国产精华液网站w | 国产树林野战在线播放| 粉嫩精品久久99综合一区| 污视频软件在线观看| 毛片免费在线观看| 久久午夜影院| 91啪亚洲精品| 亚洲欧美综合区自拍另类| 久久99导航| 国产精品无码专区| 日韩在线观看视频一区| 九九在线视频| 美女毛片一区二区三区四区| 91在线观看污| 亚洲美女www午夜| 水蜜桃亚洲精品| 国精产品久拍自产在线网站| 本道综合精品| 福利一区二区| 国产精品一二三四| 亚洲成人久久电影| 欧美精品一区在线发布| 一区二区三区伦理片| 九九精品视频在线观看九九| av岛国在线| 欧美一级播放| 777奇米成人网| 99在线影院| 亚洲av无码成人精品国产| 推川ゆうり中文亚洲二区| 日本福利在线| 红桃视频国产精品| 在线视频国产一区| 91九色蝌蚪嫩草| 人妻av无码一区二区三区| 午夜av中文字幕| 天天干视频在线观看| 综合久久2019| 日韩国产高清影视| 亚洲精品一区二区三区蜜桃下载| 欧美高清视频一区二区三区在线观看| 国产日产在线观看| h片在线观看视频| 精品自拍偷拍| 亚洲综合一区在线| 国产日韩欧美在线视频观看| 人妻av一区二区三区| 欧美精品一区二区三区免费| 欧美日韩美女| 国产成都精品91一区二区三| 在线观看精品国产视频| 黄色一级视频片| 精品国产一级片| 日本在线观看大片免费视频 | 日韩情涩欧美日韩视频| 蜜桃在线一区二区三区精品| 中文字幕电影av| 激情视频免费| 欧美激情另类| 精品视频1区2区| 亚洲日本japanese丝袜| 欧美日韩乱国产| 国产精品99999| 久久久久欧美精品| 亚洲全黄一级网站| wwwxxx黄色片| 中文字幕专区| 国产精品白丝久久av网站| 国产精品美女久久久久久久久| 日本成熟性欧美| 亚洲天堂网一区二区| 成人www视频网站免费观看| 国产一区国产二区国产三区| 欧美性少妇18aaaa视频| 久久久一本精品99久久精品| 日本熟妇毛耸耸xxxxxx| 久热av在线| 免费观看成人av| 久久精品视频播放| 91丨porny丨九色| 菠萝蜜视频网址| 日韩免费av| 欧美一区二区三区在线电影| 国产精品免费看久久久无码| 男人天堂手机在线观看| 国产精品久久久久久久久免费高清 | 色噜噜在线观看| 2020色愉拍亚洲偷自拍| 亚洲欧美一级二级三级| 亚洲激情在线视频| 美女网站免费观看视频| 国产xxx免费观看| 欧美性感美女一区二区| 欧美一区二区网站| 99久久久无码国产精品6| 国产免费麻豆视频| 欧美日韩在线网站| 欧美刺激午夜性久久久久久久| www.玖玖玖| 一个人看的www在线免费观看| 日韩免费高清| 亚洲男人的天堂网站| 欧美视频国产视频| av最新地址| 美女脱光内衣内裤视频久久网站 | 天天躁日日躁狠狠躁av| 91久久久久久久久久久久久久| 秋霞在线观看av| 日本中文字幕一区二区视频| 久久久影视精品| 青娱乐国产精品| 欧美人动性xxxxz0oz| 中文字幕一区在线| 亚洲狠狠婷婷综合久久久| 亚洲成年人电影在线观看| 美女一区二区在线观看| 日韩三级中文字幕| 性生活免费在线观看| 国产乱xxⅹxx国语对白| 蜜臀a∨国产成人精品| 国产91精品青草社区| 日本在线视频免费| 亚洲欧美se| 疯狂做受xxxx高潮欧美日本| 无码熟妇人妻av在线电影| 九色91蝌蚪在线| 亚洲人成免费| 91成人性视频| caoporn国产| 国产在线不卡一区二区三区| 在线成人免费视频| 一级片黄色免费| 夜色资源站国产www在线视频| 高清国产一区二区| 国产精品成人观看视频免费| 亚洲国产精品欧美久久| 久久不见久久见中文字幕免费 | h精品动漫在线观看| 国产成人综合自拍| 国产精品视频免费观看| 无码精品一区二区三区在线| 日韩电影免费网址| 超薄丝袜一区二区| 国产无套内射又大又猛又粗又爽| 一个人www视频在线免费观看| 欧美色视频日本版| 日本a√在线观看| 一级视频在线免费观看| 91美女在线观看| 亚洲福利av| 碰草在线视频| 极品少妇一区二区| 国产精品区免费视频| 亚洲成在人线免费视频| 亚洲天天影视网| 欧美一区二区三区免费观看 | www在线免费观看视频| 一区二区三区日本| 国产精品人人妻人人爽人人牛| 午夜在线免费视频| 91蜜桃视频在线| 亚洲综合激情五月| a级毛片免费高清视频| 国产69精品久久久久777| 国产一区喷水| 韩国福利一区| 免费看欧美女人艹b| 国产精品一区二区不卡视频| 久久久精品久久久久特色影视| 日韩精品电影一区亚洲| 成人欧美一区二区三区视频xxx| 亚洲国产精品久久久久婷婷软件| 久久综合导航| 精品综合在线| 俺也去.com| 国产日韩欧美高清| 欧美一级在线看| 成人性生交大片免费看午夜| 天天av天天翘天天综合网| 佐山爱在线视频| 国产在线精彩视频| 亚洲精品国产精品国自产在线| 国产精品成人免费观看| 国产精品高潮呻吟久久久久| 久久影院资源网| 久久久久久久久久久91| 中文字幕av影院| 成人羞羞网站入口| 91高清免费在线观看| 欧洲成人一区二区三区| 亚洲欧洲一区| 国产日韩久久| 国产免费黄网站| 中文字幕av网址| 91麻豆精东视频| 在线成人免费网站| 成人小视频免费看| 韩国成人在线| 亚洲全黄一级网站| 国产无码精品视频| 精品一区二区三区免费看| 亚洲第一视频网站| 日韩欧美激情视频| 国产aⅴ精品一区二区三区久久| 精品国产一区二区三区久久狼黑人 | 91精品国产自产观看在线| 日韩一二三在线视频播| 中国a一片一级一片| 好吊一区二区三区| 好看的日韩精品视频在线| 天天操天天是| 亚洲欧洲精品天堂一级| 国产xxx在线观看| 久久久加勒比| 性欧美在线看片a免费观看| 影音先锋男人资源站| 成人综合在线观看| 国产一级片黄色| h片在线观看| 国产亚洲一级高清| 亚洲欧美另类视频| 国产精品中文字幕日韩精品 | 综合久久一区| 亚洲精品久久久蜜桃| 色哟哟视频在线| 91欧美极品| 成人黄色影片在线| 成人满18在线观看网站免费| 亚洲国产乱码最新视频| 91网站免费视频| 欧美色爱综合| 日本黄网免费一区二区精品| 欧美拍拍视频| 亚洲精品国产综合久久| а√天堂资源在线|