Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95314
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 384
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-06 16:52
文章分类

全部博文(38)

文章存档

2014年(38)

我的朋友

分类: 嵌入式

2014-05-05 17:00:27

1.设置6410的GPIO管脚的功能可以用s3c_gpio_cfgpin函数
    
    int s3c_gpio_cfgpin(unsigned int pin, unsigned int to); 
    里面有两个参数,第一个pin是选择哪个引脚,第二个参数有三种定义
    设置成输出模式  #define S3C_GPIO_INPUT (S3C_GPIO_SPECIAL(0))
    设置成输入模式  #define S3C_GPIO_OUTPUT (S3C_GPIO_SPECIAL(1))
    复用功能选择    #define S3C_GPIO_SFN(x) (S3C_GPIO_SPECIAL(x)) 
    其实根据使用的情况来说第1,2两个定义根本就是鸡肋,只有第3个S3C_GPIO_SFN(x)才是最有用的

    例如:s3c_gpio_cfgpin(S3C64XX_GPN(0), S3C_GPIO_INPUT);//设置GPN0为输入引脚

        根据6410的芯片手册,s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C_GPIO_SFN(4));就是将GPE0口设置为AC97 BITCLK 功能
                                        s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C_GPIO_SFN(3));就是将GPE0口设置为I2S CLK[1] 功能
     

2.数据输入输出使用gpio_get_value和 gpio_set_value函数
    gpio_get_value(unsigned gpio);  -----
//读取gpio的值   
    例如:gpio_get_value(S3C64XX_GPN(0)) ;//读取GPNDAT0的值

    gpio_set_value(unsigned gpio, int value); ---- 设置gpio的值为value 
    例如:gpio_set_value(S3C64XX_GPN(0), 1) ;//设置GPNDAT0的值为1

3.查看gpio状态使用 gpio_request函数
    int gpio_request(unsigned gpio, const char *label); ,该函数的功能是通过查看该gpio保存的记录标志是否为NULL来判断GPIO是否被占用,并把此gpio取名为*lable。    
    例如:if(gpio_request(S3C64XX_GPB(0), "GPB"))   


4.设置上拉电阻状态使用s3c_gpio_setpull函数
    s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull);  ,该函数的功能是将pin引脚的上拉电阻设置成“pull”状态。
    例如s3c_gpio_setpull(S3C64XX_GPB(0), S3C_GPIO_PULL_DOWN );  

int s3c_gpio_cfgpin(unsigned int pin, unsigned int to); 

里面有两个参数,第一个

pin

是选择哪个引脚,第二个参数有三种定义

 

设置成输出模式

  

#define S3C_GPIO_INPUT (S3C_GPIO_SPECIAL(0)) 

设置成输入模式

  

#define S3C_GPIO_OUTPUT (S3C_GPIO_SPECIAL(1))

 

复用功能选择

    

#define S3C_GPIO_SFN(x) (S3C_GPIO_SPECIAL(x))

 

其实根据使用的情况来说第

1

2

两个定义根本就是鸡肋,只有第

3

S3C_GPIO_SFN(x)

才是最有用的

int s3c_gpio_cfgpin(unsigned int pin, unsigned int to); 

里面有两个参数,第一个

pin

是选择哪个引脚,第二个参数有三种定义

 

设置成输出模式

  

#define S3C_GPIO_INPUT (S3C_GPIO_SPECIAL(0)) 

设置成输入模式

  

#define S3C_GPIO_OUTPUT (S3C_GPIO_SPECIAL(1))

 

复用功能选择

    

#define S3C_GPIO_SFN(x) (S3C_GPIO_SPECIAL(x))

 

其实根据使用的情况来说第

1

2

两个定义根本就是鸡肋,只有第

3

S3C_GPIO_SFN(x)

才是最有用的

阅读(936) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~