现在对海思Hi3516A的GPIO具体操作做一个举例,该例子是对GPIO3_3的管脚进行输出操作,具体步骤如下:
首先,需要配置其为GPIO3_3管脚功能,参照管脚复用表,对其进行设置,我的即是对0x1204006C进行写0操作:
muxctrl_reg27 |
管脚复用寄存器。 |
0x1204006C |
0 |
管脚复用关系选择 |
然后,该接口连接的为GPIO3_3,通过芯片手册,查到GPIO3的基地址为:0x12143000,设置GPIO3_3的方向为输出,然后对该引脚进行输出高低电平的操作即可。
在进行方向控制时,对应的寄存器的偏移地址为0x400,当对应位设置为1时为输出,对应位设置为0时为输入。
对其进行输出高低电平的控制,对于GPIO3_3对应的地址为0x12143020,对应的数据位为第3位,对其进行写1即可输出高电平,写0即可输出低电平。整体的控制命令如下:
himm 0x1204006C 0x0 //设置复用功能为GPIO3_3
himm 0x12143400 0xFF //设置GPIO3_3方向寄存器为输出
himm 0x12143020 0x08 //设置GPIO3_3管脚为高电平
此时实际测量的电压值为3.3V,为高电平,与预期的结果一致。
himm 0x12143020 0x00 //设置GPIO3_3管脚为低电平
此时实际测量的电压值为0.18V,为低电平,与预期的结果一致。