程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 基於野火M3開發板(STM32F103VET6)的迷宮小球(重力感應控制)游戲開發

基於野火M3開發板(STM32F103VET6)的迷宮小球(重力感應控制)游戲開發

編輯:關於C語言

2013-03-03

這是研一上學期《實時嵌入式系統實驗》課程的大作業,是利用野火板的資源,加上一個AHRS(Attitude and Heading Reference System,姿態航向系統參考模塊)模塊,利用重力感應控制小球在迷宮中前進。

重力感應模塊。開始,我在網上買了一個野火版的擴展模塊——MMA7455三軸加速度傳感器,36塊錢,I2C總線。

野火附贈例程裡相關例子,用的I2C1(STM32F103VET6有兩個硬件I2C,I2C1和I2C2),經測試可用。但是遇到一個問題,I2C1的PB6-I2C1SCL和PB7-I2C1SDA兩個引腳被觸摸屏XPT2046的信號線占用(PB6:XPT2046-INT ,PB7:XPT2046-CS),使用I2C2總是遇到錯誤,想用軟件I2C,在網上找到一些代碼,也沒移植成功,所以買到的MMA7455就不能用了。同組的同學從師兄那裡借到一個AHRS模塊(介紹在此),核心是塊STM32F103T8,燒入程序後,模塊就能把解算出的當前俯仰、橫滾、航向、氣壓高度和溫度數據通過串口源源不斷發送出來。相對於兩個軸的傾角數據(俯仰角和滾轉角)對於我足矣,所以我修改了發送協議,讓模塊只發送俯仰角和滾轉角。原來的數據是在串口助手上顯示的,看起來是浮點型,本質是字符串,我不需要這麼高的精度,所以我把它平移若干位,變成8位整形數據,並修改了發送頻率,大約(采用軟件延時)5Hz。 為方便調試,我讓AHRS模塊的數據通過USART3發到野火板的同時,野火板通過USART1把數據轉發PC,在PC串口助手上顯示。接收可用USARTReceiveData()完成,發送可用庫函數USARTSendData()完成,注意需等待確實發送完畢再進行下一步,不然容易出錯,而且收發的數據都是uint16t型。

a=USARTReceiveData(USART3);   `//接受數據

while(USARTGetFlagStatus(USART1, USARTFLAG_TC) == RESET); `       //等待發送完成  

野火板我們使用了USART1和USART3、觸摸屏、SD卡、文件系統以及漢字字庫,根據野火自帶例程修改而來。在SD卡裡放置背景圖片,BMP格式。在顯示不同圖片以及跳入、跳出循環時,注意觸摸標志位等的置位的清零。

PS:游戲准備和完成時顯示的圖片是由組裡某位女同學用PhotoShop制作的,真心感覺漂亮,反正我是做不出來的……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved