`
阅读更多

GPIO

GPIO,通用输入输出(General Purpose I/O)的简称,其引脚可以供编程使用。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备,对这些设备的控制,有时只需要一位控制信号就够了,即只需要开/关两种状态就够了,比如灯亮与灭。对这些设备的控制,使用传统的串行口和并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程I/O接口”,即GPIO。

S3c GPIO

S3c2440有130个GPIO口,分为A到J共9组:GPA、GPB、GPC...GPJ。通过设置相应寄存器,可以选择某个GPIO口是用于输入、输出还是其他特殊功能。例如可以设置GPH6作为一般的输入、输出端口,或者用于串口。

操作GPIO

每组GPIO(GPA~GPJ),都可以通过3个寄存器来控制与访问,这3个寄存器分别为:

1.GPxCON:GPIO配置寄存器。

2.GPxDAT:GPIO数据寄存器。

3.GPxUP:上拉电阻控制寄存器。

(其中x为:A、B....H、J)

GPxCON寄存器

从寄存器的名字可以看出它属于配置(Confugure)寄存器——选择GPIO口的功能。其中PORTA与PORTB~PORTJ在功能选择方面有所不同。GPACON中每一位对应一个IO口(共23个)。当某位为0时,相应的IO为输出;当某位被置为1时,相应的引脚为地址线或用于地址控制。PORTB~PORTJ在寄存器操作方面完全相同,GPxCON中每两位控制一个引脚:00表示输入,01表示输出,10表示特殊功能,11保留不用。

GPxDAT寄存器

GPxDAT寄存器用于读/写引脚:当引脚被设置为输入时,读此寄存器可知相应引脚电瓶状态是高还是低;当引脚被设为输出时,写此寄存器相应的位可令此引脚输出高电平或低电平。

GPxUP寄存器

GPxUP:某位为1时,相应引脚无内部上拉电阻;为0时相应的引脚使用内部上拉电阻。(上拉电阻:由于管脚悬空比较容易受到外界的电磁干扰,因此通过一个电阻来将此管脚与高电平相连,让其固定在高电平,这样的电阻称之为上拉电阻。)

扩展阅读:
  • 1

    Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__

  • 2

    工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。

  • 3

    代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):

  • 4

    GPIO_ModeSetup(25, 0); 设置GPIO25为模式0

  • 5

    GPIO_InitIO(1,25); 初始化GPIO25方向为输出

  • 6

    GPIO_WriteIO(0, 25 ); 设值GPIO25输入低电平0

分享到:
评论

相关推荐

    s3c2440-gpio.rar_linux gpio_s3c2440_s3c2440 gpio_scan

    这个名为“s3c2440-gpio.rar_linux gpio_s3c2440_s3c2440 gpio_scan”的压缩包文件包含了针对S3C2440芯片的GPIO扫描和写入驱动程序,这对于理解和调试基于该处理器的硬件设计至关重要。 S3C2440 GPIO驱动主要涉及...

    gpio_led.zip_S3C2440 LED_S3c2440GPIO

    【标题】"gpio_led.zip_S3C2440 LED_S3c2440GPIO"涉及的知识点主要集中在S3C2440处理器的GPIO(通用输入/输出)功能以及如何通过汇编语言控制LED灯。S3C2440是一款由Samsung公司推出的基于ARM920T内核的微处理器,...

    GPIO.rar_GPIO_gpio s3c2440_gpio驱动_s3c2440 gpio_s3c2440-WINCE5.0

    在Linux系统中,GPIO驱动通常包含在内核源码树中,由一系列的头文件和C源文件组成,如`drivers/gpio/gpio-s3c2440.c`。在Windows CE系统中,GPIO驱动可能需要特定的适配器或者驱动程序包来实现。 S3C2440的GPIO驱动...

    GPIO.rar_The Test_s3c2440 gpio driver

    标题中的“GPIO.rar_The Test_s3c2440 gpio driver”暗示了这是一个关于S3C2440处理器的GPIO(General Purpose Input/Output)驱动程序的测试项目,包含C#和C++两种编程语言的实现。GPIO是微控制器或系统芯片中常见...

    GPIO_S3c2440.rar_EVC S3C2440_GPIO.rar_s3c2440 evc_s3c2440 gpio_s

    How to test GPIO on S3c2440 with EVC.

    gpio.rar_GPIO-test_S3C2440 LINUX_gpio ti_linux gpio_s3c2440 gpi

    标题中的“gpio.rar_GPIO-test_S3C2440 LINUX_gpio ti_linux gpio_s3c2440 gpi”表明这是一个关于GPIO(通用输入/输出)驱动程序的资源包,主要针对S3C2440处理器,并且适用于Linux操作系统。TI_Linux可能指的是...

    C#控制S3C2440的GPIO引脚

    标题 "C# 控制 S3C2440 的 GPIO 引脚" 涉及的是在嵌入式系统开发中使用 C# 语言来操控 S3C2440 微处理器的通用输入/输出(GPIO)引脚。S3C2440 是一款基于 ARM920T 内核的微处理器,广泛应用于嵌入式系统设计,如...

    基于S3C2440的GPIO驱动及其访问LED的应用程序

    本话题主要探讨的是如何针对S3C2440进行GPIO(General-Purpose Input/Output)驱动的编写,并利用这些驱动来控制LED(Light Emitting Diode)的应用。 GPIO是通用输入/输出端口的简称,它是处理器提供的一种接口,...

    GPIO.rar_2440 wince gpio vb_S3C2440 winCE GP_c#开发wince GPIO_s3c2

    标题中的“GPIO.rar_2440 wince gpio vb_S3C2440 winCE GP_c#开发wince GPIO_s3c2”表明这是一个关于S3C2440微处理器在Windows CE (WinCE)操作系统下进行GPIO(通用输入/输出)编程的资源包。其中涉及到VB(Visual ...

    Keil-uVision4-S3C2440.rar_S3C2440 KEIL_keil s3c2440_keil开发s3c244

    在提供的文档"Keil uVision4 S3C2440.doc"中,可能包含了具体的S3C2440裸机开发实例,例如初始化GPIO、设置时钟、控制LCD显示等。通过这些实例,开发者可以更直观地了解如何在Keil uVision4中操作S3C2440的硬件资源...

    S3C2440控制LED 实例

    在S3C2440的上下文中,这意味着我们需要找到或编写一个适配器,它能够与S3C2440的GPIO寄存器进行交互。 以下是一个简单的步骤概述: 1. **初始化GPIO**:首先,我们需要确定哪个GPIO引脚将用于LED控制。查阅S3C...

    GPIO.rar_ gpio s3c2440 _GPIO-test_QQ2440_io驱动_port GPIO ARM9

    标题中的“GPIO.rar_ gpio s3c2440 _GPIO-test_QQ2440_io驱动_port GPIO ARM9”表明这是一个关于S3C2440处理器的GPIO(General Purpose Input/Output)驱动程序的压缩包,适用于GPIO测试以及QQ2440开发板的IO驱动。...

    s3c2440原理图和s3c2440中文手册(含fl2440原理图)

    《S3C2440:嵌入式系统的核心与应用》 S3C2440是一款由Samsung公司设计的高性能、低功耗的ARM920T内核处理器,广泛应用于嵌入式系统中,如开发板、工业控制、移动设备等。这款处理器以其强大的处理能力和丰富的外围...

    s3c2440跑马灯的实现

    对于S3C2440,我们可以使用C语言编写驱动程序。以下是一些关键步骤: 1. **初始化GPIO**:使用适当的寄存器配置GPIO引脚为输出模式。S3C2440的GPIO控制器有多个bank,每个bank包含32个GPIO引脚。我们需要找到连接...

    keil4 下的S3C2440工程

    《基于Keil4的S3C2440裸机开发工程详解》 在嵌入式系统开发领域,S3C2440是一款广泛应用的ARM9处理器,它以其高性能和低功耗特性,被广泛用于各种嵌入式设备的设计中。在Windows 7环境下,开发者通常使用Keil μ...

    s3c2440裸机测试小程序

    S3C2440中,LED的控制通常通过GPIO(General Purpose Input/Output)端口实现。开发人员需要配置GPIO端口为输出模式,并通过写入特定值来点亮或熄灭LED。在裸机程序中,这涉及到对GPIO寄存器的读写操作,包括设置...

    s3c2440按键中断,亲测可用!

    对于“按键中断”,我们通常是指通过硬件连接到S3C2440的GPIO引脚上的物理按键。当用户按下按键时,对应的GPIO电平会发生变化,触发中断。在硬件层面上,我们需要配置GPIO引脚为中断输入模式,并设置中断触发条件,...

    S3C2440X核心板原理图PCB源文件(AD文件)

    S3C2440X的外设接口连接,如GPIO、UART、SPI、I2C等,都会在原理图中清晰呈现。通过分析这些连接,可以学习到如何与外部设备通信,如何配置和控制处理器的各个功能模块。 总的来说,这份S3C2440X核心板的AD文件资料...

    S3C2440的简单C程序

    在本项目中,我们将探讨如何在KEIL4集成开发环境中,用C语言编写程序来操作S3C2440的GPIO(通用输入/输出)接口。 首先,理解S3C2440的GPIO架构至关重要。该芯片的GPIO由多个端口组成,如GPIO Port A到GPIO Port H...

    ucos移植到arm9(s3c2440)

    移植UCOS至S3C2440之前,需要了解S3C2440的基本硬件特性,包括CPU、内存、中断控制器、时钟系统、GPIO等,并确保有相应的驱动程序支持。同时,需要熟悉UCOS的内核架构,理解其任务调度、内存管理、中断处理等核心...

Global site tag (gtag.js) - Google Analytics