cortex m0 lpc1114_GPIO引脚寄存器综述

2023-10-10 03:48

本文主要是介绍cortex m0 lpc1114_GPIO引脚寄存器综述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载至:http://www.rationmcu.com/lpc1114/195.html

LPC1114一共有42个GPIO,分为4个端口,P0、P1、P2口都是12位的宽度,引脚从Px.0~Px.11,P3口是6位的宽度,引脚从P3.0~P3.5。

每个GPIO都可以通过软件设置为输入或输出引脚,读取引脚的电平,就需要把引脚设置为输入引脚,比如引脚用来做ADC输入引脚或按键检测引脚的时候。需要程序控制引脚电平的时候,就把引脚设置为输出引脚,比如引脚控制外部三极管导通与截止的时候。

每个GPIO都可以作为中断引脚来感知外部。中断还可以设置为电平中断或边沿触发中断。电平中断又可以设置为低电平中断或高电平中断,边沿触发又可以设置为下降沿中断或上升沿中断,也可以设置为双边沿触发中断。它的灵活性给我们设计带了很大的方便。

引脚作为GPIO功能时,默认是输入引脚。

 

由于GPIO的寄存器并不是很多,我们首先了解学习它的寄存器,然后通过实例讲解GPIO的各种输入输入应用。

 

2.1 GPIO寄存器定义

 

名称访问属性描述复位值
DATA可读可写数据寄存器不定
DIR可读可写方向寄存器0x00
IS可读可写中断感应寄存器0x00
IBE可读可写双边沿中断寄存器0x00
IEV可读可写中断事件寄存器0x00
IE可读可写中断屏蔽寄存器0x00
RIS只可读原始中断状态寄存器0x00
MIS只可读屏蔽中断状态寄存器0x00
IC只可写中断清除寄存器0x00

 

1. 数据寄存器DATA

名称

描述

复位值

访问属性

11:0

DATA

1为高电平,0为低电平

不定

可读可写

31:12

保留

数据寄存器用来读取单片机引脚的电平和控制单片机引脚的电平。当引脚设置为输入引脚时,读取DATA寄存器可以获得引脚的电平。当引脚设置为输出引脚时,给DATA寄存器写值可以控制引脚的电平。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。例如,读取P0口的DATA寄存器,bit0就对应P0.1引脚的电平,bit7就对应P0.7引脚的电平,以此类推。bit12到bit31这些位保留不用。LPC1114的四个端口,每个端口都有一个DATA寄存器。由于P3口只有6个引脚,所以P3口的DATA寄存器只有bit0到bit5是可以使用的,其它位无用。

当引脚设置为输入引脚的时候,给DATA寄存器写值不会影响到引脚的电平,没有意义。此时DATA寄存器的值只受引脚外部电平的影响。

 

2. 方向寄存器DIR

名称

描述

复位值

访问属性

11:0

IO

1为输出,0为输入

0x000

可读可写

31:12

保留

 

方向寄存器用来设置GPIO引脚的输入和输出功能。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。例如,设置P0.5为输入引脚,需设置GPIO0的DIR寄存器中的bit5为0,设置P0.5为输出引脚,需设置GPIO0的DIR寄存器中的bit5为1。由上表复位值可知,GPIO默认是输入引脚。bit12到bit31这些位保留不用。

 

3. 中断感应寄存器IS

名称

描述

复位值

访问属性

11:0

ISENSE

0为边沿触发

1为电平触发

0x000

可读可写

31:12

保留

 

中断感应寄存器用来设置产生中断的触发方式。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。给对应的bit写0,把对应的引脚设置为边沿触发。给对应的bit写1,把对应的引脚设置为电平触发。由复位值可知,引脚默认为边沿触发方式。边沿触发,分为上升沿触发和下降沿触发两种方式。电平触发,分为高电平触发和低电平触发两种方式。具体是哪种边沿或者哪种电平触发中断,需要由下面将要讲到的“中断事件触发器”决定。

 

4. 双边沿中断寄存器IBE

名称

描述

复位值

访问属性

11:0

IBE

0:中断方式由IEV决定

1:设置为双边沿中断

0x000

可读可写

31:12

保留

 

双边沿中断寄存器用来设置引脚中断方式是否为双边沿触发中断。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。给对应的bit写1,把对应的引脚设置为双边沿触发中断,给对应的bit写0,则触发方式由中断事件寄存器的设置决定。

 

5. 中断事件寄存器IEV

名称

描述

复位值

访问属性

11:0

IEV

0:下降沿或低电平触发

1:上升沿或高电平触发

0x000

可读可写

31:12

保留

 

中断感应寄存器用来设置高低电平或者是上升沿和下降沿触发中断的方式。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。这个寄存器与“中断感应寄存器”配合使用,决定引脚的电平触发方式。给对应的bit位写0,如果“中断感应寄存器”设置为边沿触发,这里即是下降沿触发中断,如果“中断感应寄存器”设置为电平触发,这里即是低电平触发中断。给对应的bit位写1,如果“中断感应寄存器”设置为边沿触发,这里即是上升沿触发中断,如果“中断感应寄存器”设置为电平触发,这里即是高电平触发中断。由复位值可知,引脚的中断触发方式为低电平触发中断或者是下降沿触发中断。

 

6.中断屏蔽寄存器IE

名称

描述

复位值

访问属性

11:0

MASK

0:屏蔽引脚的中断

1:不屏蔽引脚的中断

0x000

可读可写

31:12

保留

 

中断屏蔽寄存器用来屏蔽引脚上的中断。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。给对应的bit位写0,屏蔽对应引脚的中断。给对应的bit位写1,不屏蔽对应引脚的中断。

它其实是接下来要讲到的“屏蔽中断状态寄存器”的开关。当引脚设置好触发中断方式以后,在引脚上产生了触发中断的条件,如果这里的对应引脚的位设置为1,那么“屏蔽中断状态寄存器”中的对应状态位将置1,如果这里的对应引脚的位设置为0,那么“屏蔽中断状态寄存器”中的对应状态位将不会置1。

 

7. 原始中断状态寄存器RIS

名称

描述

复位值

访问属性

11:0

RAWST

0:表示没有产生中断

1:表示产生了中断

0x000

只读

31:12

保留

 

原始中断状态寄存器,是一个只读寄存器。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。读取对应的位,可以知道引脚上有没有产生符合条件的中断。

需要注意的是,这里的状态位,并不受“中断屏蔽寄存器”设置位的影响。例如,当某引脚设置为下降沿产生中断,如果某引脚上产生了下降沿,这个寄存器中的对应位就会置1。也就是说,前面提到的“中断屏蔽寄存器”的设置,只会影响到“屏蔽中断状态寄存器”的状态位。

 

8. 屏蔽中断状态寄存器MIS

名称

描述

复位值

访问属性

11:0

MASK

0:表示没有产生中断

1:表示产生了中断

0x000

只读

31:12

保留

 

屏蔽中断状态寄存器,是一个只读寄存器。寄存器当中的bit0到bit11,每一个bit与引脚顺序对应。读取对应的位,可以知道引脚上有没有产生符合条件的中断。

需要注意的是,这里的状态位,受“中断屏蔽寄存器”设置位的影响。例如,当某引脚设置为下降沿产生中断,如果某引脚上产生了下降沿,而且在“中断屏蔽寄存器”中的引脚对应位设置为1,这个寄存器中的对应位才会置1。也就是说,即使引脚上产生了符合条件的中断,如果“中断屏蔽寄存器”中的引脚对应位设置为0,这个状态寄存器中的对应位是不会置1的。

 

9.中断清除寄存器IC

名称

描述

复位值

访问属性

11:0

CLR

0:不起作用

1:清除中断状态位

0x000

只写

31:12

保留

 

中断清除寄存器是一个只写寄存器,用来清除对应引脚中断状态位。GPIO有两个中断状态寄存器,它们分别是“屏蔽中断状态寄存器”和“原始中断状态寄存器”。给“中断清除寄存器”对应的位写1,将会清除这两个中断状态寄存器中的对应位。


这篇关于cortex m0 lpc1114_GPIO引脚寄存器综述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177719

相关文章

A20 操作GPIO口

例如:先在 Sys_config.fex文件中 [1302_para] 1302_used      = 1 1302_clk             = port:PD05<1><default><default><0> 1302_dat             = port:PD06<1><default><default><0> 1302_rs

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A7中断向量表中仅为外部中断设置了一个中断向量可以看出。本文介绍ARM官方推荐使用的嵌套中断实现机

kaggle竞赛宝典 | Mamba模型综述!

本文来源公众号“kaggle竞赛宝典”,仅用于学术分享,侵权删,干货满满。 原文链接:Mamba模型综述! 型语言模型(LLMs),成为深度学习的基石。尽管取得了令人瞩目的成就,Transformers仍面临固有的局限性,尤其是在推理时,由于注意力计算的平方复杂度,导致推理过程耗时较长。 最近,一种名为Mamba的新型架构应运而生,其灵感源自经典的状态空间模型,成为构建基础模型的有力替代方案

单片机XTAL引脚引出的晶振分析

51单片机的18,19脚XTAL1,XTAL2用来提供外部振荡源给片内的时钟电路。 XTAL1和XTAL2引脚,该单片机可以使用外部时钟也可以使用内部时钟。 当使用内部时钟时,此二引线端用于外接石英晶体和微调电容; 当使用外部时钟时,用于接外部时钟信号,NMOS接XTAL2,CMOS接XTAL1。 原理: XTAL1和XTAL2分别是一个反相器的输入和输出。NMOS的反相器是

寄存器B

MCS-51单片机的中央处理器包含运算部件和控制部件两部分。         1. 运算部件         运算部件以算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、暂存器、标志寄存器PSW等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。         算术逻辑运算单元ALU是一个8位的运算器,它不仅可以完成8位二进制数据加、减、乘、除等基本的算

AI文献综述神器,有这一款就够了!

我是娜姐 @迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 当前的AI辅助文献综述的工具有很多,如果说功能最强大的,娜姐无疑要推SciSpace了。 SciSpace利用强大的AI算法,理解并建立研究论文之间的联系,可以大大提升文献综述的质量和效率。并且其功能还在不断更新和完善。        1 强大的语义搜索功能 传统的关键词搜索可能会遗漏相关文献,Sc

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的         会有一个中断源,也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件,也就是产生中断信号,就会执行中断服务函数         但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),

20180108文献综述书写感悟

在写文献综述理清各章节脉络的时候,发现了以下几个问题,共勉之。 1、资源对接问题:章节应该明确标注出处,来源,例如(from 百度/某篇文章链接),不写,则默认为原创。 以方便下一个接着写的同学清晰了解资料来源。 2、质量低:上任对发展史做了整理,但并没有输出成原创性文字,重新阅读加大理解成本,并且思路不新不全局不清晰,需要重新绘之。

Netty源码解析4-Handler综述

Netty中的Handler简介 Handler在Netty中,占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、 统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的 Netty中的所有handler都实现自ChannelHandler接口。按照输入

orcad画封装,如何隐藏引脚编号,线宽

1 电阻,有引脚号,如何隐藏,精度,功率如何添加   1 隐藏脚号效果图   2 精度添加,功率添加   2 更改精度效果图  2 更改线