lddongdong 2021-12-01 08:19 采纳率: 100%
浏览 40
已结题

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

问题是: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条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办