操作GPIO步骤
一、设置GPIO状态
首先我们应查阅开发板寄存器文档,比如说我们想要使用GPIO7_4来输出信号,那么我们先要找到GPIO7_4的引脚名称,在引脚文档中我们查阅到它的名称为RMII_RXD1
然后我们就可以拿着引脚名称去寻找控制它的寄存器,也就是在sheet3.管脚控制寄存器中查阅,我们在Fuction一栏中找到了它对应的寄存器名称RMII_RXD1
查看表格后发现,GPIO7_4对应的寄存器地址为0x112F_0054,然后查看最右边一栏中发现,当寄存器中的值为0时,它就是一个普通的GPIO口,所以我们使用命令himm 0x112F0054 0
将该GPIO设置为普通GPIO,其中,himm
就是海思平台写入寄存器的命令,该命令的意思就是将该GPIO口的寄存器值设置为0
当然这里不设置0也是可以的,因为默认值0x0400转换为二进制就是100 0000 0000,它的后四位本来也是0,将该寄存器的值设置为0时,可以设置其电平转换速率快
二、设置GPIO方向
在用户手册中查找到GPIO寄存器概览,查找GPIO7的基地址,查表得0x120D_7000
然后我们继续往下查找,查到GPIO方向控制寄存器的偏移量为0x400,说明中也明确提到GPIO具有相同的寄存器组,所以对于每个GPIO来说,偏移量为0x400的都是方向控制寄存器
然后我们可以找到GPIO方向控制寄存器的操作方法,如下图所示
因为我们要设置GPIO7_4,所以我们要操作第四位比特位为1,也就是0001 0000,转换为十六进制就是0x10,当然要是设置GPIO7_5,那么就是操作第五位比特位,也就是0010 0000
所以我们要设置GPIO7_4方向为输出的时候要执行的命令就是himm 0x120D7400 0x10
,0x120D7400的由来就是:基地址0x120D_7000 + 偏移量0x400
三、设置GPIO输出
设置GPIO输出就要找到GPIO数据寄存器GPIO_DATA,它的偏移地址不是固定的,按照上面的表中得知,它的偏移量范围是0x000~0x3FC,下面图中有详细确定偏移量的说明
从上面用户手册中得知,操作寄存器的比特位共10位,后两位不用,也就是对于GPIO7_4来说,它对应的值应该是0b00_0100_0000,也就是二进制数100 0000,意味着仅可以对第四位比特位进行读写操作,转换成十六进制就是0x40,0x40就是它的偏移量,加上基地址0x120D_7000就是0x120D7040,然后对GPIO7_4设置输出高电平,也就是0b10000,就是0x10,意味着对第四位进行高电平输出,最终命令就是himm 0x120D7040 0x10
综上所述,我们设置GPIO7_4高电平的操作就是
himm 0x112F0054 0
himm 0x120D7400 0x10
himm 0x120D7040 0x10
有关海思开发板操作GPIO的步骤就到这里了~