基于野火M3开发板(STM32F103VET6)的迷宫小球(重力感应控制)游戏开发
2013-03-03

这是研一上学期《实时嵌入式系统实验》课程的大作业,是利用野火板的资源,加上一个AHRS(Attitude and Heading Reference System,姿态航向系统参考模块)模块,利用重力感应控制小球在迷宫中前进。
重力感应模块。开始,我在网上买了一个野火版的扩展模块——MMA7455三轴加速度传感器,36块钱,I2C总线。

野火附赠例程里相关例子,用的I2C1(STM32F103VET6有两个硬件I2C,I2C1和I2C2),经测试可用。但是遇到一个问题,I2C1的PB6-I2C1_SCL和PB7-I2C1_SDA两个引脚被触摸屏XPT2046的信号线占用(PB6:XPT2046-INT ,PB7:XPT2046-CS),使用I2C2总是遇到错误,想用软件I2C,在网上找到一些代码,也没移植成功,所以买到的MMA7455就不能用了。同组的同学从师兄那里借到一个AHRS模块(介绍在此),核心是块STM32F103T8,烧入程序后,模块就能把解算出的当前俯仰、横滚、航向、气压高度和温度数据通过串口源源不断发送出来。相对于两个轴的倾角数据(俯仰角和滚转角)对于我足矣,所以我修改了发送协议,让模块只发送俯仰角和滚转角。原来的数据是在串口助手上显示的,看起来是浮点型,本质是字符串,我不需要这么高的精度,所以我把它平移若干位,变成8位整形数据,并修改了发送频率,大约(采用软件延时)5Hz。 为方便调试,我让AHRS模块的数据通过USART3发到野火板的同时,野火板通过USART1把数据转发PC,在PC串口助手上显示。接收可用USART_ReceiveData()完成,发送可用库函数USART_SendData()完成,注意需等待确实发送完毕再进行下一步,不然容易出错,而且收发的数据都是uint16_t型。
if(USART_GetFlagStatus(USART3, USART_FLAG_RXNE)==SET); //确认收到数据
a=USART_ReceiveData(USART3);//接受数据
USART_SendData(USART1,a); //通过串口1转发给PC
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); //等待发送完成
野火板我们使用了USART_1和USART_3、触摸屏、SD卡、文件系统以及汉字字库,根据野火自带例程修改而来。在SD卡里放置背景图片,BMP格式。在显示不同图片以及跳入、跳出循环时,注意触摸标志位等的置位的清零。


PS:游戏准备和完成时显示的图片是由组里某位女同学用PhotoShop制作的,真心感觉漂亮,反正我是做不出来的……
基于野火M3开发板(STM32F103VET6)的迷宫小球(重力感应控制)游戏开发的更多相关文章
- cocos2d-x游戏开发实战原创视频讲座系列1之2048游戏开发
cocos2d-x游戏开发实战原创视频讲座系列1之2048游戏开发 的产生 视持续更新中.... 视频存放地址例如以下:http://ipd.pps.tv/user/1058663622 ...
- Headless Android开发板的调试及远程显示和控制
最近在调试msm8996的开发板,由于主板和LCD子板还没回来,所以先回的核心板算是个Headless的Android Device.核心板有独立供电,另外还有USB Type-C.FAN.HDMI. ...
- CC2540开发板学习笔记(六)——AD控制(自带温度计)
一.实验目的 将采集的内部温度传感器信息通过串口发送到上位机 二.实验过程 1.寄存器配置 ADCCON1(0XB4)ADC控制寄存器1 BIT7:EOC ADC结束标志位0:AD转换进行中 ...
- unity3D游戏开发实战原创视频讲座系列13之帽子戏法游戏开发(预告)
文件夹 第一讲 游戏演示项目创建 第二讲 游戏场景的编辑 第三讲 帽子的移动 第四讲 炮弹的产生 第六讲 游戏界面的完好 第七讲 各种UI的制作 第八讲 分数和爆炸特效 视持续更新中.. ...
- unity3D游戏开发实战原创视频讲座系列11之相扑游戏开发并公布到Win\WP8
解说文件夹 第一讲 游戏的演示和资源介绍 第二讲 场景的建设 第三讲 玩家的移动 第四讲 对手的AI(让对手动起来) 第五讲 游戏的管理(上) 第六讲 游戏的管理(下) 第七讲 公布到Win8系 ...
- 4418开发板基于Linux-c测试程序的编译和运行
基于iTOP4418开发板的Linux-c的测试程序iTOP-4418 开发板可以运行的文件系统很多,在具体的文件系统上实现特定功能前,可以使用 Linux-c 程序来测试硬件以及驱动.而且这些程序很 ...
- 基于uFUN开发板的心率计(一)DMA方式获取传感器数据
前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...
- 漫谈LiteOS之开发板-LiteOS移植(基于GD32450i-EVAL)
1 为什么移植? 嵌入式设备的芯片型号和外设的差异较大,资源有限.而RTOS无法适配集成所有的驱动,因此会先适配部分开发板,然后通过移植使得适配更多的开发板. 可移植性是嵌入式操作系统与普通操作系统的 ...
- 【STM32-V5】STM32F407开发板开源, 丰富软件资源, 强劲硬件配置, 配套500实例, 10套手册带视频教程2019-12-12
淘宝购买地址:购买地址链接 从2013年5月份发布至今,开发板硬件更新过6个版本,软件资料更新过85次.当前标准库最新版本V8.8,HAL库最新版本V1.1 安富莱微信公共平台,欢迎大家关注(打造高质 ...
随机推荐
- sql批量删除wordpress所有日志修订revision
wordpress日志修订是所有速度慢的罪恶之源,每次在后台发布或修改文章的时候,数据库都会产生一个revision版本的记录,几百篇日志会有几千条日志修订的记录,如果更多文章的话,那一个网页打开可能 ...
- Spring在代码中获取bean的几种方式
方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类ApplicationObj ...
- jquery ajax 访问webServer的xml文件
最近项目中要使用到通过ajax访问webServer的xml文件,通过下面的方式可以直接访问webServer的xml文件,不需要在web.xml中进行任何配置.它的返回参数就是服务器上的xml文件. ...
- 企业级 Linux 安全管理实例(1)
公司企业多用Linux服务器,其中涉及到的一些安全管理对于安全运维人员来说是必不可少的应知技能, 以下案例沿着背景->需求->具体要求->操作步骤的流程进行描述,可以加深对安全管理的 ...
- dup和dup2函数以及管道的实现
疑问:管道应该不是这样实现的,因为这要求修改程序的代码 dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符.它们经常用来重定向进程的stdin.stdout和stderr. ...
- CHtmlView类的中文介绍
http://zhidao.baidu.com/link?url=h8FaKA6FMNXzYJu_XO-_buBxuGdM0jozKUSVv6pgEPsvhTB2-xLltH-jVLDDJKMBAkn ...
- dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程
*1 dom4j解析器 1)CRUD的含义:CreateReadUpdateDelete增删查改 2)XML解析器有二类,分别是DOM和SAX(simple Api for xml). ...
- 蓝牙(2)用BluetoothAdapter搜索蓝牙设备示例
注意在搜索之前要先打开蓝牙设备 package com.e.search.bluetooth.device; import java.util.Set; import android.app.Acti ...
- 手机通过WIFI连上ZXV10 H618B路由器但不能上网问题的解决
前几天朋友帮忙拿到一个ZXV10 H618B路由器,一看需要12V供电,还好以前留下一个12V输出的DC充电器,关键时刻用上了,先大概下载了此路由器的用户手册,发现原来是08年的产品,都5年了. 开始 ...
- 树莓派raspbian安装配置(基本配置+中文配置+远程桌面+lighttpd+php+mysql)
raspbian为树莓派的官方系统,基于Debian裁剪过的Linux系统 其配置过程如下 烧录镜像 首先从树莓派的官方网站上下载镜像和镜像工具 http://www.raspberrypi.org/ ...