大家可不可以介绍一两本有关串口编程的书给我
本人急用,在这里先行谢过
最好是用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编辑过]