【Linux开发】海思操作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 0x100x120D7400的由来就是:基地址0x120D_7000 + 偏移量0x400

三、设置GPIO输出

设置GPIO输出就要找到GPIO数据寄存器GPIO_DATA,它的偏移地址不是固定的,按照上面的表中得知,它的偏移量范围是0x000~0x3FC,下面图中有详细确定偏移量的说明
在这里插入图片描述

从上面用户手册中得知,操作寄存器的比特位共10位,后两位不用,也就是对于GPIO7_4来说,它对应的值应该是0b00_0100_0000,也就是二进制数100 0000,意味着仅可以对第四位比特位进行读写操作,转换成十六进制就是0x400x40就是它的偏移量,加上基地址0x120D_7000就是0x120D7040,然后对GPIO7_4设置输出高电平,也就是0b10000,就是0x10,意味着对第四位进行高电平输出,最终命令就是himm 0x120D7040 0x10

综上所述,我们设置GPIO7_4高电平的操作就是

himm 0x112F0054 0
himm 0x120D7400 0x10
himm 0x120D7040 0x10

有关海思开发板操作GPIO的步骤就到这里了~

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s_little_monster_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值