文档介绍:STM32大作业报告
学生姓名:
学号:
所在院系: 光电信息与计算机工程学院
专业班级:
授课教师:
完成时间: 2016年
前言
随着科学技术的不断进步,嵌入式近些年来逐渐兴起,其领域比较新,发展非常迅速,由于它属于新兴领域,接触的人并不是很多,但是嵌入式在各种电子设备上的应用越来越越广泛,并且各种电子设备也在朝着嵌入式微系统,智能化的方向前进。STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核。作为21世纪的人才,为了与社会实际需要相衔接,提高我们的学习兴趣,利用STM32系列单片机进行了一次嵌入式系统设计。
摘要
在本次作业中采用STM32系列中的STM32F103RCT6微控制器芯片,采用ALIENTEK战舰STM32开发板,使用MiniSTM32开发板上的 LCD 接口,来点亮 TFTLCD,实现触摸屏功能。
课程设计任务要求
本次的课程设计目的是实现一个经典的贪吃蛇游戏,整个游戏实现功能分别为:
1、初始化程序。
2、随机红点、左转、右转、判断边框。
系统硬件设计
硬件设计原理图
根据此硬件设计图再结合软件设计就能做出此游戏。
系统软件实现
此次的课程设计在于开发个贪吃蛇游戏,其流程图如下图所示。
程序流程图
为方便介绍,此软件实现只给出主要程序部分:
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
构成的串行总线, 可发送和接收数据。在 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_SCL