1、使能GPIO对应的时钟
CCM(Clock Controller Module)有CCM_CCGR0~CCM_CCGR6这7个寄存器,这7个寄存器控制着I.MX6U的所有外设时钟开关。
2、设置寄存器IOMUXC_SW_MUX_CTL_PAD_XX_XX,设置IO的复用功能,使其复用为GPIO功能。
寄存器IOMUXC_SW_MUX_CTL_PAD_XX_XX只用到最低5位,其中bit0~bit3(MUX_MODE)用于设置复用功能。
3、设置寄存器IOMUXC_SW_PAD_CTL_PAD_XX_XX,设置IO的上下拉、速度等等
寄存器IOMUXC_SW_PAD_CTL_PAD_XX_XX用来配置IO口的,包括速度设置、驱动能力设置、压摆率设置等等。
4、第2步已经将IO复用为GPIO功能,所以需要配置GPIO,设置输入/输出、是否使用中断、默认输出电平等
当IO用作GPIO的时候需要设置寄存器,一共有8个:
(1)DR:数据寄存器
(2)GDIR:方向寄存器
(3)PSR:GPIO状态寄存器
(4)ICR1/ICR2:中断控制寄存器
(5)IMR:中断屏蔽寄存器
(6)ISR:中断状态寄存器
(7)EDGE_SEL:边沿选择寄存器