1. 程式人生 > >qt開啟linux下的裝置節點

qt開啟linux下的裝置節點

#include <stdlib.h>  //包含標頭檔案

#define IOCTL_LED_ON  0
#define IOCTL_LED_OFF 1

int led_fd=0;
int led_open(const char *devname) //定義一個open函式 linux驅動會呼叫裡open函式
{
    led_fd=open(devname, O_RDWR);//呼叫驅動函式,開啟裝置檔案
    printf("LED driver is ok\n");
    if(led_fd<0) //如果開啟失敗
    {
        printf("open device %s failed.\n",devname);
        return -1;
    }
    return 0;
}

int led_ioctl(unsigned int cmd, unsigned long led_num)
{
    
    printf("on/off is ok\t");
    printf("cmd=%d\n",cmd);
    ioctl(led_fd, cmd, led_num-1); //呼叫驅動函式,設定對應io口的狀態
    return 0;
}

int led_close(void)
{
    if(led_fd)
        close(led_fd);//呼叫驅動函式,關閉裝置檔案
}


///////////////呼叫 測試

    led_ioctl(4, 1);//第二個引數在這裡並不起作用,但必須>=1(因為後面有led_num-1)
    led_open("/dev/xyz");//選擇開啟的裝置節點,找到要控制的裝置驅動