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

波特率設置公式
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è)文章中,我們設置了PCLK=66.5MHz ,現在我們用bps=115200,通過(guò)計算可以得出DIV_VAL=35.08,可以使UBRDIV0=35,那么num of 1’s in UDIVSLOT0=1.28=1,具體設置程序如下:

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

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

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