Nwatch在stm32上的移植

Nwatch在stm32上的移植

本文目标:Nwatch在stm32上的移植

按照本文的描述,应该可以跑通实验并举一反三。

先决条件:装有编译和集成的开发环境,比如:Keil uVision5、STM32CubeMX

使用外设:USART、IIC

前言

NWatch是一个很漂亮的、基于STM32的开源手表项目,我这次学习是为了配合使用FreeRTOS而进行学习的。

官方链接为:

  • GITHUB:https://github.com/ZakKemble/NWatch

  • 作者博客:https://blog.zakkemble.net/diy-digital-wristwatch/

    实验目的

在stm32的平台上移植NWatch的代码,出于学习目的,移植一个游戏进行学习,方便后期继续进行学习FreeRTOS的相关知识点。

移植

在这里插入图片描述

移植这3个文件可以在我自己的硬件平台上进行实战,移植的难点就是关于lcd的显示,显示的驱动写得好,移植就顺畅,写得不好移植费劲。

工程中的相关驱动:

在这里插入图片描述

开一任务,进行游戏,运行如下的代码:

game1_task任务相关代码片段

void game1_task(void *params)
{		
	
	uint8_t dev, data, last_data;
	
	g_framebuffer = LCD_GetFrameBuffer(&g_xres, &g_yres, &g_bpp);
	draw_init();
    
	uptMove = UPT_MOVE_NONE;

	ball.x = g_xres / 2;
	ball.y = g_yres - 10;
	ball.velX = -0.5;
	ball.velY = -0.6;
//	ball.velX = -1;
//	ball.velY = -1.1;

	blocks = pvPortMalloc(BLOCK_COUNT);
   memset(blocks, 0, BLOCK_COUNT);
	
	lives = 3;
	score = 0;
	platformX = (g_xres / 2) - (PLATFORM_WIDTH / 2);

	while (1)
	{
		
		/* 读取红外遥控器 */
		if (0 == IRReceiver_Read(&dev, &data))
		{
						if (data == 0x00)
						{
								data = last_data;
						}
						
						if (data == 0xe0) /* Left */
						{
								btnLeft();
						}

						if (data == 0x90)  /* Right */
						{
								btnRight();
						}
						last_data = data;
		}
			game1_draw();
			draw_end();
			// vTaskDelay(5);
	}
}
extern void game1_task(void *params);
xTaskCreate(game1_task, "GameTask", 128, NULL, osPriorityNormal, NULL);

结果

在这里插入图片描述

这里的核心就是要绘制那些点,哪些地方显示,哪些地方隐藏,球碰到了砖块会怎么样,碰到墙会怎么样,都是在处理这些逻辑。可以看到我这里按下我手里的遥控器,按下向左键时,挡球板向左移动,按下右键时,挡球板向右移动,当然我这里都是学习了前人的经验进行的实战,此次工程为我后面学习更多的freertos知识点提供一些思路,后续会继续学习。

本文中使用的工程

相关推荐

  1. 怎么stm32跑自己神经网络

    2024-03-11 10:46:03       8 阅读
  2. STM32移植SFUD

    2024-03-11 10:46:03       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 10:46:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 10:46:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 10:46:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 10:46:03       18 阅读

热门阅读

  1. 我的创作纪念日

    2024-03-11 10:46:03       20 阅读
  2. MetaGPT部分源码解读

    2024-03-11 10:46:03       24 阅读
  3. wpf ListView 列表绑定demo

    2024-03-11 10:46:03       21 阅读
  4. 低代码测试自动化

    2024-03-11 10:46:03       23 阅读
  5. 【力扣】2562. 找出数组的串联值

    2024-03-11 10:46:03       61 阅读
  6. Rust基础知识讲解

    2024-03-11 10:46:03       19 阅读
  7. 基础 | JVM - [JVM 调优]

    2024-03-11 10:46:03       31 阅读
  8. Spring MVC ViewNameMethodReturnValueHandler原理解析

    2024-03-11 10:46:03       22 阅读