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制作的,真心感觉漂亮,反正我是做不出来的……

最新文章

  1. Java--笔记(7)
  2. React笔记整理
  3. boundingRectWithSize
  4. [Algorithms(Princeton)] Week1 - Percolation
  5. duilib中的V和H布局中滚动条问题
  6. javaweb学习总结三(枚举)
  7. [Swift]LeetCode889. 根据前序和后序遍历构造二叉树 | Construct Binary Tree from Preorder and Postorder Traversal
  8. [LeetCode&Python] Problem 101. Symmetric Tree
  9. 一张图片资源要占用多大内存xhdpi xxhdpi
  10. jqgrid获取数据条数
  11. python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
  12. maven ----> 子工程中引入父工程
  13. laravel教程入门笔记
  14. Git 基础 —— 常用命令
  15. sass使用指南
  16. TeamWork#3,Week5,Scrum Meeting 11.16
  17. 从零开始编写自己的C#框架(25)——网站部署 【转】
  18. 内核blackhole
  19. BZOJ3998:[TJOI2015]弦论——题解
  20. Ant 编译项目资源不足

热门文章

  1. The 6th Zhejiang Provincial Collegiate Programming Contest->ProblemF:80ers' Memory
  2. 【技术贴】webservice cxf2 客户端动态调用报错No operation was found with the name
  3. Zookeeper + Hadoop + Hbase部署备忘
  4. rand5()产生rand7()
  5. VC中支持中文的字符串比较函数
  6. 如何利用python使用libsvm
  7. UNICODE,GBK,UTF-8区别
  8. JXL读取Excel日期时间不准确
  9. linq .dbml转化成sql脚本
  10. [swustoj 1097] 2014