电子工程师技术服务社区
- 社区首页
- 下载
- 附件
资料描述
一、s3c6410 io简介
s3c6410包含了187个多功能输入/输出端口管脚,共分十七组,分别为:gpa,gpb,…,gpj。
gpio作为普通输入输出引脚时有4种状态:
(1)输出高电平。s3c6410的高电平就是3.3v电压。
(2)输出低电平。s3c6410的低电平就是0v电压。
(3)输入状态。引脚高低电平完全外界对引脚的输入电压决定。
(4)高阻态。引脚什么都不接,或者说是悬空。
gpio作为普通输入输出引脚时需要用到的寄存器有3个:
gpxcon配置寄存器:控制该组引脚的功能,即为输入还是输出。
gpxdat状态寄存器:如果作为普通输入输出引脚,这组寄存器是高低电平的状态寄存器。这组寄存器是可读取数值、也可写入数值的寄存器。
gpxpud上拉电阻寄存器:这组寄存器用于控制io内部上拉电阻的。
由于ok6410的4个led连接在gpm的io口上,下面主要介绍一下gpm的3个寄存器(gpmcon、gpmdat、gpmpud)。
gpmcon是一个24位的寄存器,每4位属于一个io口,gpm共有6个io口(gpm0~gpm5)。例如:
如果我们要把gpm0设置为输出,只要把gpmcon的0~3位设为为0001即可。
gpmdat是一个6位的寄存器,每一位属于一个io口,描述如下表:
gpmpud是一个12位的寄存器,每两位属于一个io口,用于设置该io使用上拉还是下拉。
关于io口的介绍就到这里,下面看看ok6410的硬件连接情况
二、硬件设计
在ok6410开发板上,4个led连接到了高电平上,另一端经过一个降压电阻后连接到处理器上。要使led发光,只要把nled1~4设为低电平即可。
nled1~4连接到处理器的gpm0~3,所以需要把gpm0~3设置为输出模式,然后在状态寄存器里写0就能点亮led,写1就能熄灭led.
三、软件设计
在上一讲中建好的demo工程中新建两个文件led.h和led.c。
打开code warrior for rvds软件,打开demo工程,在工程中添加上面建好的两个文件,