當前位置:首頁 > 單片機 > 單片機
[導讀]通用異步收發(fā)傳輸器(UniversalAsynchronousReceiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器。UART以全雙工方式傳輸數(shù)據(jù),最簡單的連線只有2根,TxD用于發(fā)送,RxD用于接收,Gnd地。UART使用標準的TTL電平

通用異步收發(fā)傳輸器(UniversalAsynchronousReceiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器。UART以全雙工方式傳輸數(shù)據(jù),最簡單的連線只有2根,TxD用于發(fā)送,RxD用于接收,Gnd地。UART使用標準的TTL電平(0~3.3V或0~5V),表示高低電平,為了增加抗干擾能力,增加傳輸長度,通常將TTL電平轉(zhuǎn)換為RS-232電平。3~12V表示0,-3~-12表示1。

平常數(shù)據(jù)引腳處于空閑1狀態(tài),發(fā)送數(shù)據(jù)時,TxD變低電平,表示一個起始信號。然后后面可以跟5、6、7、8位的數(shù)據(jù),LSB低位優(yōu)先。如果使用校驗,數(shù)據(jù)發(fā)完后再發(fā)送一個校驗位,最后發(fā)送1、2位停止位。

芯片手冊

mini2440電路圖


3.S3C2440寄存器

對于s3c2440來說,它有3個UART,配置過程如下。

對應的GPIO引腳設置成UART引腳。

ULCONLINE寄存器,配置校驗、數(shù)據(jù)位、停止位。

UCON控制寄存器,可以配置時鐘源,中斷或查詢方式,不使用DMA。

UFCONFOFO寄存器,不使用FIFO。

UMCONMODEM寄存器,不使用流控。

UTRSTAT狀態(tài)寄存器,只讀,讀取UART狀態(tài)。

UERSTAT錯誤寄存器,也是只讀。

UFSTATFIFO的狀態(tài)寄存器,也是只讀。

UMSTATMODEM狀態(tài)寄存器,只讀。

UTXH發(fā)送緩沖區(qū)。

URXH接收緩沖區(qū)。

UBRDIV波特率設置寄存器

uart.h


/*******************************************************************

*Copyright(C),2011-2012,XXX.

*FileName:uart.h

*Author:HuangYinqing

*Version:1.0

*Date::2012-04-22

*Description:串口0驅(qū)動.

*FunctionList:

*History:

******************************************************************/

#ifndef__UART_H__

#define__UART_H__

#definePCLK50000000//50M

#defineUART_CLKPCLK

#defineUART_BAUD_RATE115200

#defineUART_BRD((int)(UART_CLK/(UART_BAUD_RATE*16))-1)

#defineTXD0READY(1<<2)

#defineRXD0READY(1)

/*函數(shù)聲明*/

voidUart0Init(void);

unsignedcharUart0GetChar(void);

voidUart0SendString(char*pucStr);

voidUart0SendData(char*pucStr,intulCount);

#endif


uart.c


/*******************************************************************

*Copyright(C),2011-2012,XXX.

*FileName:uart.c

*Author:HuangYinqing

*Version:1.0

*Date::2012-04-22

*Description:串口0驅(qū)動.

*FunctionList:

*History:

******************************************************************/

#include"common.h"

#include"uart.h"

/********************************************************************

函數(shù)功能:發(fā)送一個字符。

入口參數(shù):

ucChar:待發(fā)送的字符

返回:無。

備注:無。

********************************************************************/

voidUart0PutChar(unsignedcharucChar)

{

while(!(rUTRSTAT0&TXD0READY));//發(fā)送一個字節(jié)

rUTXH0=ucChar;

}

/********************************************************************

函數(shù)功能:接收一個字符。

入口參數(shù):無。

返回:接收的字符。

備注:無。

********************************************************************/

unsignedcharUart0GetChar(void)

{

while(!(rUTRSTAT0&RXD0READY));//接收一個字節(jié)

returnrURXH0;

}

/********************************************************************

函數(shù)功能:發(fā)送字符串。

入口參數(shù):

pucStr:待發(fā)送的字符串指針。

返回:無。

備注:無。

********************************************************************/

voidUart0SendString(char*pucStr)

{

while((*pucStr)!='