ARM11 S3C6410系列教程之二:串口
—— ARM11S3C6410系列教程之二串口
對于發(fā)送和接受的模式設(shè)置通過配置UCON0進(jìn)行設(shè)置,該寄存器意義如下:
本文引用地址:http://2s4d.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
在上個文章中,我們設(shè)置了PCLK=66.5MHz ,現(xiàn)在我們用bps=115200,通過計算可以得出DIV_VAL=35.08,可以使UBRDIV0=35,那么num of 1’s in UDIVSLOT0=1.28=1,具體設(shè)置程序如下:
通過判斷UFSTAT0中的低7位是否為零來判斷FIFO中是否有數(shù)據(jù),
若有數(shù)據(jù)可以通過讀取URXH0寄存器來讀取數(shù)據(jù):
這時需要注意,在接收和發(fā)送的時候,要檢查FIFO中是否為滿,若空間已滿,則需要等待才能進(jìn)行后續(xù)的發(fā)送或接收數(shù)據(jù)。
評論