娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月14日(星期六)

2020年06月14日 | s3c2440串口詳解

發(fā)布者:朱顏素韻 來源: eefocus關(guān)鍵字:s3c2440  串口  UART 手機看文章 掃描二維碼
隨時隨地手機看文章

一、UART原理說明

通用異步收發(fā)器簡稱UART(Universal Asynchronous Receiver/Transmitter),它用來傳輸串行數(shù)據(jù):發(fā)送數(shù)據(jù)時,CPU將并行數(shù)據(jù)寫入UART,UART按照一定的格式在一根電線上串行發(fā)出;接收數(shù)據(jù)時,UART檢測另一根電線上的信號,將串行數(shù)據(jù)收集放在緩沖區(qū)中,CPU就可以讀取UART獲得這些數(shù)據(jù)。串口之間以全雙工方式傳輸數(shù)據(jù),最精簡的連線只有三根線:TxD用于發(fā)送數(shù)據(jù),RxD用于接收數(shù)據(jù),Gnd用于給雙方提供參考電平,連線如下圖:

UART使用標準的TTL/CMOS邏輯電平(0-5V、0-3.3V、0-2.5V、0-1.8V)來表示數(shù)據(jù),高電平表示1,低電平表示0。為了增強數(shù)據(jù)的抗干擾能力、提高傳輸長度,通常將TTL/CMOS邏輯電平轉(zhuǎn)換為RS232邏輯電平,3-12V表示0,-3--12V表示1。


TxD、RxD數(shù)據(jù)線以‘位’為最小單位傳輸數(shù)據(jù)。幀由具體完整意義的、不可分割的若干位組成,它包含開始位、數(shù)據(jù)位、校驗位、停止位。發(fā)送數(shù)據(jù)之前UART之間要約定好數(shù)據(jù)的傳輸速率(每位所占用的時間,其倒數(shù)稱為波特率)、數(shù)據(jù)的傳輸格式(有多少數(shù)據(jù)位、是否使用校驗位、是奇校驗還是偶校驗,有多少個停止位)。


數(shù)據(jù)傳輸如下圖:

(1)、平時數(shù)據(jù)線處于“空閑”狀態(tài)(1狀態(tài))

(2)、當(dāng)要發(fā)送數(shù)據(jù)時,UART改變TxD數(shù)據(jù)線的狀態(tài)(變?yōu)?狀態(tài))并維持1位的時間,這樣接收方檢測到開始位后,再等待1.5位的時間就開始一位一位地檢測數(shù)據(jù)線的狀態(tài)得到所傳輸?shù)臄?shù)據(jù)。

(3)、UART一幀中可以有5、6、7、8位數(shù)據(jù),發(fā)送方一位一位地改變數(shù)據(jù)線的狀態(tài)將它們發(fā)送出去,首先發(fā)送最低位。

(4)、如果使用校驗功能,UART在發(fā)送完數(shù)據(jù)后,還要發(fā)送1個校驗位。有兩種校驗法:奇校驗、偶校驗(數(shù)據(jù)位連同校驗位中,“1”的數(shù)目是奇數(shù)還是偶數(shù))。


(5)、最后,發(fā)送停止位,數(shù)據(jù)線恢復(fù)到“空閑”狀態(tài)。停止位的長度有3種:1位、1.5位、2位。


二、S3C2440 UART的特性

s3c2440中UART,有三個獨立的通道,每個通道都可以工作于中斷模式或DMA模式,即UART可以發(fā)出中斷或DMA請求以便在UART、CPU間傳輸數(shù)據(jù)。UART由波特率發(fā)生器、發(fā)送器、接收器和控制邏輯組成。


使用系統(tǒng)時鐘時,s3c2440可以達到115.2Kbit/s;s3c2440UART的FIFO深度為64字節(jié)。發(fā)送數(shù)據(jù)時,CPU先將數(shù)據(jù)寫入發(fā)送FIFO中,然后UART會自動將FIFO中的數(shù)據(jù)復(fù)制到“發(fā)送移位器”中,發(fā)送移位器將數(shù)據(jù)一位一位地發(fā)送到TxD數(shù)據(jù)線上(根據(jù)設(shè)定的格式,插入開始位、校驗位、停止位)。接收數(shù)據(jù)時,“接收移位器”將RxD數(shù)據(jù)線上的數(shù)據(jù)一位一位接收進來,然后復(fù)制到接收FIFO,CPU即可從中讀取數(shù)據(jù)。


UART結(jié)構(gòu)圖

三、s3c2440UART的使用


在使用UART之前需要設(shè)置波特率、傳輸格式(有多少個數(shù)據(jù)位、是否使用校驗位、是奇校驗還是偶校驗、有多少個停止位、是否使用流量控制);對于s3c2440還要設(shè)置相應(yīng)的管腳位UART功能、選擇UART通道工作模式為中斷模式還是DMA模式,設(shè)置好后,往某個寄存器寫入數(shù)據(jù)即可發(fā)送,讀取某個寄存器即可得到接收到的數(shù)據(jù)。可以查詢狀態(tài)寄存器或設(shè)置中斷來獲知數(shù)據(jù)是否已經(jīng)發(fā)送完畢、是否已經(jīng)接收完畢。


具體操作方法:


1、將所涉及的UART通道管腳設(shè)為UART功能

比如UART0,GPH2、GPH3分別用作TxD0、RxD0,要使用串口通道0時,先設(shè)置GPHCON寄存器將GPH2、GPH3引腳功能設(shè)置為TxD0、RxD0。

2、UBRDIVn寄存器:設(shè)置波特率

s3c2440UART的時鐘源有三種選擇:FLCK/n(n值通過UCON0-UCON2聯(lián)合設(shè)置)、UEXTCLK、PCLK。

根據(jù)給定的波特率、所選擇的的時鐘源的頻率。可以通過以下公式計算UBRDIVn寄存器(n為0-2)的值,

給出了計算公式、例子及誤差計算


3、ULCONn寄存器:設(shè)置傳輸格式

4、UCONn寄存器:串口控制寄存器


UCONn寄存器用來選擇UART時鐘源、設(shè)置UART中斷方式等。


n的值有UCON0、UCON1、UCON2這3個寄存器的[15:12]一起來確定。


5、UFCONn寄存器、UFSTATn寄存器

UFCONn寄存器用于設(shè)置是否使用FIFO,設(shè)置各FIFO的觸發(fā)閾值,即發(fā)送FIFO中有多少個數(shù)據(jù)時產(chǎn)生中斷、接收FIFO中有多少個數(shù)據(jù)時產(chǎn)生中斷。并可以通過設(shè)置這個寄存器來復(fù)位各個FIFO。

讀取USTATn寄存器可以知道各個FIFO是否已滿、其中有多少個數(shù)據(jù)。

不適用FIFO時可以認為FIFO深度為1,使用FIFO時s3c2440FIFO深度64。

6、UMOCONn寄存器、UMSTATn寄存器

這兩類寄存器用于流量控制。

7、UTRSTATn寄存器

這個寄存器用來表示數(shù)據(jù)是否已經(jīng)發(fā)送完畢、是否接收完畢。

8、UERSTATn寄存器

用來表示各種錯誤是否發(fā)生。

9、UTXHn寄存器

CPU將數(shù)據(jù)寫入這個寄存器,UART就會將它保存到緩沖區(qū)中,并自動發(fā)送出去

10、URXHn寄存器

當(dāng)UART接收到數(shù)據(jù),CPU讀取這個寄存器,就可以獲取數(shù)據(jù)。


四、UART使用程序


serial.h


void uart0_init(void);

void putc(unsigned char c);

unsigned char getc(void);

int isDigit(unsigned char c);

int isLetter(unsigned char c);


serial.c

#include "s3c24xx.h"

#include "serial.h"

 

#define TXD0READY   (1<<2)

#define RXD0READY   (1)

 

#define PCLK            50000000    // init.c中的clock_init函數(shù)設(shè)置PCLK為50MHz

#define UART_CLK        PCLK        //  UART0的時鐘源設(shè)為PCLK

#define UART_BAUD_RATE  115200      // 波特率

#define UART_BRD        ((UART_CLK  / (UART_BAUD_RATE * 16)) - 1)

 

/*

 * 初始化UART0

 * 115200,8N1,無流控

 */

void uart0_init(void)

{

    GPHCON  |= 0xa0;    // GPH2,GPH3用作TXD0,RXD0

    GPHUP   = 0x0c;     // GPH2,GPH3內(nèi)部上拉

 

    ULCON0  = 0x03;     // 8N1(8個數(shù)據(jù)位,無較驗,1個停止位)

    UCON0   = 0x05;     // 查詢方式,UART時鐘源為PCLK

    UFCON0  = 0x00;     // 不使用FIFO

    UMCON0  = 0x00;     // 不使用流控

    UBRDIV0 = UART_BRD; // 波特率為115200

}

 

/*

 * 發(fā)送一個字符

 */

void putc(unsigned char c)

{

    /* 等待,直到發(fā)送緩沖區(qū)中的數(shù)據(jù)已經(jīng)全部發(fā)送出去 */

    while (!(UTRSTAT0 & TXD0READY));

    

    /* 向UTXH0寄存器中寫入數(shù)據(jù),UART即自動將它發(fā)送出去 */

    UTXH0 = c;

}

 

/*

 * 接收字符

 */

unsigned char getc(void)

{

    /* 等待,直到接收緩沖區(qū)中的有數(shù)據(jù) */

    while (!(UTRSTAT0 & RXD0READY));

    

    /* 直接讀取URXH0寄存器,即可獲得接收到的數(shù)據(jù) */

    return URXH0;

}

 

/*

 * 判斷一個字符是否數(shù)字

 */

int isDigit(unsigned char c)

{

    if (c >= '0' && c <= '9')

        return 1;

    else

        return 0;       

}

 

/*

 * 判斷一個字符是否英文字母

 */

int isLetter(unsigned char c)

{

    if (c >= 'a' && c <= 'z')

        return 1;

    else if (c >= 'A' && c <= 'Z')

        return 1;       

    else

        return 0;

}

關(guān)鍵字:s3c2440  串口  UART 引用地址:s3c2440串口詳解

上一篇:s3c2440的uart知識點
下一篇:最后一頁

推薦閱讀

2018亞洲消費電子展(CES Asia 2018)將在上海新國展中心拉開帷幕。作為亞洲最大的消費電子展,每年的CES Asia都吸引了眾多廠商和普通觀眾。?據(jù)悉,今年的亞洲消費電子展吸引了來自80多個國家的500余企業(yè)參展,展會面積將達到50000平方米,總參會人數(shù)預(yù)計將達到40000人次左右。同時,此次展會將覆蓋消費電子最熱門和最前沿的產(chǎn)品和技術(shù),包括人工智能、5...
近日,前瞻產(chǎn)業(yè)研究院發(fā)布的《中國智能手機行業(yè)市場需求預(yù)測與投資戰(zhàn)略規(guī)劃分析報告》顯示,盡管第一季度幾乎各大廠商的手機出貨量都出現(xiàn)了不同程度的下降,但三星電子卻實現(xiàn)了逆勢上漲,這離不開Galaxy S10的出色表現(xiàn)。然而,手機市場的好消息只是三星電子旗下產(chǎn)品在中國市場上的一個縮影,事實上在過去的兩年中三星電子不斷調(diào)整,穩(wěn)扎穩(wěn)打力求為中國消...
國微集團首席科學(xué)家聘請儀式于國實大廈23樓報告廳隆重舉行,中國科學(xué)院院士郝躍教授正式受聘成為國微集團首席科學(xué)家。西安電子科技大學(xué)微電子學(xué)院院長張玉明、CAD所副主任初秀琴、西電國微研究院副院長游海龍,國微集團董事長黃學(xué)良、總裁帥紅宇以及集團管理層代表一同出席聘請儀式。黃學(xué)良董事長代表國微集團對郝躍院士的加盟表示熱烈歡迎,對郝躍院士一...
6 月 14 日消息 根據(jù)外媒 theregister 消息,新加坡南洋理工大學(xué)教授 Rachid Yazami(拉奇德 雅扎米)近日研發(fā)了一種新型快充技術(shù),可以實現(xiàn) 10 分鐘內(nèi)為鋰電池充滿電。這位教授最知名的成就便是在 1983 年左右發(fā)明了具有實用性的鋰電池石墨陽極,成為現(xiàn)代鋰電池的基礎(chǔ)。近日雅扎米教授聲稱,他的公司實現(xiàn)了世界上最快的鋰電池快充技術(shù),是特...

史海拾趣

問答坊 | AI 解惑

跟我學(xué)spce061a十六位單片機

學(xué)習(xí)十六位的好書…

查看全部問答∨

做一個幸福的職場人

身在職場你是否向往新退休主義   從明天起,做一個幸福的人,喂馬劈柴,周游世界……詩人海子的幸福生活畫卷讓無數(shù)職場人士羨慕不已,于是,無數(shù)“仁人志士”向往著退休后的美好生活。   所謂的“新退休主義”就是一些正值壯年、事業(yè)有成、 ...…

查看全部問答∨

evc中運行模擬器

我在evc下編寫了兩個程序(單獨的兩個),一個是tcpserver,一個是tcpclient。兩個都編譯成功了。我先運行tcpserver,模擬器也打開了tcpserver中設(shè)計的界面,我再運行tcpclient,原來的tcpserver模擬器就不見了,換成了tcpclient的模擬器的界面,也 ...…

查看全部問答∨

初學(xué)WDM遇到看不懂的了.

設(shè)置緩沖區(qū)對齊掩碼 執(zhí)行DMA傳輸?shù)脑O(shè)備直接使用內(nèi)存中的數(shù)據(jù)緩沖區(qū)工作。HAL要求DMA傳輸中使用的緩沖區(qū)必須按某個特定界限對齊,而且設(shè)備也可能有更嚴格的對齊需求。設(shè)備對象中的AlignmentRequirement域表達了這個約束,它是一個位掩碼,等于要求 ...…

查看全部問答∨

單片機實現(xiàn)0分0秒--60分的計時,不用太準確,請給個思路.

如題, 別用延時,用定時器實現(xiàn)長時間延時,謝謝.…

查看全部問答∨

關(guān)于EVC~環(huán)境問題

有這么一句話~~編譯環(huán)境設(shè)置為Pocket PC 2002--Win32 (WINCE X86) Debug,最后再將Download目錄設(shè)置成\\1Windowsl“開始”菜單。 請問 1。Pocket PC 2002該如何定制~或者到哪下載! 2。將Download目錄設(shè)置成\\1Windowsl“開始”菜單。是什么意 ...…

查看全部問答∨

TI的LM3S3748光盤的源碼分享~_~

TI的LM3S3748光盤的源碼分享~_~,有問題可以一起交流。。。…

查看全部問答∨

求購智能小車車體 各位前輩極力推薦哪買啊

本帖最后由 paulhyde 于 2014-9-15 03:32 編輯             現(xiàn)學(xué)校智能小車比賽,本想自己親手焊個車體架出來,但考慮工作量過大,希望能在網(wǎng)上買個車體,但買來的車體絕不要什么都焊好了 ...…

查看全部問答∨

關(guān)于linux中makefile的詳解(轉(zhuǎn)百度空間)

linux下makefile詳解一(轉(zhuǎn)csdn) 概述—— 什么是makefile?或許很多Winodws的程序員都不知道這個東西,因為那些Windows的IDE都為你做了這個工作,但我覺得要作一個好的和professional的程序員,makefile還是要懂。這就好像現(xiàn)在有這么多的HT ...…

查看全部問答∨

誰有DS1302用LCD12864顯示的程序啊,我寫進去對的高分采納,不要溫度什么的

誰有DS1302用LCD12864顯示的程序啊,我寫進去對的高分采納,不要溫度什么的…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 岑巩县| 临漳县| 崇文区| 海原县| 从江县| 长治市| 鹤壁市| 辽中县| 博爱县| 印江| 伊春市| 岑溪市| 弥渡县| 彰武县| 上饶市| 沙坪坝区| 会宁县| 新巴尔虎左旗| 高青县| 老河口市| 铜梁县| 南丰县| 灵丘县| 克东县| 泰宁县| 浮梁县| 顺昌县| 天祝| 芷江| 安康市| 比如县| 陇西县| 且末县| 阿克陶县| 四川省| 龙游县| 太原市| 肥西县| 隆子县| 永定县| 台湾省|