stm32课程设计贪吃蛇.doc

上传人:F****n 文档编号:98042676 上传时间:2019-09-07 格式:DOCX 页数:14 大小:2.47MB
返回 下载 相关 举报
stm32课程设计贪吃蛇.doc_第1页
第1页 / 共14页
stm32课程设计贪吃蛇.doc_第2页
第2页 / 共14页
stm32课程设计贪吃蛇.doc_第3页
第3页 / 共14页
stm32课程设计贪吃蛇.doc_第4页
第4页 / 共14页
stm32课程设计贪吃蛇.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《stm32课程设计贪吃蛇.doc》由会员分享,可在线阅读,更多相关《stm32课程设计贪吃蛇.doc(14页珍藏版)》请在金锄头文库上搜索。

1、STM32大作业报告 学生姓名: 学 号: 所在院系: 光电信息与计算机工程学院 专业班级: 授课教师: 完成时间: 2016年 前言随着科学技术的不断进步,嵌入式近些年来逐渐兴起,其领域比较新,发展非常迅速,由于它属于新兴领域,接触的人并不是很多,但是嵌入式在各种电子设备上的应用越来越越广泛,并且各种电子设备也在朝着嵌入式微系统,智能化的方向前进。STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核。作为21世纪的人才,为了与社会实际需要相衔接,提高我们的学习兴趣,利用STM32系列单片机进行了一次嵌入式系统设计。摘要在本次作业中采用STM32

2、系列中的STM32F103RCT6微控制器芯片,采用ALIENTEK战舰STM32开发板,使用MiniSTM32开发板上的 LCD 接口,来点亮 TFTLCD,实现触摸屏功能。解决党委自身和基层党支部存在的的突出问题,发挥各村、社区、机关单位党支部在当前城市征迁、园区建设、招商引资、服务群众、维护稳定的作用,我镇党委高度重视,制定了切合临淮实际的活动实施方案,按照中央规定的活动步骤和要求扎实有效的开展了基层组织建设年活动。第 1 页 共 14 页1、 课程设计任务要求 本次的课程设计目的是实现一个经典的贪吃蛇游戏,整个游戏实现功能分别为: 1、初始化程序。 2、随机红点、左转、右转、判断边框。

3、2、 系统硬件设计硬件设计原理图 根据此硬件设计图再结合软件设计就能做出此游戏。3、 系统软件实现 此次的课程设计在于开发个贪吃蛇游戏,其流程图如下图所示。程序流程图为方便介绍,此软件实现只给出主要程序部分:1、本例程提供了硬件平台的初始化GPIO是常规输入/输出端口,STM32F103RCT6有PA、PB、PC、PD、PE共5个16位的GPIO。STM32的GPIO都可编程,具有很多复用功能。GPIO可以配置为很多总模式,这些模式有:输入浮空、输入上拉、输入下拉、模拟输入、开漏输入、推挽输出、推挽复用、开漏复用。通过对GPIO寄存器编程,可以设置每个端口的工作模式。24C02 EEPROM是

4、开发板板载的 2Kbit(256 个字节)EEPROM ,型号为:24C02,用于掉电数据保存。因为 STM32 内部没有 EEPROM,所开发板外扩了24C02,用于存储重要数据,用来做IIC 实验,该芯片直接挂在 STM32 的 IO 口上。IIC(InterIntegrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。 它是由数据线 SDA 和时钟 SCL 构成的串行总线, 可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。IIC 总线在传送数

5、据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。应答信号: 接收数据的 IC 在接收到 8bit 数据后, 向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。/* 名 称:AT24CXX_Init(void)* 功 能:初始化IIC接口*/ /初始

6、化IIC接口void AT24CXX_Init(void)IIC_Init();void IIC_Init(void) GPIO_InitTypeDef GPIO_InitStructure;/RCC-APB2ENR|=14;/先使能外设IO PORTC时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; /推挽输出GPIO_I

7、nitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC, &GPIO_InitStructure); IIC_SCL=1;IIC_SDA=1;/* 名 称:void CMLCD_Init(void)* 功 能:初始化触摸屏的硬件接口*/void CMLCD_Init(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);/使能PORTC时钟GPIO_InitStructure.GPIO_Pin = GP

8、IO_Pin_0|GPIO_Pin_3|GPIO_Pin_13;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /设置成推免输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure);/初始化GPIOC 0 3 13GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2|GPIO_Pin_1; /初始化GPIOC 2 1GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FL

9、OATING;/浮空输入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC, &GPIO_InitStructure);TPEN=1; 2、贪吃蛇功能控制SPI是串行外设端口,是一种同步串行外设端口,它可以使MCU与各种外围设备以串行方式进行通信、交换信息。STM32的SPI支持全双工同步传输,可选择以8或16位传输帧格式进行传输,支持多种模式。USART为STM32的同步异步接收器。它提供了一种灵活的方法与使用异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。另外,

10、它还允许多处理器通信。USART也可以使用DMA方式直接将接受的数据存储到内存或从内存中批量发送数据,也支持多种中断方式。TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid CrystalDisplay。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT) ,可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。ALIENTEK 提供的 2.8寸TFTLCD 模块,其驱动芯片有很多种类

11、型,比如有:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/SPFD5408/SSD1289/1505/B505/C505/NT35310/NT35510 等。LED(DS0 和 DS1)。其电路在ALIENTEK MiniSTM32开发板上默认是已经连接好了的。DS0接PA8,DS1接PD2。/* 名 称:int main(void) * 功 能:主函数 */ #include led.h#include delay.h#include sys.h#include usart.h#include lcd.h#

12、include tanchishe.h#include cmlcd.h#include timeit.h#include stdlib.h/画一个大点(2*2的点) /x,y:坐标/color:颜色void TP_Draw_Big_Point(u16 x,u16 y,u16 color) POINT_COLOR=color;LCD_DrawPoint(x,y);/中心点 LCD_DrawPoint(x+1,y);LCD_DrawPoint(x,y+1);LCD_DrawPoint(x+1,y+1); int main(void) u8 sta,sta1;u16 rand_color;delay_init(); /延时函数初始化 uart_init(9600); /串口初始化为9600LED_Init(); /初始化与LED连接的硬件接口 LCD_Init();time_init();CMLCD_Init(); / 触摸屏初始化AT24CXX_Init(); /eeprom 初始化sta1=TP_Get_Adjdata();if(!sta1)sta=CMLCD_Adjust();if(sta)TP_Save_Adjdata(); /校准成功就保存参数LCD_ShowString(40,40,100,16,16,SUCCESSFUL!);else

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号