当前位置:首页 > 单片机 > 单片机
[导读]1.引脚都有哪些功能该怎么看?看具体引脚有什么功能,看上面的引脚图即可,这个图可以在LPC1114用户手册的第9章“Pin Configuration”找到。2.默认的引脚功能是什么?大部分的引脚默认功能都是GPIO,个别除外,例如P

1.引脚都有哪些功能该怎么看?

看具体引脚有什么功能,看上面的引脚图即可,这个图可以在LPC1114用户手册的第9章“Pin Configuration”找到。

2.默认的引脚功能是什么?

大部分的引脚默认功能都是GPIO,个别除外,例如P0.0引脚,默认是RESET。具体某个引脚的默认功能是什么,可以打开LPC1114用户手册第7章“I/O Configuration”查看引脚的寄存器。

例如,我们要看P0.2引脚的默认功能,首先打开LPC1114用户手册,然后找到第7章,打开7.4节前面的“+”号,把所有的引脚寄存器都展开,最后找到P0.2引脚的寄存器,就可以了。

该寄存器的前3位,也就是bit0~bit2,用来控制引脚的功能。看上图右上角的地方,Reset value就是默认的功能,000即选择P0.2。

3.如何选择引脚的其它复用功能?

从上面那个图中,可以看出,我们只要给引脚寄存器中的前3位写入规定的值,就可以变换引脚的具体功能了。例如,我们要把引脚PIO0_2选择为CT16B0_CAP0功能,就需要给PIO0_2寄存器的前3位写入0x2。

IOCON->PIO0_2&=~0x07;//P0.2寄存器前3位清零IOCON->PIO0_2|=0x02;//给P0.2寄存器前3位写0x2

通过上面两条语句,来实现引脚功能的选择。这种写法已经成了固定的格式,以后不论修改哪个引脚的功能,都以这种形式写。

有人会说,我直接给P0.2寄存器的前3位写0x2可以吗?例如:

IOCON->PIO0_2 = 0X2;

你这样直接写,当然可以,但是需要注意的地方很多,一不小心单片机就乱了,为什么呢?因为lpc1114作为一个32位的单片机,它的引脚寄存器也是32位的,其中的每一位,都代表着不同的控制位,这些可以查看寄存器得到,例如P0.2引脚的寄存器,它的完整寄存器定义如下:

你看它的bit4:3和bit9:6,这几位中,有些位默认就是1,如果你要直接赋值,需要让这些位保持原来的状态才可以。如果直接写0x2,那么这些原来是1的位,就成0了。所以我们在给寄存器赋值的时候,一般用“或”“与”的逻辑,改变我们想改变的位,不影响其它位的状态。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中断方式串口接收数据新建一个工程,结构如下图所示:在main.c文件中,输入以下代码:#include “lpc11xx.h”#include “uart.h”uint8_t rec_buf;void UART_IRQH...

关键字: Cortex lpc1114 mo uart 串口中断 收发数据

Cortex-M0 处理器简介  1. Cortex-M0 处理器基于冯诺依曼架构(单总线接口),使用32位精简指令集(RISC),该指令集被称为Thumb指令集。与之前相比,新的指令集增加了几条ARMv6架构的指令,并...

关键字: cortex-m0 技术综述

  Cortex-M0处理器为32位处理器,所以具有最大4G的寻址空间。在体系结构上,存储器空间被划分位一系列的区域,每个区域都有推荐的用途,以提高不同设备间的可移植性。  M0处理器内置了各种不见,例如NVIC和一些调

关键字: cortex-m0 体系结构 存储器系统

LPC_IOCON->R_PIO1_0 &= ~0x07;LPC_IOCON->R_PIO1_0 |= 0x02;上面是设置P1.0为AD1的语句。P1.0低三位是引脚功能选择位,所以配置低三位就可以...

关键字: lpc1114 引脚功能 设置

LPC1114内部一共有4个定时器,2个32位定时器,2个16位定时器,使用方式都一样,只是要注意使用16位定时器时,寄存器的值不要超出65535。给它们分别取名称为CT16B0、CT16B1、CT32B0、CT32B1...

关键字: lpc1114 通用定时器

你还在为如何给LPC1114主控的电路板留程序下载接口而烦恼吗?下面瑞生(Ration)以自己曾经做过的项目为例给大家分享一下吧!1.LPC1114如何下载程序?这个当然是你必须要知道的问题。LPC1114一共2种下载方...

关键字: lpc1114 程序下载接口

最近涉及到STM32F0XX的IAP,找了很多相关资料,感觉不是特别清楚,所以综合一些资料分享一下。刚开始做的时候以为很简单,在程序中写了个跳转函数(跳转到System Memory,并运行MCU自己的Bootloade...

关键字: cortex-m0 iap stm32f0xx

#include\"ds18b20.h\"uint8_ttemp_sign;voiddelay_ds(uint16_tzz){uint8_txx;uint16_tyy;for(xx=0;xx

关键字: 18b20 lpc1114 测量温度

某同学:你好,看了基础篇SysClk、GPIO、UART的例程,在用到IOCON模块,UART模块在SYSAHBCLKCTRL寄存器中都需要相应时钟允许位置1,IOCON使能,在设置完后又禁能,UART使用时只使能,不用...

关键字: lpc1114 iocon 模块时钟

32位的单片机内部各种数据寄存器和控制寄存器都是32位的,同理,8位单片机内部的数据和控制寄存器都是8位的。例如:AT89C51单片机的“中断控制寄存器”IE定义如下图所示:bit7bit6bit5bit4bit3bit...

关键字: ARM Cortex lpc1114 m0 寄存器配置
关闭
关闭