ARM11 S3C6410系列教程之二:串口
—— ARM11S3C6410系列教程之二串口
對于發(fā)送和接受的模式設(shè)置通過配置UCON0進(jìn)行設(shè)置,該寄存器意義如下:
本文引用地址:http://www.butianyuan.cn/article/203123.htm![](http://editerupload.eepw.com.cn/201312/d3915fb3e78a290c1a27fb2d2ef0d3dc.jpg)
為使串口的發(fā)送速度更快,需要采用S3C6410的FIFO功能,具體寄存器為UFCON0,具體意義如下:
![](http://editerupload.eepw.com.cn/201312/ca75cd137e802e7616feaf442a6e9426.jpg)
波特率設(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è)置程序如下:
![](http://editerupload.eepw.com.cn/201312/a5ccfad0ba56ab76a693587294cd6649.jpg)
通過判斷UFSTAT0中的低7位是否為零來判斷FIFO中是否有數(shù)據(jù),
![](http://editerupload.eepw.com.cn/201312/fe753b06b6120ea049e87e77e913b371.jpg)
若有數(shù)據(jù)可以通過讀取URXH0寄存器來讀取數(shù)據(jù):
![](http://editerupload.eepw.com.cn/201312/de740dc7600206b56dd4c9def22be91d.jpg)
這時需要注意,在接收和發(fā)送的時候,要檢查FIFO中是否為滿,若空間已滿,則需要等待才能進(jìn)行后續(xù)的發(fā)送或接收數(shù)據(jù)。
評論