国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

穿prada的008的個人空間 http://www.qingdxww.cn/space-uid-108322.html [收藏] [復制] [RSS]

博客

【Rayeager PX2】PX2上使用GPIO口的例程

已有 1773 次閱讀2015-7-8 17:29 | GPIO

之前樓主在論壇中已經分享了簡單驅動的編寫,現在樓主再來教剛接觸板子的新手們如何引用調用GPIO,不過這里樓主并沒有將GPIO口的函數封裝成庫,然后在eclipse上調用,樓主這邊的例子,只是簡單的用adb工具進入板中,然后用一個測試程序使用端口,有興趣想要在安卓界面調用端口的,可以參考樓主之前寫的那編jni調用的帖子。
首先我們依舊來簡單地說下步驟,
1.在/kernel/drivers下建個文件夾,自己創建并添加Kconfig和makefile,內容如下,
  

gpio_K.png (51.34 KB, 下載次數: 0)

下載附件

5 天前 上傳



2.在該目錄下寫個gpio驅動,內容在最后
3.返回drivers目錄,在目錄下修改Kconfig和makefile,修改內容如下
  
4.進入內核,打開已寫好的驅動。
 
驅動內容如下,
/***********************************************************************************
* driver for GPIO
*    
**********************************************************************************/
#include <linux/miscdevice.h>
#include <linux/input.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <linux/module.h>
#include <linux/init.h>
#include <mach/gpio.h>
#include <linux/gpio.h>

#define DEVICE_NAME "rkpx2_GPIO" //定義設備名


#define RKPX2_GPIO_MAJOR    101  //定義設備號

static struct class *dev_class//定義設備結構體


static int gpio_open(struct inode *inode, struct file *file)
{
    int i
    int err
    i=0
    
    err = gpio_request(RK30_PIN4_PD1, "GPIO4_D1")//申請端口gpio4_1,成功返回0,失敗返回負的錯誤值

    if(err)
    {
        printk(KERN_ERR "RK_PX2 failed to request GPIO4_D1 \n")
        return err
    }//若申請失敗,則報錯,然后推出,

    err = gpio_request(RK30_PIN4_PD2, "GPIO4_D2")//申請端口gpio4_2,成功返回0,失敗返回負的錯誤值

    if(err)
    {
        printk(KERN_ERR "RK_PX2 failed to request GPIO4_D2 \n")
        return err
    }
    err = gpio_request(RK30_PIN4_PD3, "GPIO4_D3")//申請端口gpio4_3,成功返回0,失敗返回負的錯誤值

    if(err)
    {
        printk(KERN_ERR "RK_PX2 failed to request GPIO4_D3 \n")
        return err
    }
    err = gpio_request(RK30_PIN4_PD4, "GPIO4_D4")//申請端口gpio4_4,成功返回0,失敗返回負的錯誤值

    if(err)
    {
        printk(KERN_ERR "RK_PX2 failed to request GPIO4_D4 \n")
        return err
    }
    printk(KERN_INFO "RK_PX2 GPIO opened 4 !\n")
    
    gpio_direction_output(RK30_PIN4_PD1,1)//決定GPIO的方向,為輸出
    gpio_direction_output(RK30_PIN4_PD2,1)
    gpio_direction_output(RK30_PIN4_PD3,1)
    gpio_direction_output(RK30_PIN4_PD4,1)

    return 0

}

static int gpio_close(struct inode *inode, struct file *file)
{
    gpio_free(RK30_PIN4_PD1)
    gpio_free(RK30_PIN4_PD2)
    gpio_free(RK30_PIN4_PD3)
    gpio_free(RK30_PIN4_PD4)    //釋放端口,
    printk(KERN_INFO "RK_PX2 GPIO driver successfully close\n")
    return 0
}

static int gpio_read(struct file *file, char *buffer, size_t size, loff_t *pos) //從內核中讀取GPIO引腳的值
{
     int ret 
    char key_buf[4]
    if (gpio_get_value(RK30_PIN4_PD1)==0){
        key_buf[0]=0
    }else{
        key_buf[0]=1
    }
    if (gpio_get_value(RK30_PIN4_PD2)==0){
        key_buf[1]=0
    }else{
        key_buf[1]=1
    }
    if (gpio_get_value(RK30_PIN4_PD3)==0){
        key_buf[2]=0
    }else{

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部
主站蜘蛛池模板: 在线免费观看日韩视频 | 青青青国产精品视频 | 亚洲精品永久www忘忧草 | 国内精品91最新在线观看 | 国产精品lululu在线观看 | 直接进入免费看黄的网站 | 日韩欧美国产偷亚洲清高 | 欧美成人看片黄a免费 | 婷婷亚洲综合五月天小说 | 亚洲精品中文字幕麻豆 | 成在线人免费视频一区二区三区 | 精品一区二区国语对白 | 91精品久久久久久久99蜜桃 | 国产成人精品免费 | 一级特黄色毛片免费看 | 亚洲欧美日韩在线精品一区二区 | 一级a毛片免费观看久久精品 | 欧美色精品天天在线观看视频 | 天堂国产在线观看 | 亚洲欧洲精品国产区 | 免费三片在线观看网站 | 99久久免费精品国产免费 | 久久久99精品免费观看 | 日韩系列在线 | 青青草原网址 | 久久婷婷一区二区三区 | 91麻豆国产级在线 | 天天上天天操 | 欧洲a级片 | 99视频网 | 日韩精品一级毛片 | 国产一级大片在线观看 | 四虎国产精品永久地址48 | 毛片一级在线观看 | 亚洲欧美国产日本 | 亚洲另类欧美日韩 | 国产精品永久在线 | 日本免费黄网站 | 国内久久久久高清影视 | 久久99精品一级毛片 | 污视频网站免费在线观看 |