先简单的介绍了I.MX6U GPIO
1、 I.MX6U的GPIO一共有5组:
GPIO1,32个IO
GPIO2,22个IO
GPIO3,29个IO
GPIO4,29个IO
GPIO5,12个IO
这样一共有124个GPIO
2、 IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO00配置GPIO1_IO00复用功能
3、 IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO00配
置 GPIO1_IO00 的,包括速度设置、驱动能力设置、压摆率设置等等。
4、 当 IO 用作 GPIO 的时候需要设置的寄存器,一共有八个:
DR、GDIR、PSR、ICR1、ICR2、EDGE_SEL、IMR 和 ISR。
4.1、 DR 寄存器是设置高低电平
4.2、 GDIR 寄存器是设置输入还是输出
4.3、 PSR 寄存器是读取高低电平
4.4、 ICR1低16个GPIO,ICR2高16个GPIO,
image.png
4.5、 IMR 寄存器是中断屏蔽寄存器
4.6、 ISR 寄存器,档某个GPIO发生中断时,对应位置会置1
4.7、 EDGE_SEL 寄存器用来设置边沿中断,我们设置 GPIO1.EDGE_SEL=1则双边沿触发。会影响ICR1 和 ICR2的值
5、 GPIO时钟: CCM_CCGR0~CCM_CCGR6 这 7 个寄存器控制着 I.MX6U 的所有外设时钟开关。
CCM_CCGR0 是个 32 为寄存器,其中每 2 位控制一个外设的时钟,比如 bit31:30 控制着
GPIO2 的外设时钟,两个位就有 4 中操作方式,如:
image.png image.png
再看看原子哥如何写汇编代码。
①打开所有外设时钟
②设置IO的为GPIO
③设置电气特性
④设置低电平,点亮灯
网友评论