ARM11 S3C6410系列教程之二:串口
—— ARM11S3C6410系列教程之二串口
對(duì)于發(fā)送和接受的模式設(shè)置通過(guò)配置UCON0進(jìn)行設(shè)置,該寄存器意義如下:
本文引用地址:http://www.ex-cimer.com/article/203123.htm
為使串口的發(fā)送速度更快,需要采用S3C6410的FIFO功能,具體寄存器為UFCON0,具體意義如下:

波特率設(shè)置公式
DIV_VAL = UBRDIVn + (num of 1’s in UDIVSLOTn)/16
DIV_VAL = (PCLK / (bps x 16 ) ) ?1
DIV_VAL = (EXT_UCLK0 / (bps x 16 ) ) ?1
or
DIV_VAL = (EXT_UCLK1 / (bps x 16 ) ) ?1
在上個(gè)文章中,我們?cè)O(shè)置了PCLK=66.5MHz ,現(xiàn)在我們用bps=115200,通過(guò)計(jì)算可以得出DIV_VAL=35.08,可以使UBRDIV0=35,那么num of 1’s in UDIVSLOT0=1.28=1,具體設(shè)置程序如下:

通過(guò)判斷UFSTAT0中的低7位是否為零來(lái)判斷FIFO中是否有數(shù)據(jù),

若有數(shù)據(jù)可以通過(guò)讀取URXH0寄存器來(lái)讀取數(shù)據(jù):

這時(shí)需要注意,在接收和發(fā)送的時(shí)候,要檢查FIFO中是否為滿(mǎn),若空間已滿(mǎn),則需要等待才能進(jìn)行后續(xù)的發(fā)送或接收數(shù)據(jù)。
評(píng)論