当前位置: 代码迷 >> 单片机 >> 232通信COM1初始化解决方法
  详细解决方案

232通信COM1初始化解决方法

热度:87   发布时间:2016-04-28 16:18:17.0
232通信COM1初始化
这段函数是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吧,不需要你去看那些枯燥的寄存器定義。
  相关解决方案