MX51 GPIO总结

来源:互联网 发布:安卓投影软件 编辑:程序博客网 时间:2024/06/06 10:51

GPIO 寄存器
每组GPIO有8个寄存器:

1. DR: Data Register

当GDIR设置为输出时, 写DR的内容用来驱动GPIO的pins,读DR的内容则返回存储在DR中的值

当GDIR设置为输入时,读DR返回给定IO pin的状态(PSR data),而不是DR data

 

2. GDIR: Data Direction Register

控制GPIO pins的方向, 1作为输出,0作为输入,寄存器中的每一位标识一个特定pad的方向。 仅当相应的pins被设置为GPIO,GDIR才起作用

 

3. PSR:Pad Sample Register

32-bit的只读寄存器。寄存器中的每一位都存储相应pad的值

 

4. ICR1, ICR2: 中断控制寄存器

两个32-bit寄存器, 寄存器中每两位控制一条中断线,ICR1控制中断0~15, ICR2控制中断16~31

00中断是low-level敏感

01中断是high-level敏感

10中断是rise-edge敏感

11中断时fall-edge敏感

 

5. IMR: Interrupt Mask Register

32bit register. 每一位是相应中断线的屏蔽位, 0中断被屏蔽,1中断被使能

 

6. ISR: Interrupt Status Register

32bit register, 每一位用于指定对应的中断线是否有中断发生,当一个中断发生,这个寄存器中的相应位被设置

 

7. EDGE_SEL:Edge Select Register

32bit 寄存器,覆盖ICR寄存器的配置,选择edge 作为中断触发的条件

 

GPIO功能
从pad读取数据

1.  配置IOMUX选择GPIO模式

2.  配置GPIO的GPDR为输入

3.  从PSR寄存器读取数据(也可以从DR读取,此时会返回PSR内的值)

 

写数据到pad

1. 配置IOMUX选择GPIO模式

2. 配置GPIO的GPDR为输出

3. 写值到Data Register(DR)

 

中断控制

除了通用的input/output功能外, GPIO内部的edge-detect逻辑反映一个被配置为input的pad是否发生了状态转换

转自:http://www.61ic.com/MCU/Freescale/MCU/201107/36255.html


原创粉丝点击