免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2332 | 回复: 3
打印 上一主题 下一主题

菜鸟求助:I/O地址问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-04 17:19 |只看该作者 |倒序浏览
小第对计算机底层和硬件的东西不是很了解,在看到一段串口初始化的代码中,

        outportb(0x2fb,0x80);
        outportb(0x2f8,0x30);       
        outportb(0x2fb,0x03);

串口地址为0X2F8 ,OUTPORTB 是将值写到一个地址中去,对2FB操作好象是设置它的比特率,可是
1。我不明白为什么是2FB设置他的比特率,
2。还有0X03代表的是9600,不知道这个是怎么算的。
3。这个是串口,对于其他的IO呢,如并口,GPIO,怎么进行设置?
4。对于计算机IO地址的分配,不知道是怎么样的一个原理,有哪方面的书可以介绍看一下。

各位大虾帮帮忙,先谢谢了

论坛徽章:
0
2 [报告]
发表于 2008-03-28 16:58 |只看该作者
outportb(0x2fb,0x80);    //0x2fb告诉UART这条指令是命令,操作地址是0x80
        outportb(0x2f8,0x30);       //0x2f8告诉UART这条指令是数据,操作数是0x30,将0x30写入0x80;
        outportb(0x2fb,0x03);//同上

具体情况具体对待,就是这个样子~~~

论坛徽章:
0
3 [报告]
发表于 2008-07-17 17:16 |只看该作者
关于pc io地址,你可以看看这篇文章
http://www.lupaworld.com/151392/viewspace_109014.html

论坛徽章:
0
4 [报告]
发表于 2008-07-17 18:54 |只看该作者
原帖由 heefly 于 2008-3-4 17:19 发表
小第对计算机底层和硬件的东西不是很了解,在看到一段串口初始化的代码中,

        outportb(0x2fb,0x80);
        outportb(0x2f8,0x30);       
        outportb(0x2fb,0x03);

串口地址为0X2F8 ,OUTPORTB 是将值写到一个地址中 ...


对于串口通信:

波特率设置字的计算方法:
b=1843200/(16*baud_rate);

比如你要设置为9600波特率,那么b=1843200/(16*9600)=12(0xc)

这时设置应该是:
           mov dx,IOBASE  //这里IOBASE 是你的0x2f8或3f8等...
           add dx,03h
           mov al,80h
           out dx,al
           mov ax,b   //   注意是给了ax,而不是al
           mov dx,IOBASE
           out dx,al     //al of b
           add dx,01h
           mov al,ah
           out dx,al    // ah of b
除此之外还有frameformat字节设置:
                  mov dx,IOBASE
           add dx,03h
           mov al,00h
           out dx,al
           mov al,frameformat
           and al,07fh
           out dx,al

           mov dx,IOBASE
           add dx,04h
           mov al,03h
           out dx,al

中断和收发也有很多文献介绍,这里就不重复了

[ 本帖最后由 system888net 于 2008-7-17 18:55 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP