1 / 14
文档名称:

STM32课程设计贪吃蛇.docx

格式:docx   大小:2,532KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32课程设计贪吃蛇.docx

上传人:63229029 2017/5/29 文件大小:2.47 MB

下载得到文件列表

STM32课程设计贪吃蛇.docx

文档介绍

文档介绍:STM32 大作业报告学生姓名: 学号: 所在院系: 光电信息与计算机工程学院专业班级: 授课教师: 完成时间: 20 16年前言随着科学技术的不断进步,嵌入式近些年来逐渐兴起,其领域比较新,发展非常迅速, 由于它属于新兴领域, 接触的人并不是很多, 但是嵌入式在各种电子设备上的应用越来越越广泛, 并且各种电子设备也在朝着嵌入式微系统, 智能化的方向前进。 STM32 系列是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的 ARM Cortex-M 内核。作为 21 世纪的人才, 为了与社会实际需要相衔接, 提高我们的学****兴趣, 利用 STM32 系列单片机进行了一次嵌入式系统设计。摘要在本次作业中采用 STM32 系列中的 STM32F103RCT6 微控制器芯片,采用 ALIENTEK 战舰 STM32 开发板,使用 MiniSTM32 开发板上的 LCD 接口,来点亮 TFTLCD ,实现触摸屏功能。 3 一、课程设计任务要求本次的课程设计目的是实现一个经典的贪吃蛇游戏,整个游戏实现功能分别为: 1、初始化程序。 2、随机红点、左转、右转、判断边框。二、系统硬件设计硬件设计原理图根据此硬件设计图再结合软件设计就能做出此游戏。三、系统软件实现此次的课程设计在于开发个贪吃蛇游戏,其流程图如下图所示。 4 程序流程图为方便介绍,此软件实现只给出主要程序部分: 1 、本例程提供了硬件平台的初始化 GPIO 是常规输入/输出端口, STM32F103RCT6 有 PA 、 PB 、 PC 、 PD 、 PE 共5个16位的 GPIO 。 STM32 的 GPIO 都可编程,具有很多复用功能。 GPIO 可以配置为很多总模式,这些模式有:输入浮空、输入上拉、输入下拉、模拟输入、开漏输入、推挽输出、推挽复用、开漏复用。通过对 GPIO 寄存器编程,可以设置每个端口的工作模式。 24C02 EEPROM 是开发板板载的 2Kbit (256 个字节) EEPROM ,型号为: 24C02 ,用于掉电数据保存。因为 STM32 内部没有 EEPROM ,所开发板外扩了 24C02 ,用于存储重要数据,用来做 IIC 实验,该芯片直接挂在 STM32 的 IO 口上。 IIC(Inter - Integrated Circuit) 总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构 5 成的串行总线,可发送和接收数据。在 CPU 与被控 IC之间、 IC与 IC之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。 IIC 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。应答信号: 接收数据的 IC在接收到 8bit 数据后, 向发送数据的 IC发出特定的低电平脉冲,表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。/******************************************************************** *名称: AT24CXX_Init(void) *功能:初始化 IIC 接口********************************************************************/ // 初始化 IIC 接口 void AT24CXX_Init(void) { IIC_Init(); } void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; //RCC->APB2ENR|=1<<4;// 先使能外设 IO PORTC 时钟 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE ); = GPIO_Pin_12|GPIO_Pin_11; = GPIO_Mode_Out_PP ; // 推挽输出 = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); IIC_