这里以hi3536为例
-
第一步是进行复用寄存器的设置,复用寄存器基地址为 0x120F_0000
GPIO0_0 管脚的复用控制寄存器的偏移地址为0x148
那麽GPIO0_0的复用地址为 0x120F_0000 + 0x148
当为设值为00 时复用为GPIO0_0
10 时复用为VOU_SLV_DATA14 -
方向和数据寄存器对应的基地址(GPIO0): 0x1215_0000
2.1 方向寄存器的偏移地址为 0x400 (页码13-126)
GPIO 方向控制寄存器。bit[7:0]分别对应
GPIO_DATA[7:0],各比特可独立控制
0:输入
1:输出
注:这里要“或” 读改写的方式2.2 数据寄存器的偏移地址为 0x000~0x3FC (页码13-127)
当 GPIO_DIR 相应的比特配置为输入时,有效读取的结果将返回管脚的值;当配置为
输出的时候,有效读取的结果将返回写入的值。
GPIO_DATA 寄存器利用 PADDR[9:2]实现了读写寄存器比特的屏蔽操作。该寄存器对
应 256 个地址空间。PADDR[9:2]分别对应 GPIO_DATA[7:0],当相应的 bit 为高时,则
可以对相应的位进行读写操作;反之,若对应 bit 为低则不能进行操作。例如:
若地址为 0x3FC(0b11_1111_1100),则对 GPIO_DATA[7:0]这 8bit 操作全部有效。
若地址为 0x200(0b10_0000_0000),则仅对 GPIO_DATA[7]的操作有效。
切记这里指的时地址, 然后对单个io拉高或拉低----就使用0xff和0x00注:设值的时候好左移两位