阅读:1847回复:17
关于串口的问题----高分
请问各位,对于串口中断,和中断控制有关的寄存器是哪几个?这些寄存器的各位是怎样规定的?以及串口的端口地址是多少?谢谢!一定给分!
|
|
最新喜欢:ytoneb...
|
沙发#
发布于:2002-11-18 14:54
是UART吗?
|
|
板凳#
发布于:2002-11-18 15:00
是UART吗? UART是什么? :D |
|
|
地板#
发布于:2002-11-18 15:00
随便找一本关于PC接口编程的书,都有详细解释。
|
|
|
地下室#
发布于:2002-11-18 15:21
UART 是一种串口控制器,比如 intel 8251
微机的地址是1f0h,1f2h,前者是数据口 后者是控制口.控制口规定串行数据格式 这是微机原理教材上有的啊 |
|
5楼#
发布于:2002-11-18 15:29
UART:通用异步接收/发送 英语缩写。
PORT ADDR: 2f8,3f8 |
|
|
6楼#
发布于:2002-11-19 01:55
你那个地址是从哪本书上看来的?
|
|
7楼#
发布于:2002-11-19 01:59
UART:Universal Asynchronous Receiver-Transmitter
翻译的时候翻译成控制器比较好. |
|
8楼#
发布于:2002-11-19 10:16
PC串口1:3f8-3ff,串口2:2f8--2ffh
详细的寄存器说明见这(你只看其中的UART部分就行了) |
|
|
9楼#
发布于:2002-11-19 12:13
看16550的datasheet
|
|
10楼#
发布于:2002-11-20 17:20
pc机的每种型号的串口都是这个地址么?
|
|
|
11楼#
发布于:2002-11-21 08:52
呵呵~~分不多,请各位笑纳! :D
|
|
|
12楼#
发布于:2002-11-21 09:01
客气客气。
|
|
13楼#
发布于:2002-11-21 10:15
一、串口寄存器简单说明
计算机的串口芯片通常都是UART16550,它提供了8个字节长的I/O寄存器地址用以对其进行配置以及数据传输。各寄存器的说明如下。 地址 读方式 写方式 0 接收保持寄存器 发送保持寄存器 1 中断允许寄存器 2 中断状态寄存器 先进先出控制寄存器 3 线路控制寄存器 4 MODEM控制寄存器 5 线路状态寄存器 6 MODEM状态寄存器 7 读便笺寄存器(SR) 写便笺寄存器 由上表可以看出,串口寄存器有很多都是复用的--即在读写的时候分别起到不同的作用。同时,当“线路控制寄存器”的最高为为\'1\'时,寄存器0,1还分别作为串口波特率因子低、高字节设置寄存器。 二、直接I/O端口访问方式 程序可以直接读写I/O端口来设置串口的工作方式。在正确设置了串口的波特率以及字长、停止位和效验方式等以后,串口就可以正常工作了。然后程序检查线路状态寄存器的最低位(位0),如果为‘1’就说明有数据到达,通过接收保持寄存器读入数据。如果状态寄存器的位5为\'1\'则表示发送保持寄存器已经就绪,可以进行数据发送。同时如果产生奇偶效验错、帧格式错或接收超时等错误也可以通过线路状态寄存器检测出来。下面一段程序可以对串口进行简单的设置以及读写。 //设置串口的工作方式 void SetCommPort(unsigned int CommPort) { // 设置串口波特率位9600bps outportb(CommPort+3,0x80); outportb(CommPort ,0x0C); outportb(CommPort+1,0x00); // 设置8位字长,0位停止位,无奇偶效验位 outportb(CommPort+3,0x03); outportb(CommPort+1,0x00); // 不使用中断控制 outportb(CommPort+4,0x00); outportb(CommPort+1,0x00); } //对串口进行读写访问 void ReadWriteComm(unsigned int CommPort, unsigned char &data) { // 等待发送寄存器空 while(inportb(CommPort+5) & 0x20 == 0); outportb(CommPor, data); // 等待数据的到来 while(inportb(CommPort+5) & 0x01 == 0); data = inportb(CommPort); } 这种方式适用于对串口进行简单的访问控制。同时由于Windows2000系统不支持直接I/O端口访问操作,因此也不能使用这种方式。 |
|
|
14楼#
发布于:2002-11-21 20:22
牛斑,直接用控件不是容易的多?
|
|
15楼#
发布于:2002-11-22 18:01
版主所
|
|
|
16楼#
发布于:2002-11-24 15:05
===============
牛斑,直接用控件不是容易的多? =============== 是呀!! |
|
17楼#
发布于:2004-07-18 10:30
请问各位大侠:NM9845芯片的端口地址是多少?
|
|