发新话题
打印

8250的初始化

8250的初始化


8250的初始化  
1 H1 Y1 U  w0 M' h. ~6 s! z! J    在用8250进行异步通信之前,要对其进行初始化。初始化通常包括以下四步:  + }5 o; n1 E- @0 y& }
    ①设置除数寄存器。  ) i' z! h( E- P" ~% I. s& e* E' l* S
    初始化的第一步是根据波特率对除数寄存器进行设置。由于除数寄存器和接收缓冲器/发送保持器共用端口地址,所以写入除数寄存器之前,要先将线路控制寄存器LCR的最高位DLAB置位,然后按波特率与除数的对应关系对两个除数寄存器分别进行设置。下面是  7 h( A7 Y% N: _  N& `9 ]/ O
设置第一个通信接口COMl的波特率为2 400的C程序段:  0 j( Z# G; \; z: s+ ~) [
    outpoab(0x3fn,0x80);    /*写LCR,使DLAB为1*/  7 }7 ~8 M8 w) ]+ Z) f
    outpoab(0x3f8,0x30);/*写除数寄存器的低字节(参看表12.3)*/  
5 H9 p; q9 H/ N' h" d" B    outportb(0x3f9,0);    /*写除数寄存器的高字节(参看表12.3)*/  
: C# G' c* y( F6 ~( F    ②设置线路控制寄存器LCR  ; k/ e+ P! ^) F
    这一步是确定通信的数据格式(帧的格式),即数据位的位数、停止位的位数、是否进行奇偶校验、校验的类型等,同时使LcR的最高位DLAB复位,为后续的初始化过程中寄存器的寻址做准备。下面的一个C语句是设置COMl的数据格式为7个数据位,2个停止位、采用奇校验:



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题