首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

232通信COM1初始化解决方法

2012-02-29 
232通信COM1初始化这段函数是232串口通信中的一部分,功能是对COM1的初始化,其中有些地方不懂,希望大家给点

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吧,不需要你去看那些枯燥的寄存器定義。

热点排行