232通信COM1初始化

骑着蜗牛追乌龟 2007-05-07 02:28:42
这段函数是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
}
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼上的老大,我已经加你了,有问题了请帮忙。
FirerFirerFirer 2007-05-07
  • 打赏
  • 举报
回复
你是在什麼系統上?如果是在Windows上就不要直接寫寄存器了,用Windows提供的API吧,不需要你去看那些枯燥的寄存器定義。
flowercity 2007-05-07
  • 打赏
  • 举报
回复
看一下控制寄存器的每一个位的含义吧

感觉你一点常识都没有
问的啥问题啊

看书了再来这里问

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧