这段函数是232串口通信中的一部分,功能是对COM1的初始化,其中有些地方不懂,希望大家给点帮助,非常感谢。
outportb(0x3fb,0x80); 为什么把D7设置为1的是80(第二个参数)?
outportb(0x3fb,0x03); 为什把第二个参数设置为03,就可以设置为8个数据位,1个停止位、无奇偶校验?
其实就是对D1,D2,D3,D4,D5,D6,D7为什么要用80,03之类的来表示不太清楚。
其实很郁闷的,刚刚接触串口,什么都挺模糊的,希望大家给点帮助,您的经验或者说方法,对我都会有很大的帮助,期待,期待着您的帮助,非常感谢。
void InitCOM()// 对COM1串口初始化,设置串口参数
{
outportb(0x3fb,0x80); //将设置波特率 b是线路控制器 80把D7设置为1 ???????????????80
outportb(0x3f8,0x0C); //波特率为9600bps 当D7为1是,8为波特率锁存器低LSB,9为波特率锁存器高MSB
outportb(0x3f9,0x00); //Oc为LSB 9600,OO为MSB 9600
outportb(0x3fb,0x03); //8个数据位,1个停止位、无奇偶校验?????????????????????? 03
outportb(0x3fc,0x08|0x0b); // C modem控制寄存器(MCR) ????????????? 08,0C
outportb(0x3f9,0x01); //MSB ????????????????? 01
}
------解决方案--------------------
看一下控制寄存器的每一个位的含义吧
感觉你一点常识都没有
问的啥问题啊
看书了再来这里问
------解决方案--------------------
你是在什麼系統上?如果是在Windows上就不要直接寫寄存器了,用Windows提供的API吧,不需要你去看那些枯燥的寄存器定義。