学ARM得从裸板学习,裸的最基本就是对GPIO的操作了
由于我学习的是ARM9--s3c2440,所以我的GPIO是这样的:
GPA,GPB,GPC......GPJ一共9组,比2410多了一组
首先介绍一下S3C2410X:
S3C2410X芯片上共有71个多功能的输入输出引脚,它们分为7组I/O口
(1)1个23位的输出端口(端口A)
(2)2个11位的输入输出端口(端口B、H)
(3)4个16位的输入输出端口(端口C、D、E、G)
(4)1个8位的输入输出端口(端口F)
在运行程序之前必须对每个用到的引脚功能进行设置
GPIO无非是用来进行输入输出的,那么肯定有寄存器进行控制
1.端口控制寄存器(GPACON-GPHCON)
大多数引脚都复用,所以必须对每个引脚进行配置。端口控制寄存器GPnCON定义了每个引脚的功能
2.端口数据寄存器(GPADAT-GPHDAT)
如果端口被配置成输出端口,可以向GPnDAT的相应数据位写数据;
如果端口被配置成输出端口,可以向GPnDAT的相应数据位读出数据。
3.端口上拉寄存器(GPBUP-GPHUP)
控制每个端口的上拉电阻的允许和禁止,如果为0,相应的上拉电阻被允许,如果是1,相应的上拉电阻被禁止。
如果端口的上拉电阻被允许,无论在哪种状态(INPUT,OUTPUT,DATAn,EINTn等)下,上拉电阻都起作用。
对于GPIO的控制,只要勤于翻查手册就好。