当前位置: 代码迷 >> C语言 >> 求助
  详细解决方案

求助

热度:302   发布时间:2004-10-11 23:45:00.0
求助

大家可不可以介绍一两本有关串口编程的书给我

本人急用,在这里先行谢过

最好是用c语言描述

搜索更多相关的解决方案: 最好  编程  c语言  

----------------解决方案--------------------------------------------------------

不知道啊,帮你提到最前面去让人看,呵呵.


----------------解决方案--------------------------------------------------------

你说你有什么问题,我对这个了解一点,但不是很深,

希望可以帮帮你!

#define RBR_PORT 0x00 /*** receiver buffer register ***/ #define THR_PORT 0x00 /*** transmitter holding register ***/ #define DLL_PORT 0x00 /*** divisor latch (lsb) ***/ #define DLM_PORT 0x01 /*** divisor latch (msb) ***/ #define IER_PORT 0x01 /*** interrupt enable register ***/ #define IIR_PORT 0x02 /*** interrupt id register ***/ #define LCR_PORT 0x03 /*** line control register ***/ #define MCR_PORT 0x04 /*** modem control register ***/ #define LSR_PORT 0x05 /*** line status register ***/ #define MSR_PORT 0x06 /*** modem status register ***/

base=0x3f8;//串口号 dl=3;//分频系数 lcr=(_COM_CHR8|_COM_EVENPARITY|_COM_STOP1);

int init_serialport(int base, int dl, int lcr, int ier) { outp(base+LCR_PORT,0x80);//寄存器3,允许改变波特率 outp(base+DLL_PORT,dl&0x00ff);//寄存器8,波特率除数锁存低字节为dl,波特率为115200/dl outp(base+DLM_PORT,dl>>8);//寄存器8,高位锁存为0 outp(base+LCR_PORT,lcr);//寄存器3,改变奇偶校验,数据位,和停止位 outp(base+MCR_PORT,0x08);//开中断 outp(base+IER_PORT,ier);//寄存器1,每次从端口接受(发送)发生一次中断。 return 0; }

上面的代码是串口的初始化!

关于串口的读写,我一般都是用中断做的!

[此贴子已经被作者于2004-10-13 16:19:02编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案