您的位置 首页 编程

LPC2103学习之GPIO

LPC2103关于引脚的寄存器有两个PINSEL0与PINSEL1,都是32位宽度。PINSEL0与PINSEL1寄存器的每两位控制一个引脚的功能,则一个脚最多有4种功…

LPC2103关于引脚的寄存器有两个PINSEL0与PINSEL1,都是32位宽度。

PINSEL0与PINSEL1寄存器的每两位操控一个引脚的功用,则一个脚最多有4种功用。其间PINSEL0操控着P0.0到P0.15的引脚。PINSEL1操控着P0.16到P0.31的引脚。

PINSEL寄存器的设置只需两个过程。一找到要设置的引脚。二是挑选引脚的功用。

如图所示:

下面举例说明

1.设置P0.0为GPIO功用

PINSEL0 = 0x00 /*设置P0.0到P0.15都为GPIO*/

2.设置P0.0为TxD0功用

PINSEL0 = (PINSEL0 & 0xFFFFFFFC) | 0x01; /*设置P0.0的功用为TxD0*/

当然假如为了不改动本来引脚的功用。你应该采纳“读取——修正——回写”的方法进行。即先读取寄存器值,然后进行一些逻辑的与、或等操作,最终把修正值再写回寄存器。

比方:

PINSEL0 = (PINSEL0 & 0xFFF0FFFF) | (0x05 << 16); /*设置P0.8与P0.9功用为TxD1/RxD1*/

关于LPC2103的GPIO

LPC2103只要一个32位的通用IO口。因为引脚的功用复用,运用前有必要进行相关引脚设置,再进行操作。比方P0.27到P0.31便是JTAG调试引脚。LPC2103的GPIO形式有低速与高速形式。

高速GPIO的操控寄存器坐落CPU的部分总线上,而低速GPIO的操控寄存器是挂在VPB总线上。P0口作为高速GPIO运用时,将不能在调试环境下调查在VPB总线上的寄存器。

下面是一些寄存器的描绘。直接上图好些。

剩下的今后需求时再弥补,现在只需求用到这些。参考资料来自于《EasyARM2103教材》

每天前进一点,今后可不便是一点咯。

补注:就在方才写流水灯程序时发现一个问题

#define LED1 1<<17

for(i=0;i<4;i++)
{
IO0CLR = (LED1<

// IO0CLR |= (LED1<Delay(100);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/262609.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部