mini2440开发板跑马灯

1、编写开发板GPIO (通用IO)的驱动测试程序,要求led1、led3实现跑马亮灯状态,每盏灯亮两秒一次,持续3秒。

开发板:友善之臂mini2440

解:

1.跑马灯

(1)  打开ubuntu系统,打开终端,输入命令“arm-linux-gcc 2_1_paomadeng.c –o paomadeng”交叉编译生成开发板上可以执行的文件paomadeng。

(2)  将文件paomadeng移动到arm开发板中。

(3)  在arm开发板中使用命令“chmod 777 paomadeng”修改paomadeng文件的权限,使它的权限被修改为所有者、所属组、其他人都拥有读、写、和执行的权限。

(4)  arm开发板中使用命令“ps”查看系统现在进行着的进程,如果arm开发中已经运行着一个关于led控制的进程,记住它的pid,使用命令杀死该进程。

(5)  arm开发板执行命令“./paomadeng”可以看到led1灯和led3灯形成跑马灯的效果。led1灯和led3灯同时只有一盏灯亮,亮的时间为2秒和3秒交替循环。

/******************2_1_paomadeng.c*********/

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/ioctl.h>

int main()
{
    int led_fd;
    if((led_fd=open("/dev/leds0",0))<0) 
    {
        if((led_fd=open("/dev/leds",0))<0)
        {
            printf("open device leds failed\n");
            return -1;
        }
    }
    ioctl(led_fd,0,0);
    ioctl(led_fd,0,1);
    ioctl(led_fd,0,2);
    ioctl(led_fd,0,3);
    while(1)
    {
        ioctl(led_fd,0,0);//led1灭
        ioctl(led_fd,1,2);//led3亮
        sleep(2);
        ioctl(led_fd,1,0);//led1亮
        ioctl(led_fd,0,2);//led3灭
        sleep(3);
        
    }
    close(led_fd);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Chenger_32123/article/details/81332047