首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于C语言在gec6818开发板实现贪吃蛇

基于C语言在gec6818开发板实现贪吃蛇

作者头像
一条晒干的咸鱼
发布2024-11-19 19:24:23
发布2024-11-19 19:24:23
3100
举报
文章被收录于专栏:learnlearn
前期思考和准备:
  1. 确保您已经正确搭建好开发环境,并且已经成功连接到开发板。
  2. 在开发板上安装相应的图形库,例如SDL或者GTK等。
  3. 创建一个新的C/C++项目,并设置好相关的编译选项。
  4. 编写游戏逻辑代码,包括贪吃蛇的移动、食物生成、碰撞检测等。
  5. 结合图形库,实现游戏的界面显示和用户交互。
  6. 进行编译、链接,并将生成的可执行文件烧录到开发板上运行。
1.硬件接线,安装串口驱动

一般串口驱动会自动识别安装,未在端口成功识别显示的可手动安装一下

基于C语言在gec6818开发板实现贪吃蛇_#include
基于C语言在gec6818开发板实现贪吃蛇_#include
基于C语言在gec6818开发板实现贪吃蛇_#include_02
基于C语言在gec6818开发板实现贪吃蛇_#include_02
2.使用SecureCRT链接开发板后台

首先打开“SecureCRT.exe”

基于C语言在gec6818开发板实现贪吃蛇_Linux_03
基于C语言在gec6818开发板实现贪吃蛇_Linux_03

选择自己的端口进行链接

基于C语言在gec6818开发板实现贪吃蛇_触摸屏_04
基于C语言在gec6818开发板实现贪吃蛇_触摸屏_04

选择【快速连接】,协议选择【Serial】端口号选择【串口端口】,波特率选择【115200】,流控制全部取消

基于C语言在gec6818开发板实现贪吃蛇_Linux_05
基于C语言在gec6818开发板实现贪吃蛇_Linux_05

现在是显示已经连接,如果显示连接异常,可以尝试手动重启电脑检查与电脑连接线是否松动,如果开发板已开机,则拨动关机开关,重新打开

基于C语言在gec6818开发板实现贪吃蛇_Linux_06
基于C语言在gec6818开发板实现贪吃蛇_Linux_06

将开发板开机,就可以在 SecureCRT中,看到开发板的后台信息(开机时会出现一个倒计时,此时请不要按任何按键,否则会进入 uboot模式)

基于C语言在gec6818开发板实现贪吃蛇_Linux_07
基于C语言在gec6818开发板实现贪吃蛇_Linux_07
基于C语言在gec6818开发板实现贪吃蛇_gec6818_08
基于C语言在gec6818开发板实现贪吃蛇_gec6818_08
基于C语言在gec6818开发板实现贪吃蛇_Linux_09
基于C语言在gec6818开发板实现贪吃蛇_Linux_09

等待开机完成后,键入 Ctrl + C 可以 唤出 ARM板的后台命令行

基于C语言在gec6818开发板实现贪吃蛇_开发板_10
基于C语言在gec6818开发板实现贪吃蛇_开发板_10
基于C语言在gec6818开发板实现贪吃蛇_开发板_11
基于C语言在gec6818开发板实现贪吃蛇_开发板_11
3.交叉开发的操作流程
1.编写源代码文件
基于C语言在gec6818开发板实现贪吃蛇_触摸屏_12
基于C语言在gec6818开发板实现贪吃蛇_触摸屏_12
main.c主函数代码
代码语言:javascript
复制
#include <pthread.h>
#include "game.h"
#include "touch.h"
#include "bmp.h"
#include "mfont.h"
#include "list.h"

#define TOUCH_FILE "/dev/input/event0"   //触摸屏文件
#define LCD_FILE "/dev/fb0"              //显示屏文件
#define LOGIN_BG_BMP "./snakeGame_3.bmp"//登录界面背景图
//int dir = 1;//方向
int status2 = -1;
int key2;//按键
int select1;//游戏选择界面的按键选择

//游戏
void *game(void *arg)
{
    while (1)
    {
        select1 = -1;
        //开始界面
        select1 = start_interface();
        if(select1 == start)
        {
            //贪吃蛇游戏
            snake_game();
        }
        else if(select1 == rank)
        {
            //排行榜
            lcd_pos_size_pixel(BLACK, 0, 0, 800, 480);
            font_show("排行榜", 65, 250, 70, BLACK, 300, 20, YELLOW, 32, 3);
            
            text_read();
            sleep(2);
        }
        else if(select1 == difficult)
        {
            printf("ooo\n");
            //难度选择
            //font_show("啥也没有", 65, 300, 70, BLACK, 300, 200, YELLOW, 32, 3);
            //sleep(2);
        }  
    }

    pthread_exit(NULL);
}

//触摸屏
void *touch(void *arg)
{
    while (1)
    {
        if(select1 == start)//进入游戏界面才触发
        {
            int status = touch_slide_click();
            if(status == Right || status == Left || status == Up ||status == Down )
            {
                status2 = status;
            }
            else 
            {
                //key2 = status;
                if(status != -1 )
                    key2 = status;
            }
        }
    }
}

int main()
{   
    //初始化
    touch_init(TOUCH_FILE);//触摸屏初始化   
    lcd_init(LCD_FILE);//显示屏初始化  
    font_init();//字体初始化

    bmp_show_size("snakeGame_3.bmp",0,0);//登录界面背景
    //密码登录
    char key[6] = {"123"};
    char key_input[6] = {0};
    while(1)
    {
        printf("请输入登录密码\n");
        scanf("%s", key_input);
        if(strcmp(key, key_input) == 0)
            break;
    }
    
    printf("登录成功\n");

    //创建游戏线程
    pthread_t thread_game;
    pthread_create(&thread_game, NULL, game, NULL);
    //创建触摸屏线程
    pthread_t thread_touch;
    pthread_create(&thread_touch, NULL, touch, NULL);

    //阻塞等待子线程退出 回收资源
    pthread_join(thread_game, NULL);
    pthread_join(thread_touch, NULL);

    //销毁
    touch_destory();//触摸屏销毁  
    lcd_destory();//显示屏销毁
    
    font_destory();
    
    return 0;
}
2.交叉编译

将源代码文件 编译为目标平台可以执行的程序文件

基于C语言在gec6818开发板实现贪吃蛇_Linux_13
基于C语言在gec6818开发板实现贪吃蛇_Linux_13
3.将程序文件传输到 ARM板

在 SecureCRT的开发板的后台终端命令行上,执行传输命令 rx 来从PC中获取文件

代码语言:javascript
复制
rx  文件名
rx  hello_world
基于C语言在gec6818开发板实现贪吃蛇_Linux_14
基于C语言在gec6818开发板实现贪吃蛇_Linux_14
基于C语言在gec6818开发板实现贪吃蛇_#include_15
基于C语言在gec6818开发板实现贪吃蛇_#include_15
4.执行上述命令后 会激活 SecureCRT的文件传输机制,用户需要点击 菜单栏上的 ”传输“ ”发送 xModue“ 找到要传输的文件 即可开始传输
基于C语言在gec6818开发板实现贪吃蛇_#include_16
基于C语言在gec6818开发板实现贪吃蛇_#include_16

上述传输完成后查看了文件的信息,发现刚传输过来的文件是 没有 可执行权限的 如果 传输的是程序文件,就还需要增加 可执行权限

5.修改文件权限

使用命令 chmod 可以修改指定文件的权限

代码语言:javascript
复制
chmod  权限码   文件名

权限码可以是 3位八进制数表示

或者也可以用 单个权限表示

比如: +x 表示给指定文件的所有用户,增加可执行权限

代码语言:javascript
复制
chmod  0777  hello_arm
chmod  +x  hello_arm
基于C语言在gec6818开发板实现贪吃蛇_gec6818_17
基于C语言在gec6818开发板实现贪吃蛇_gec6818_17
6.执行程序
代码语言:javascript
复制
./程序文件名
基于C语言在gec6818开发板实现贪吃蛇_Linux_18
基于C语言在gec6818开发板实现贪吃蛇_Linux_18
基于C语言在gec6818开发板实现贪吃蛇_gec6818_19
基于C语言在gec6818开发板实现贪吃蛇_gec6818_19
7.项目实现
基于C语言在gec6818开发板实现贪吃蛇_Linux_20
基于C语言在gec6818开发板实现贪吃蛇_Linux_20
基于C语言在gec6818开发板实现贪吃蛇_Linux_21
基于C语言在gec6818开发板实现贪吃蛇_Linux_21

贪吃蛇项目文件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期思考和准备:
  • 1.硬件接线,安装串口驱动
  • 2.使用SecureCRT链接开发板后台
  • 3.交叉开发的操作流程
    • 1.编写源代码文件
      • main.c主函数代码
    • 2.交叉编译
    • 3.将程序文件传输到 ARM板
    • 4.执行上述命令后 会激活 SecureCRT的文件传输机制,用户需要点击 菜单栏上的 ”传输“ ”发送 xModue“ 找到要传输的文件 即可开始传输
    • 5.修改文件权限
    • 6.执行程序
    • 7.项目实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档