ARM7学习笔记——GPIO
来源:互联网 发布:spark排序算法 编辑:程序博客网 时间:2024/05/16 01:23
概述
LPC2000系列ARM的GPIO具有如下特性:
- 可以独立控制每个GPIO口的方向(输入/输出模式)
- 可以独立设置每个GPIO的输出状态(高/低电平)
- 所有GPIO口在复位后默认为输入状态
引脚连接模块
LPC2000系列微控制器的引脚一般是多个功能复用,但是同一引脚在同一时刻只能使用其中一个功能,这可以通过设置PINSEL0寄存器来选择。
- 使用示例——将P0.8,P0.9设置为TxD1,RxD1
通过查阅PINSEL0寄存器设置表,得到P0.9和P0.8的控制位为PINSEL0[19:16],当该域设置为[0101](0x05)时选择RxD1和TxD1PINSEL0 = 0x05<<16;//为了不影响别的管脚连接设置,通常选择下面的设置方法PINSEL0 = (PINSEL0 & 0xFFF0FFFF) | (0x05<<16);
GPIO相关寄存器描述
由上图可以发现每个作为GPIO功能的引脚受到4个寄存器控制,分别为控制方向的IOxDIR,控制输出电平状态的IOxSET和IOxCLR,反映引脚电平状态的IOxPIN。
通用名称
描述
访问类型
复位值
IOPIN
GPIO引脚值寄存器,不管方向模式如何,引脚的当前状态都可以从该寄存器中读出
只读
NA
IOSET
GPIO输出置位寄存器。该寄存器控制引脚输出高电平(写入0无效)
读/置位
0x0000 0000
IOCLR
GPIO输出置位寄存器。该寄存器控制引脚输出低电平(写入0无效)
只清零
0x0000 0000
IODIR
GPIO方向控制寄存器。该寄存器单独控制每个IO口的方向
读/写
0x0000 0000
GPIO应用示例
- 设置P0.0为输出模式
PINSEL0 &= 0xFFFFFFFC; //第1步,设置引脚连接模块,将P0.0设置为GPIO功能IO0DIR |= 0x00000001; //第2步,将P0.0设置为输出 或 IO0DIR |= 1<<0IO0SET = 0x00000001; //第3步,设置P0.0输出高电平 或 IO0SET |= 1<<0
- 读取P0.0引脚的电平状态
unit32 PinStat; //定义一个32位 局部变量用于存放I/O状态PINSEL0 &= 0xFFFFFFFC; //第1步,设置引脚连接模块,将P0.0设置为GPIO功能IO0DIR &= 0xFFFFFFFE; //第2步,把P0.0设置为输入状态PinStat = IO0PIN&0x01; //第3步,通过IO0PIN寄存器获取P0.0当前的电平状态
0 0
- ARM7学习笔记——GPIO
- ARM7学习笔记——LPC2000系列ARM硬件结构
- ARM7学习笔记——中断向量控制器VIC
- ARM7学习笔记
- 基于Proteus的ARM7 LPC21XX学习笔记三、GPIO输出实例
- stm32学习笔记——GPIO
- Tiny6410学习笔记1——GPIO
- stm32学习笔记——GPIO
- 树莓派学习笔记——GPIO功能学习
- 02-树莓派学习笔记——GPIO功能学习
- 树莓派学习笔记——GPIO功能学习
- Mini2440学习笔记(二)——GPIO
- 树莓派学习笔记——wiringPi GPIO使用详解
- 树莓派学习笔记——Shell脚本操作GPIO
- 树莓派学习笔记——RPi.GPIO 流水灯
- CC2530学习笔记のGPIO配置——点亮LED
- AM335x(TQ335x)学习笔记——GPIO按键驱动移植
- STM32学习笔记2——GPIO点灯
- 线程同步
- C++入门经典 笔记 (第二十三章)创建模板
- Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping)
- Android基础入门教程——5.2.5 Fragment实例精讲——新闻(购物)类App列表Fragment的简单实现
- 高效学习Android动画
- ARM7学习笔记——GPIO
- 使用GDB调试core文件时的一些基本知识
- 开发管理中常用的命令
- STL 配置器和容器,序列容器和关联容器总结
- MySQL cmake安装
- Spring4+Hibernate4整合经验:事务配置导致的java.lang.NoSuchMethodError异常
- 斯坦福Developing iOS 8 Apps学习笔记(一)
- 关于JavaScript中function的两种创建方式的解析
- linux进程调度原理