lddongdong
2021-12-01 08:19
采纳率: 95.8%
浏览 23

这段嵌入式代码有错误,如何修改?

问题是:1、LED+蜂鸣器:
初始化设备(4个灯全灭),1s后蜂鸣器连续响起三次(间隔1s以下),然后进行一次跑马灯(LED1-LED4,LED4-LED1逐个亮起)

/*
    1、LED+蜂鸣器:
    初始化设备(4个灯全灭),1s后蜂鸣器连续响起三次(间隔1s以下),然后进行一次跑马灯(LED1-LED4,LED4-LED1逐个亮起)。
*/

#include "2410lib.h"
#include "2410addr.h"
#include "def.h"

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


#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <syslog.h>
#include <errno.h>
#include <linux/input.h>

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <stdbool.h>

#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
  
#include <string.h> 

#define TEST_MAGIC 'x'                           
#define TEST_MAX_NR 4                            

#define LED1 _IO(TEST_MAGIC, 0)              
#define LED2 _IO(TEST_MAGIC, 1)
#define LED3 _IO(TEST_MAGIC, 2)
#define LED4 _IO(TEST_MAGIC, 3)
#define LED(i) _IO(TEST_MAGIC, i)//做循环用

//控制灯开关
int openorcloseLed();//控制灯全开或全关 ,正常返回1,错误返回-1 
int openorcloseLed(int arg){
    
    int fd;
    fd = open("/dev/Led",O_RDWR);
    if(fd<0)
    {
        printf("打开驱动文件失败,请检查是否有该驱动或者路径是否正确\n");
        return -1;
    }
    for(int i=0;i<4;i++){
        ioctl(fd, LED(i), arg);
    }
    return 1;
}



//---------------------------------------------------------------------------
int main()
{
    /*
    1、LED+蜂鸣器:
    初始化设备(4个灯全灭),1s后蜂鸣器连续响起三次(间隔1s以下),然后进行一次跑马灯(LED1-LED4,LED4-LED1逐个亮起)。)
    */    
    
    openorcloseLed(1);//LED全灭
    
//--------------------------------------------------------------------
    
            for(int i=0;i<=3;i++){
    rGPBCON= rGPBCON& 0Xfffffc | 1;
    rGPBDAT &=0xFFFFFE;
    rGPBDAT | =1;
    sleep(1);
       }

    ioctl(fd,LED1,0);
    sleep(1);
    ioctl(fd,LED1,1);
    ioctl(fd,LED2,0);
    sleep(1);
    ioctl(fd,LED2,1);
    ioctl(fd,LED3,0);
    sleep(1);
    ioctl(fd,LED3,1);
    ioctl(fd,LED4,0);
    return 0; 
}

img


编译出现如图错误,如何修改呢?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qzjhjxj 2021-12-01 08:38
    已采纳

    错误提示,是 2410lib.h 这个头文件没找到。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题