前期思考和准备:

  1. 确保您已经正确搭建好开发环境,并且已经成功连接到开发板。
  2. 在开发板上安装相应的图形库,例如SDL或者GTK等。
  3. 创建一个新的C/C++项目,并设置好相关的编译选项。
  4. 编写游戏逻辑代码,包括贪吃蛇的移动、食物生成、碰撞检测等。
  5. 结合图形库,实现游戏的界面显示和用户交互。
  6. 进行编译、链接,并将生成的可执行文件烧录到开发板上运行。

1.硬件接线,安装串口驱动

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

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

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

2.使用SecureCRT链接开发板后台

首先打开“SecureCRT.exe”

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

选择自己的端口进行链接

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

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

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

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

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

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

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

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

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

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

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

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

3.交叉开发的操作流程

1.编写源代码文件

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

main.c主函数代码
#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开发板实现贪吃蛇_开发板_13

3.将程序文件传输到 ARM板

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

rx  文件名
rx  hello_world

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

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

4.执行上述命令后 会激活 SecureCRT的文件传输机制,用户需要点击 菜单栏上的 ”传输“ ”发送 xModue“ 找到要传输的文件 即可开始传输

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

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

5.修改文件权限

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


chmod  权限码   文件名

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

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

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


chmod  0777  hello_arm
chmod  +x  hello_arm

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

6.执行程序

./程序文件名

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

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

7.项目实现

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

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

贪吃蛇项目文件