移植了一个基于stm32的贪吃蛇游戏,红外遥控控制方向,升级后速度提升,做得不是很好,大家莫笑!源码稍后奉上~
本实验将实现如下功能:利用外部中断,实现与实验3类似的效果,即:通过ALIENTEK战舰STM32开发板上载有的4个按钮(WK_UP、KEY0、KEY1和KEY2),来控制板上的2个LED(DS0和DS1)和蜂鸣器,其中WK_UP控制蜂鸣器,按一次叫,再按一次停;KEY2控制DS0,按一次亮,再按一次灭;KEY1控制DS1,效果同KEY2;KEY0则同时控制DS0和DS1,按一次,他们的状态就翻转一次。
STM32单片机源程序如下:
- #include "sys.h"
- #include "usart.h"
- #include "delay.h"
- #include "led.h"
- #include "key.h"
- #include "exti.h"
- #include "lcd.h"
- #include "snake.h"
- #include "timer.h"
- #include "remote.h"
- //主函数
- int main(void)
- {
- Stm32_Clock_Init(9); //系统时钟设置
- uart_init(72,9600); //串口初始化为9600
- delay_init(72); //延时初始化
- LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); //初始化与按键连接的硬件接口
- //EXTIX_Init(); //外部中断初始化
- LCD_Init();
- TIM4_Int_Init(50000,71);//定时50ms
- Remote_Init(); //红外接收初始化
-
- LCD_Clear(WHITE);
- POINT_COLOR=RED;
- LCD_ShowString(30,50,200,16,16,"STM32F103ZET6 Game Test");
- LCD_ShowString(30,70,200,16,16,"Game Name: SNAKE");
- LCD_ShowString(30,90,200,16,16,"2014/3/1");
-
- while(Remote_Scan()==0);//等待开始
-
- LCD_Clear(BLACK);
- Init_SNAKE(); //贪吃蛇初始化
- while(1)
- {
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
STM32贪吃蛇.rar
(477.78 KB, 下载次数: 153)
|