1. 为什么要进行GPIO复用?
小藤Atlas 200I DK A2提供了标准的40PIN低速GPIO接口,包括UART、SPI、I2C等接口,在官方文档-40Pin接口介绍的40Pin接口顺序图可以查看GPIO号与引脚号的对应关系,40Pin连接器定义表则可以查看到各引脚的默认功能。但是除了默认功能,GPIO口还有其他更丰富的功能,若你的项目需要,可以对其进行灵活配置以满足多样的使用需求。

2. 如何进行GPIO复用配置?
答案是修改GPIO引脚的寄存器地址的值,可以使用devmem工具配置实现,这种方法是临时的,重启后则恢复默认需再次配置,优点是简单快捷。
devmem是Linux系统下的一个命令行工具,其作用是直接对系统物理内存或设备地址进行访问与读写。在开发者套件的官方镜像中可以直接使用,不过最近发布的RC2版本暂不支持,需要额外进行安装配置,可以参考另一篇帖子的devmem安装部分。
复用配置需要参考官方文档-40Pin接口复用关系中的复用寄存器信息表,表中列出了开发者套件的40Pin接口中可复用的26个功能管脚的信息,包括复用寄存器基地址及偏移地址、对应的管脚号、GPIO位号、复用寄存器取值等信息。配置复用功能时需要查询该表格,找到对应管脚的地址,查询或修改寄存器后即可进行查询或配置。
看两个栗子:

①查询
先找到寄存器基地址和偏移地址,两者相加得到该GPIO的寄存器地址,调用devmem工具进行查询:
比如查询32号引脚,即GPIO12的功能,0x00C4000000 + 0x0D0 = 0x00C40000D0
查询得到的值对应的复用信号则是该GPIO的功能。
②修改复用
先找到寄存器基地址和偏移地址,两者相加得到该GPIO的寄存器地址,再找到想要复用的功能对应的复用信号值,调用devmem工具进行赋值修改:
比如将8号引脚,即GPIO14的功能修改为GPIO,0x00C4000000 + 0x0B4 = 0x00C4000B4,GPIO功能对应的复用信号值为0x3,即3
命令中的参数32表示写入32位,为固定值,最后一个参数为需要写入的复用信号值。
至此,便完成了GPIO的复用配置,可以参考官方文档进行后续功能的使用啦!
注意!!这种方法只能临时修改复用寄存器的值,若开发板重启则恢复默认,若要再次复用,需重新配置!
若想要复用配置永久生效怎么办?可以参考官方文档-接口复用操作进行操作~
1. 为什么要进行GPIO复用?
小藤Atlas 200I DK A2提供了标准的40PIN低速GPIO接口,包括UART、SPI、I2C等接口,在官方文档-40Pin接口介绍的40Pin接口顺序图可以查看GPIO号与引脚号的对应关系,40Pin连接器定义表则可以查看到各引脚的默认功能。但是除了默认功能,GPIO口还有其他更丰富的功能,若你的项目需要,可以对其进行灵活配置以满足多样的使用需求。
2. 如何进行GPIO复用配置?
答案是修改GPIO引脚的寄存器地址的值,可以使用devmem工具配置实现,这种方法是临时的,重启后则恢复默认需再次配置,优点是简单快捷。
devmem是Linux系统下的一个命令行工具,其作用是直接对系统物理内存或设备地址进行访问与读写。在开发者套件的官方镜像中可以直接使用,不过最近发布的RC2版本暂不支持,需要额外进行安装配置,可以参考另一篇帖子的devmem安装部分。
复用配置需要参考官方文档-40Pin接口复用关系中的复用寄存器信息表,表中列出了开发者套件的40Pin接口中可复用的26个功能管脚的信息,包括复用寄存器基地址及偏移地址、对应的管脚号、GPIO位号、复用寄存器取值等信息。配置复用功能时需要查询该表格,找到对应管脚的地址,查询或修改寄存器后即可进行查询或配置。
看两个栗子:
①查询
先找到寄存器基地址和偏移地址,两者相加得到该GPIO的寄存器地址,调用devmem工具进行查询:
比如查询32号引脚,即GPIO12的功能,0x00C4000000 + 0x0D0 = 0x00C40000D0
查询得到的值对应的复用信号则是该GPIO的功能。
②修改复用
先找到寄存器基地址和偏移地址,两者相加得到该GPIO的寄存器地址,再找到想要复用的功能对应的复用信号值,调用devmem工具进行赋值修改:
比如将8号引脚,即GPIO14的功能修改为GPIO,0x00C4000000 + 0x0B4 = 0x00C4000B4,GPIO功能对应的复用信号值为0x3,即3
命令中的参数32表示写入32位,为固定值,最后一个参数为需要写入的复用信号值。
注意!!这种方法只能临时修改复用寄存器的值,若开发板重启则恢复默认,若要再次复用,需重新配置!
若想要复用配置永久生效怎么办?可以参考官方文档-接口复用操作进行操作~