用STM32实现的一个打字游戏(通过串口在超级终端上显示)

2020-01-01 17:55发布

本帖最后由 Robin_King 于 2012-11-14 19:13 编辑

112.gif (938.06 KB, 下载次数: 6) 下载附件 2012-11-14 12:39 上传
先上图,GIF格式

做了一个打字游戏,只用到了串口这一外围资源(led可选),移植性好,移植到了STM32上,晒出来让大家指点一下,以便一块学习交流。

如果觉得上面图片不清楚,就看这个视频:http://v.youku.com/v_show/id_XNDc0MzM0NjYw.html

****************************************************************************************************************

游戏特点:


1.本游戏在STM32F103上实现,使用的软件平台是IAR 6.4。

    利用串口,在超级终端上显示,通过PC键盘获取输入。

    串口参数设置:57600 , 8 ,NONE , 1 。

2.以守阵地的地对空作战模式展现游戏形式,趣味性强。


3.游戏难度等级有7级,可以自行设定当前游戏等级。


4.游戏分有生存模式和正常模式,可以自由设定。


5.代码的可移植性高。可移植到许多平台上,已经在AVR32UC3A0512和STM32上实现移植。


6.游戏源代码开放,我会在后面根据大家要求放上下载源代码的链接,以方便一起学习交流!


**************************************************************************************************************


下面简单描述一下游戏设计思路:


这个游戏以防空作战的模式来增加游戏的趣味性。用从屏幕最上方出现的单个字符来表示伞兵,

以一个字符串来表示横向飞过的轰炸机,轰炸机在飞过的过程中投下用单个字符表示的炸弹。玩

家可通过键盘输入代表伞兵或炸弹的字符来击中目标,如果击中,就会从阵地上发射出用特殊

符号(如*)表示的炮弹来消灭目标。玩家也可通过连续输入轰炸机上的字符串来消灭轰炸机。

如果伞兵或飞机炸弹落在阵地上,那块阵地会被攻克而消失,如果所有阵地被攻克,则游戏结束。

每消灭一个敌方目标,会增加相应的分值,消灭轰炸机时,会得到较高的分值奖励。



**************************************************源代码下载链接*******************************************



不好意思,先前忘记clean工程了,所以有点大,现在把STM32的工程clean了一下,可以上传成附件了:

STM32源码: TypingGameV1.0.zip (3.39 MB, 下载次数: 302) 2012-11-14 14:43 上传 点击文件名下载附件
stm32源码



**************************************************************************************************************************


跨平台上具体移植方法及更新的软件,我会在本帖的后续更新中给出。

有不少BUG,还望大家多多批评指正!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
42条回答
Robin_King
2020-01-03 09:01
本帖最后由 Robin_King 于 2012-11-19 17:23 编辑

现在发布一下帖子的更新

更新的内容包括:

1.最新、最全的源代码
2.代码的详细移植方法

*****************************源代码更新内容及下载链接*********************************************
最新代码下载链接,解决了上一版本的几个错误。并将我使用的三个平台(ATmega32、AVR32UC3A0512和
STM32F103)的代码全放在了一起,以供大家学习交流。

TypingGameScr.zip (7.01 MB, 下载次数: 183) 2012-11-19 16:41 上传 点击文件名下载附件
更新后的程序


文件中包括了移植本游戏所需要的全部文件,但底层的接口需要移植者根据自己的平台添加。

文件夹内容介绍:

在application中,包含了实现这个游戏的一些基本模块,但不包括底层的接口。
app_cfg.h中包含了整个项目中通用的一个配置。
main.c中,包含了游戏的主要控制函数,通过控制台进入游戏(输入game后回车)。
Examples中包含了笔者在学习中用到的三个平台的底层接口的例子及相应平台完整的工程包,相应的软硬件
信息都在里面有说明。

*******************************详细移植步骤****************************************************

移植方法:
1.在application中,自建led模块(建立方法以你所采用的编译器工程要求为准),模块中的led.h向外提供
LED1_ON(),LED1_OFF(),LED2_ON(),LED2_OFF()个接口。
2.在application中,自建serial模块,serial.h向外提供serial_in(char)和serial_out(char*)和uart_init()三个接口
,uart_init()完成系统波特率的设定等。
3.在顶层的app_cfg.h中,配置相应的文件,本示例的app_cfg.h中,提供了__MCU_AVR_32__,
__MCU_AVR_UC_3A__,__MCU_STM32_F103__三个用户定义标识,分别对应mega32、AVR32UC3A0512和
STM32F103三款芯片的配置。移植时根据自己的软硬件环境,修改或增加所需要的宏或头文件。
4.在项目中添加好这些文件,在编译器的工程配置中,加入经第3步配置后的合适自定义标识,之后编译、
调试、下载验证。

注意:硬件平台要保证有2K(含2K)以上的SRAM,20K以上的flash.



**************************************The end****************************************************************

一周热门 更多>