前期
本博客是根据Hi3521A/Hi3520DV300硬件接口用户指南.pdf(其它都一样)写的,具体信息请参考文档,文档下载:https://download.youkuaiyun.com/download/u012478275/11264057
一、GPIO的配置
GPIO的设置一般为三步:1 设置gpio端口复用、2 设置GPIO口的方向、3 读取或者写入GPIO值;第一步不是每个GPIO口都是要配置的,如果你设置的GPIO端口有复用功能,那么你需要对GPIO对应复用寄存器进行配置,例如:文档中GPIO5_5是有复用功能的,0:PWM_OUT0 ; 1:GPIO5_5,所以把复用寄存器设置为1就是表示为GPIO5_5;但有些GPIO端口是没有复用功能的,例如GPIO0_0,这个就不需要复用寄存器的设置;
1、设置gpio端口复用
所谓复用,就是指一个端口能同时干很多事,但是具体你要求他干啥,是需要设置的,这就是管脚复用寄存器的作用。
举个例子,如果我们想设置GPIO5_5,需要首先找到对应的管脚复用寄存器地址;通过手册查询,如果你想让这个管脚作为io口使用,需要给复用控制寄存器muxctrl_reg54这个寄存器里写0x01;管脚复用寄存器的基地址为0x120f_0000,muxctrl_reg54的偏移地址0xD8,所以这个寄存器的地址为0x120f00D8;
通过HIS自带的himm命令输入以下即可:
himm 0x120F00D8 0x01;
这样GPIO5_5对应管脚的功能就设置为了IO口,还有一个问题需要注意:在设置寄存器的时候要查看该寄存器其他bit位的作用,不要盲目的直接设置你需要设置的bit位,可能会其他bit给清除了,所以最好的做法是先