ARM-Linux GPIO操作事宜

发布者:平和的心情最新更新时间:2016-08-08 来源: eefocus关键字:ARM-Linux  GPIO 手机看文章 扫描二维码
随时随地手机看文章
1.在嵌入式Linux GPIO表示为“S3C2410_GPx(n)”,其中x的取值为“A,B,C,D,E,F,G,H.....”,表示那个GPIO口,n的取值为“1,2,3,.....”表示第几个管脚。

例如

B口的第六管教:S3C2410_GPB(6)

D口的第12管教:S3C2410_GPD(12)

.....

注 这些宏定义在arch/arm/mach-s3c2410/include/mach/gpio-nrs.h,使用#include

以下包含#include

2.设置gpio的工作模式是输入,输出还是其他的

voids3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

参数 function 表示该管脚配置的功能 一般只能配置下列参数

S3C2410_GPIO_INPUT:该管脚配置为输入

S3C2410_GPIO_OUTPUT:该管脚配置为输出

S3C2410_GPIO_SFN1

S3C2410_GPIO_SFN2

S3C2410_GPIO_LEAVE

3.返回对应的GPIO的配置情况是输入,输出还是其他的
unsignedint s3c2410_gpio_getcfg(unsigned int pin)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

返回值

S3C2410_GPIO_INPUT:该管脚配置为输入

S3C2410_GPIO_OUTPUT:该管脚配置为输出

....

4.设置相应的GPIO的上拉电阻

voids3c2410_gpio_pullup(unsigned int pin, unsigned int to)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

参数 to  当to为1时候,相应的pin引脚设置为1,表示该GPIO要上拉电阻,to为0时候,相应的pin引脚配置为0,表示不要上拉电阻

5.ints3c2410_gpio_getpull(unsigned int pin)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

返回值 为1时候,表示该GPIO有上拉电阻;为0时候,表示没有上拉电阻

6.当GPIO的工作为输出时候,设置某个GPIO的值

voids3c2410_gpio_setpin(unsigned int pin, unsigned int to)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

参数 to  当to为1时候,相应的pin引脚设置为高电平,to为0时候,相应的pin引脚配置为低电平

7.当GPIO的工作为输入时候,设置某个GPIO的值

unsigned ints3c2410_gpio_getpin(unsigned int pin)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

返回值 为1时候,表示该GPIO输入高电平;为0时候,表示输入低电平

8.给定端口,转换出irq号

ints3c2410_gpio_getirq(unsigned int pin)

参数 pin 表示配置的管脚 形如“S3C2410_GPB(6)”的实参

返回值 irq

9.杂项配置

unsigned ints3c2410_modify_misccr(unsigned int clear, unsigned int change)

关键字:ARM-Linux  GPIO 引用地址:ARM-Linux GPIO操作事宜

上一篇:2440之中断管理
下一篇:ARM移植OSGi框架

推荐阅读最新更新时间:2024-03-16 15:04

tiny4412开发板GPIO试验
GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平、或者通过它们读入引脚的状态——是高电平还是低电平。 三星Exynos4412,它有304个 GPIO,分为GPA0、GPA1、GPB、GPC0、GPC1等共37组。可以通过设置寄存器来确定某个引脚用于输入、输出还是其它特殊功能。比如可以设置GPC0、GPC1作为一般的输入引脚、输出引脚,或者用于AC97、SPDIF、I2C、SPI口。 GPIO的操作是所有硬件操作的基础,由此扩展开来可以了解所有硬件的操作,这是底层开发人员必须掌握的。 Exynos4412芯片的GPIO寄存器:
[单片机]
tiny4412开发板<font color='red'>GPIO</font>试验
STM8S的GPIO主要功能以及操作方法解析
STM8S的GPIO主要功能: ● 端口的各个位可以被单独配置 ● 可选择的输入模式:浮动输入和带上拉输入 ● 可选择的输出模式:推挽式输出和开漏输出 ● 数据输入和输出采用独立的寄存器 ● 外部中断可以单独使能和关闭 ● 输出摆率控制用以减少EMC噪声 ● 片上外设的I/O功能复用 ● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗 ● 在数据输出锁存时支持读-修改-写 ● 输入兼容 5V电压 ● I/O口工作电压范围为1.6 V 到V DDIOmax 每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的
[单片机]
STM8S的<font color='red'>GPIO</font>主要功能以及操作方法解析
基于嵌入式ARM-Linux无线ZigBee协调器驱动设计
农田中大范围的环境信息监测已成为网络应用范围重点之一。针对农田布线不便的特点,ZigBee无线节点网络成为农田信息采集系统的首选,可对其所分布区域内的各种环境和检测对象的信息进行实时的监控 。然而,控制下层整个网络状态的核心是上位机ARM处理器,而且上位机与下位机通信大多以串口模式来实现 。但串口通信模式存在串口传输速率低(波特率双方一致)、传送距离短 、数据冗余差(数据校验)以及设计串口协议繁琐(帧格式)等不足。因此本文研究了ZigBee在ARM9内核中的协调器字符驱动,利用I/O传输数据,控制具有协调器驱动的设备在农田任何位置即可组网,以减少协调器的布局,实现方便快捷的动态数据监测。 1 田间监测系统的要求  因监测节点需要
[工业控制]
基于嵌入式<font color='red'>ARM-Linux</font>无线ZigBee协调器驱动设计
STM32开发 -- GPIO详解
之前有简单讲过GPIO工作模式和寄存器,还是有点没搞明白。这次需要全方位的看一下了。 一、数据手册 1、STM32F105RC引脚说明 可知:STM32F105RC 一共有4组IO口 一共16X3+3=51个IO GPIOA0~A15 GPIOB0~B15 GPIOC0~C15 GPIOD0~D2 2、程序定义 GPIO端口号 STM32F105RC使用GPIO端口号为:GPIOA、GPIOB、GPIOC、GPIOD #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE) #define GPIO
[单片机]
STM32开发 -- <font color='red'>GPIO</font>详解
STM8->GPIO
如果MCU没有了IO,还用它干甚么呢? STM8是8位的MCU系列,其一个IO Port一般包括8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口(相较51需要先配置再使用),还可能会有如模拟输入、外部中断、外设等复用功能。但是在任一时刻引脚上仅有一个功能。复用功能通过选项字节控制。 选项字节,包括芯片的硬件配置和存储器保护信息,这些字节保存在存储器中一个块中。除了ROP(读出保护)字节,每个选项字被保存两次,一个通常的格式和一个备份的互补格式。可以在ICP模式(通过SWIM)下访问EEPROM对应的地址来进行修改。 相较于STM32的GPIO配置,STM8使用的寄存器更少,包括输出寄存器 (ODR)、输
[单片机]
STM8-><font color='red'>GPIO</font>
STM32学习之:GPIO最简单操作步骤
需用到的 .c 库函数为 stm32f10x_gpio.c 和stm32f10x_rcc.c 1. 启动相应Port x的RCC(复位始终控制) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE); x可以是A到G , GPIO都由APB2(高速外设)时钟控制 2. GPIO初始结构中的三个参数赋值(该结构名需程序前定义: GPIO_InitTypeDef GPIO_InitStructure; ) 三个参数分别为 引脚:GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_
[单片机]
STM32F103V GPIO中断
STM32F103的GPIO作为中断来实现外部中断触发,相关程序如下: 端口配置: void GPIO_Configuration(void) { RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC , ENABLE); GPIO_InitStructure.GPIO_Pin = IR_int_IN|IR_int_OUT; //IR_int 作为输入 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ; //输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_
[单片机]
基于STM32单片机流水灯控制中的GPIO_Init()函数解析
学习STM32时,首先要熟悉流水灯例程,在这里就来分析流水灯中的GPIO_Init()函数 例如:流水灯例程中使用的端口是macLED1_GPIO_PORT=GPIOB, 控制的引脚是GPIO_Pin_0, 引脚的模式是GPIO_Mode_Out_PP(通用推挽输出), 引脚的速率是GPIO_Speed_50MHz, 用到的寄存器是CRL 将上述的引脚、模式、速率换算成32位的16进制,分别是: 1)控制的引脚是GPIO_Pin_0 换算成32位的16进制是:0x0000 0001 2)引脚的模式是GPIO_Mode_Out_PP(通用推挽输出) 换算成32位的16进制是:0x0000 0010 3)引脚的速率是GPIO_Sp
[单片机]
基于STM32单片机流水灯控制中的<font color='red'>GPIO</font>_Init()函数解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved