嵌入式GPIO接口基础操作

1、gpio
gpio(general purpose input/output port),即通用输入输出端口,就是芯片的一些引脚。作为输入端口时,我们可以通过它们读入引脚的状态--高电平或低电平,作为输出端口时,我们可以通过它们输出高电平或低电平来控制连接的外围设备。
s3c2440有130个gpio引脚,分为a~j共9组:gpa、gpb、…、gpj。通过设置相应的寄存器来设置某个引脚的功能(输入或输出或是其他特殊功能)。
2、通过寄存器操作gpio
每个端口可以很容易的通过软件配置以满足各种系统配置和设计需求,在使用之前你必须定义每个引脚的功能,如果不是用于复用功能,则引脚可以配置为普通输入输出端口。
1)端口配置寄存器gpxcon(x为a~j)
gpxcon是用于选择引脚功能。
port a的端口配置寄存器gpacon中每一位对应一个引脚(port a共23个引脚,bit0~bit22对应gpa0~gpa22)。当某位被设为0时,相应的引脚被设置成输出引脚,此时可以在gpadat中相应位写入0或1让此引脚输出低电平或高电平。当某位被设为1时,相应的引脚被设为地址线或用于地址控制,此时gpadat无用。(gpacon通常被设为全1,以便访问外部存储器件)
port b~port j的端口配置寄存器操作完全相同:gpxcon中每两位控制一个引脚,00为输入、01为输出、10为特殊功能、11保留。
2)端口数据寄存器gpxdat(x为a~j)
gpxdat是用于读/写引脚数据。
当引脚被设为输入时,读此寄存器可得到相应引脚的电平状态是高还是低;当引脚被设为输出时,通过写此寄存器的相应位可设置相应引脚输出高电平或低电平。
3)端口上拉寄存器gpxup(x为b~j,注意:port a端口没有这个寄存器)
gpxup是用于选择是否使用内部上拉电阻。
此寄存器的某位被设置为1时,相应引脚不使用内部上拉电阻;设置为0时,相应引脚使用内部上拉电阻。
图1 上拉电阻
3、使用软件来访问硬件
对单个引脚的操作有3种:输出高低电平、检测引脚状态、中断,这些操作一般通过读、写寄存器完成。如图2所示电路,可以设置gpfcon寄存器将gpf4、gpf5、gpf6引脚设置4为输出功能,然后写gpfdat寄存器的相应位使这3个引脚输出高电平或低电平来控制相应的led。相应的引脚输出低电平时,led点亮,输出高电平时,led熄灭。
图2 led电路图
s3c2440的gpfcon、gpfdat寄存器地址分别是0x56000050、0x56000054,通过软件读写它们的地址可以访问这些寄存器。s3c2440芯片手册对这些寄存器的介绍如下图:
图3 port f寄存器介绍
4、gpio操作实例
使用gpio控制一个led。例如,我们要想点亮led1,就需要设置gpf4引脚为输出功能,然后设置该引脚输出低电平。
板子上电后执行的第一条指令,并不是main函数,如果我们使用keil开发,启动文件会由编译器完成(会有一个s3c2440.s文件就是启动文件),它要做的工作主要是各种初始化然后跳转到c文件的main函数执行。但是我们在linux系统下使用arm-linux-gcc编译裸机程序时,就需要自己编写一个这样的启动文件代码。(建一个目录led_on_c,把编写的代码文件和makefile文件放在该目录下)
自己编写的启动文件代码crt0.s内容:
下面是led1的控制程序led_on_c.c文件,内容如下:
makefile文件:
第2、3行分别编译源程序crt0.s、led_on_c.c
第4行将编译得到的结果连接起来
第5行把连接得到的elf格式可执行文件led_on_c_elf转换成二进制格式文件led_on_c.bin
第6行将结果转换为汇编码以供查看
在led_on_c目录下执行make命令生成可执行文件led_on_c.bin,然后把该文件烧写到nand flash。

矽映电子推出首款利用HDCP2.2技术传输的4K超高清MHL3.0接收器IC
如何正确选择和安装气压传感器
关于终端设备对外接口的性能与监控性能的介绍
Nadia在人形机器人中如何独树一帜
电动汽车的价格为什么一直居高不下
嵌入式GPIO接口基础操作
通过核心部件和基本参数来全面了解光纤连接器
深开鸿亮相2023世界航海装备大会,赋能蓝色经济高质量发展
模拟及混合信号芯片设计公司纳芯微发布2022第一季度报告
电源数据表的基本布局的了解
芯文芯事丨自动驾驶汽车设计将面临的五大挑战
招投标资讯|院区道路整修及路灯改造工程
PyTorch 1.8正式官宣发布还支持AMD GPU!
LED上市企业2015年的业绩快报TOP20
什么是单片机解密?单片机解密方法
Adobe提出DMV3D:3D生成只需30秒!让文本、图像都动起来的新方法!
选择移动电源的五大建议
ARM A73和G71将使AR和VR成为日常体验
高性能信号链技术创新加速医疗影像产业多元化发展
霍尔旋转传感器