没有合适的资源?快使用搜索试试~ 我知道了~
首页A/D程序设计A/D程序设计
资源详情
资源评论
资源推荐
Keil for ARM 实例 2:A/D 程序设计
(使用 GCC 编译器)
向串口发送十六进制的 A/D 值,并控制 LED 闪烁。当 A/D 采集值大时,相邻两个 LED
闪烁间隔时间长;反之,相邻两个 LED 闪烁间隔时间短。
相关的基础知识--GPIO
GPIO 是通用可编程输入输出端口 Gereral Programable Input Output 的缩写。输出可用于
控制继电器、蜂鸣器、LED 等;输入可以获取传感器状态、高低电平、低速信号等。
GPIO 的特性
可以独立控制每个 GPIO 口的方向(输入/输出模式);
可以独立设置每个 GPIO 的输出状态(高/低电平);
所有 GPIO 口在复位后默认为输入状态。
GPIO 的应用
R3
10K
RST
C16
104
LED1
POWER
+3.3V
R3
10K
+3.3V
QB
1
QC
2
QD
3
QE
4
QF
5
QG
6
QH
7
GND
8
SQH
9
SCLR
10
SCK
11
RCK
12
OE
13
SI
14
QA
15
VCC
16
U11
74HC595
+3.3V
LPC2000
检测数字输
入,如键盘
或开关信号
驱动LED或
其它指示器
控制片外器件
GPIO 引脚描述
LPC2114/2124 微控制器具有两个端口,P0 和 P1,可以作为 GPIO 使用的引脚数为 46
个。
LPC2210/2212/2214 微控制器还包含另外两个端口——P2 和 P3,这个两个端口与外部
存储器总线复用,当它们全部作为 GPIO 使用时,GPIO 引脚数多达 112 个。
PINSELx
IOxDIR IOxCLR
IOxPIN
IOxSET
in
out
1
0
PINSELx
IOxDIR IOxCLR
IOxPIN
IOxSET
in
out
1
0
引脚
GPIO 与控制寄存器的关系
GPIO 相关寄存器描述
通用名称
描述
访问类型 复位值
IOPIN
GPIO 引脚值寄存器,不管方向模式如何,引
脚的当前状态都可以从该寄存器中读出
只读 NA
IOSET
GPIO 输出置位寄存器。该寄存器控制引脚输
出高电平
读/置位 0x0000 0000
IOCLR
GPIO 输出置位寄存器。该寄存器控制引脚输
出低电平
只清零 0x0000 0000
IODIR
GPIO 方向控制寄存器。该寄存器单独控制每
个 IO 口的方向
读/写 0x0000 0000
GPIO 引脚值寄存器——IOxPIN
IOxPIN 描述 复位值
31 : 0 GPIO 引脚值。IOxPIN[0]对应于 Px.0 … IOxPIN[31]对应于 Px.31 引脚 未定义
该寄存器反映了当前引脚的状态。IOxPIN 中的 x 对应于某一个端口,如 P1 口对应于
IO1PIN。所以芯片存在多少个端口,就有多少个 IOxPIN 分别与之对应。
写该寄存器会将值保存到输出寄存器,具体使用稍后介绍。
注意:无论引脚被设置为输入还是输出模式,都不影响引脚状态的读出。
GPIO 方向寄存器——IOxDIR
IOxDIR 描述 复位值
31 : 0 方向控制位。IOxDIR[0]对应于 Px.0 … IOxDIR[31]对应于 Px.31 引脚 未定义
当引脚设置为 GPIO 输出模式时,可使用该寄存器控制引脚的方向。向某位写入 1 使对
应引脚作为输出功能,写入 0 时作为输入功能。
作为输入功能时,引脚处于高阻态。
GPIO 输出置位寄存器——IOxSET
IOxSET 描述 复位值
31 : 0 输出置位。IOxSET[0]对应于 Px.0 … IOxPIN[31]对应于 Px.31 引脚 未定义
当引脚设置为 GPIO 输出模式时,可使用该寄存器从引脚输出高电平。向某位写入 1 使
对应引脚输出高电平。写入 0 无效。
从该寄存器读回的数据为 GPIO 输出寄存器的值。该值不反映外部环境对引脚的影响。
GPIO 输出清零寄存器——IOxCLR
IOxCLR 描述 复位值
31 : 0 输出清零。IOxCLR[0]对应于 Px.0 … IOxCLR[31]对应于 Px.31 引脚 未定义
当引脚设置为 GPIO 输出模式时,可使用该寄存器从引脚输出低电平。向某位写入 1 使
对应引脚输出低电平。写入 0 无效。
注意:读取该寄存器无效,不能读回输出寄存器的值。
使用 GPIO 注意要点
引脚设置为输出方式时,输出状态由 IOxSET 和 IOxCLR 中最后操作的寄存器决定;
大部分 GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为 4mA
(短时间极限值 40mA);
复位后默认所有 GPIO 为输入模式。
GPIO 应用示例——设置 P0.0 输出高电平
PINSEL0
IO0DIR IO0CLR
IO0PIN
IO0SET
in
out
1
0
P0.0
11
...
PINSEL0 &= 0xFFFFFFFC;
IO0DIR |= 0x00000001;
IO0SET = 0x00000001;
...
C代码
:
(1) 设置引脚连接模块
,
P0.0为GPIO(1) 设置引脚连接模块
,
P0.0为GPIO
(2) 设置P0.0口方向,设置为输出(2) 设置P0.0口方向,设置为输出
(3) 设置P0.0口状态,输出高电平(3) 设置P0.0口状态,输出高电平
剩余13页未读,继续阅读
zhangshunbingnba
- 粉丝: 3
- 资源: 47
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0