23.Linux GPIO控制原理

GPIO控制原理

了解GPIO

数量

5组GPIO(GPIO1~GPIO5),每组最多32个,共124个

GPIO1_IO0~GPIO1_IO31

GPIO2_IO0~GPIO2_IO21

GPIO3_IO0~GPIO3_IO28

GPIO4_IO0~GPIO4_IO28

GPIO5_IO0~GPIO5_IO11

数据手册描述

28.2 External Signals

 时钟

clock controller module(CCM模块)用于配置芯片的各种外设时钟。跟GPIO相关的时钟主要有CCM_CCGR(0~3)寄存器

 18.6.24CCM Clock Gating Resgister 1 (CCM_CCGR1)

 两个bit的不同取值,设置GPIO时钟的不同属性

-00:所有模式下都关闭外设时钟

-01:只有在运行模式下打开外设时钟

-10:保留

-11:除了停止模式外,该外设时钟全程使能

引脚复用

相关寄存器:IOMUXC_SW_MUX_CTL_PAD_XXX

数据手册:

 

注意:数据手册上对应GPIO引脚的命令,不是严格按顺序命名的,而是根据Table 28 来命名的

32.6.11 SW_MUX_CTL_PAD_GPIO1_IO04 SW MUX Control

Resigter (IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO04)

 -0101:ALT5->普通GPIO模式

引脚属性

相关寄存器:IOMUXC_SW_PAD_CTL_PAD_XXX

数据手册:

 注意:数据手册

32.6.157 SW_PAD_CTL_GPIO1_IO4 SW PAD Contorl

Register (IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO04)

 

 

             - HYS(bit16):用来使能迟滞比较器 

​             - PUS(bit15-bit14):用来设置上下拉电阻大小

​             - PUE(bit13):当 IO 作为输入的时候,这个位用来设置 IO 使用上下拉还是状态保持器

​             - PKE(bit12):用来使能或者禁止上下拉/状态保持器功能

​             - ODE(bit11):IO 作为输出的时候,此位用来禁止或者使能开漏输出。

​             - SPEED(bit7-bit6):当 IO 用作输出的时候,此位用来设置 IO 速度。

​             - DSE(bit5-bit3):当 IO 用作输出的时候用来设置 IO 的驱动能力。

​             - SRE(bit0):设置压摆率

控制GPIO引脚

5组GPIO,每组GPIO有8个相关寄存器
-GPIOx_GDIR:设置引脚方向

-GPIOx_DR:设置输出引脚的电平

......

每个寄存器有32位,分别控制每位的gpio

数据手册描述:

-0:输入

-1:输出

2.2 ARM Platform Memory Map

 28.5.1GPIO data register (GPIOx_DR)

控制GPIO总结

-使能GPIO时钟

-设置引脚复用为GPIO

-设置引脚属性(上下拉、速率、驱动能力)

-控制GPIO引脚输出高低电平

硬件原理图:

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值