一、Linux-Cortex-A7-GPIO使用配置过程

GPIO使用配置流程

一、.打开IO口对应的时钟使能寄存器

①CCM_CCGR0~CCM_CCGR6(为32位寄存器组,其中的每两位控制一个外设时钟)

②不同的IO口对应不同的CCGR寄存器组一共7组(0-7)

二、设置IO口的复用模式(复用为什么功能进行使用)

①SW_MUX_CTL为32位寄存器,只使用其中低5位

②bit4控制是否使能复用功能

③bit0-bit3(八种状态)控制GPIO可复用为八种不同的外设

三、配置IO口的属性参数

①SW_PAD_CTL为32位寄存器,只使用其中低17位

②HYS(bit16):用来使能迟滞比较器,当 IO 作为输入功能的时候有效,用于设置输入接收器的施密特触发器是否使能。如果需要对输入波形进行整形的话可以使能此位。

③PUS(bit15:14):用来设置上下拉电阻的,一共有四种选项可以选择

00-100K下拉、01-47K上拉、10-100K上拉、11-22K上拉

④PUE(bit13): 当 IO 作为输入的时候,这个位用来设置 IO 使用上下拉还是状态保持器。当为 0 的时候使用状态保持器,当为 1 的时候使用上下拉。状态保持器在IO 作为输入的时候才有用。

⑤PKE(bit12): 此为用来使能或者禁止上下拉/状态保持器功能,为0 时禁止上下拉/状态保持器,为 1 时使能上下拉和状态保持器。

⑥ODE(bit11):当 IO 作为输出的时候,此位用来禁止(0)或者使能(1)开路输出。

⑦SPEED(bit7:6): 当 IO 用作输出的时候,此位用来设置 IO 速度,对应四种速度

00-低速50MHz、01-中速100MHz、10-中速100MHz、11-高速2000MHz

⑧DSE(bit5:3):当 IO 用作输出的时候用来设置 IO 的驱动能力,总共有 8 个可选选项,如表 8.1.4.3 所示:

⑨SRE(bit0): 设置压摆率,当此位为 0 的时候是低压摆率,当为 1的时候是高压摆率。

四、 IO 口作为 GPIO 功能,配置 八个寄存器。

①32 位寄存器DR ,每个 IO 对应一个位。当 GPIO 被配置为输出功能以后,向指定的位写入数据那么相应的 IO 就会输出相应的高(1)低(0)电平。

②32 位寄存器GDIR ,每个 IO 对应一个位,此寄存器用来设置某个 IO 的工作方向,是输入(0)还是输出(1)。

③ 32 位寄存器PSR ,每个 IO 对应一个位,读取相应的位即可获取对应的 GPIO 的状态,也就是 GPIO 的高低电平值。

④⑤ 32 位寄存器ICR1和 ICR2,为中断触发控制寄存器,ICR1用于配置低 16个 GPIO,ICR2 用于配置高 16 个 GPIO,其中每两位控制一个GPIO共有4种方式

00-低电平触发、01-高电平触发、10-上升沿触发、11-下降沿触发

⑥32 位寄存器IMR ,一个 GPIO 对应一个位, IMR 寄存器用来控制 GPIO 的中断禁止(0)和使能(1)

⑦32 位寄存器ISR ,一个 GPIO 对应一个位,只要某个 GPIO 的中断发生,那么ISR 中相应的位就会被置 1。

⑧32 位寄存器EDGE_SEL ,用来设置双边沿中断,这个寄存器会覆盖 ICR1 和 ICR2 的设置,一个 GPIO 对应一个位。

五.控制IO口可输出高电平或者低电平

DR寄存器写数据高电平(1)、低电平(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值