这篇博文是接着前面的LPC,SIO继续说的,DIO,直接IO口,其作用就是通过和继电器的配合使用以实现控制。
DIO有两种访问方式,一种是ISA的访问方式,一种为IO的访问方式。
ISA的访问方式在前面SIO中已经说明了,接下来需要介绍的是IO的访问方式
先介绍几个相关的寄存器:
我之前所做的dio访问的主板,是利用gpio 8来配置DIO的,不同的主板会有所不同,应该根据电路图以分别。
从寄存器当中可以读出,GPIO8的DIO访问方式地址为基地址加上偏移量0x02。
他的基地址可以通过ru读出来,如图,其基地址为0x02A0。
当然也可以通过对sio进行访问该寄存器,一样可以读出来。
下面说一下关于DIO的三个重要寄存器:
写0x02A2相当于ISA访问方式的0x89写操作
读0x02A2相当于ISA访问方式的0x8A读操作
0x02A2是基地址0x2A0加上GPIO8的偏移量2。
DIO访问方式的部分code如下
在不同类型的主板上,用作DIO的GPIO可能不同,有些GPIO需要对全局寄存器行设置
0x27 bit 5
0x27寄存器为全局寄存器,对其进行配置可以实现device的不同功能,如,需要将gpio8
x作为gpio实现,其寄存器配置应为:
我的程序里面没有配,因为在bios里面已经配置过了,但个人强烈建议,在使用时加上,这样可以避免错误。
Thanks for your reading.