目录
- 一、概述
- 二、配置复用控制寄存器,使能GPIO功能
- 三、配置`GPIO_DIR`寄存器,选择输出
- 四、配置`GPIO_DATA`寄存器,输出高电平
- 五、测试
![]()
一、概述
这篇文章根据海思SS528芯片提供的
《22AP30 H.265编解码处理器用户指南.pdf》文档(文档路径:SS528ReleaseDoc\hardware\chip),演示怎样操作GPIO寄存器来控制某个IO口输出高电平,本文控制的是GPIO20_6。
关于如何操作寄存器的步骤,在文档的
13.6.3有提供说明,结合本文目的分为三个步骤:
- 配置复用控制寄存器,使能GPIO功能;
- 配置
GPIO_DIR寄存器,选择输出;- 配置
GPIO_DATA寄存器,写入输出值 1 ,表示输出高电平。
![]()
二、配置复用控制寄存器,使能GPIO功能
复用是指该管脚有多种功能,可以根据控制寄存器里的值,来选择使用哪个功能。
关于GPIO管脚复用控制寄存器的说明在22AP30_PINOUT_CN.xlsx(文档路径:SS528ReleaseDoc\hardware\chip),打开22AP30_PINOUT_CN.xlsx,在下面选择表格管脚控制寄存器,按Ctrl+F搜索GPIO20_6,找到我们要配置的管脚寄存器,如下图:
根据表格信息知道,
- 寄存器地址
0x17c701d0- 寄存器的值可以配置为
0x1200,表示使能GPIO功能、IO6挡位8、关闭上拉、打开下拉
![]()
三、配置GPIO_DIR寄存器,选择输出
要配置寄存器,首先需要找到它的地址,
GPIO_DIR寄存器是采用 基地址+偏移地址 的方式来获得的。
GPIO20基地址在
《22AP30 H.265编解码处理器用户指南.pdf》的13.6.4可以查到,为:0x110a_4000。
GPIO_DIR的偏移地址为400,GPIO20_6设置为输出功能,即设置的值第6位为1,其他都为0,用二进制表示为0100 0000,转换为十六进制为0x40;
小结:
- GPIO20_6的
GPIO_DIR寄存器地址为:0x110a4400- GPIO20_6设置为输出,值为:
0x40。
![]()
四、配置GPIO_DATA寄存器,输出高电平
要配置寄存器,首先需要找到它的地址,
GPIO_DATA寄存器也是采用 基地址+偏移地址 的方式来获得的。
GPIO20基地址在
《22AP30 H.265编解码处理器用户指南.pdf》的13.6.4可以查到,为:0x110a_4000,它的偏移地址给了一个范围,我们选择0x3FC,表示寄存器的[7:0]操作全部有效。如下图:
我们要使GPIO20_6输出高电平,即设置的值第6位为1,其他都为0,用二进制表示为
0100 0000,转换为十六进制为0x40;
小结:
- GPIO20_6的
GPIO_DATA寄存器地址为:0x110a43fc- GPIO20_6设置为输出,值为:
0x40。
![]()
五、测试
根据海思SDK提供的寄存器工具,测试GPIO操作,测试工具在SDK包的 路径为:SS528V100R001C02SPC003\SS528V100_SDK_V2.0.0.3\osdrv\tools\board\reg-tools-1.0.0\bin
测试结果如图:

测试命令如下:
# 配置复用寄存器
bspmm 0x17c701d0 0x00001200
# 配置方向寄存器为输出
bspmm 0x110a4400 0x40
# 配置输出高电平
bspmm 0x110a43fc 0x40
# 配置输出高电平
bspmm 0x110a43fc 0x00

如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

























