STM32综合实践_第1页
STM32综合实践_第2页
STM32综合实践_第3页
STM32综合实践_第4页
STM32综合实践_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南科技大学综 合 实 践 报 告综合实践任务书(指导教师填写)课程名称 自动化综合实践 学生姓名 专业班级 设计题目 基于STM32的信息显示设计 一、 综合实践目的1. 培养学生文献检索的能力,如何利用Internet检索需要的文献资料。2. 培养学生综合分析问题、发现问题和解决问题的能力。3. 培养学生综合运用知识的能力和工程设计的能力。4. 提高毕业班学生理论联系实际的能力。5. 提高学生设计报告撰写水平。二、 设计内容、技术条件和要求1设计内容以STM32为主机,设计一个信息显示系统,需要显示功能如下:(1)显示人员姓名,三个字用三种不同的颜色显示;(2)使用大字体显示;(3)显示该

2、人员的照片;(4)通过按键进行人员信息切换。2 设计要求 设计STM32的最小系统; 启动系统的按键电路设计。 绘制实现本设计内容的硬件电路(原理图),系统的组成框图。 编写本综合实践内容的软件设计(包含程序流程图和对程序注释)。 硬件实验部分可选用实验箱测试或仿真软件实现。三 时间进度安排按教学计划规定,综合实践课程的总学时为2周,其进度安排和时间大致分配如下:1. 十七周周一至周三 查阅资料、进行软、硬件初步设计;2. 十七周周四至周五 具体实现软硬件的设计功能;3. 十八周周一至周三 完善系统设计,调试、测试,形成完整的系统。4. 十八周周四至周五 总结设计过程,编写综合实践报告书,并答

3、辩。四 主要参考文献1 梁新元. 嵌入式系统开发. 电子工业出版社,20092 陈振林. 嵌入式硬件设计. 中国电力出版社,20073 STM32嵌入式微控制器快速上手. 电子工业出版社,20124 陈启军. 嵌入式系统及其应用:基于Cortex-M3内核和STM32F103系列微控制器的系统设计与开发. 同济大学出版社,2014五、设计分组及选题安排自动化122班全体学生,自动化123班部分生。指导教师签字: 2015年12月20日自动化综合实践报告目录1 设计项目简介1.1 系统功能描述1.2 目前该项目的类似产品的情况简介1.3 项目本身的特色2 总体设计2.1 总体方案设计框图3 硬件

4、设计3.1 主控芯片选型3.1.1 STM32F103X系列处理器简介3.1.2 功能介绍3.1.3 STM32电路图3.1.4 JTAG/SWD3.2 LCD显示屏3.2.1 LCD显示屏电路3.2.2 数据与显存对应关系图3.3 按键电路图4 软件设计4.1 LCD显示系统程序框图4.2 按键程序框图5 程序清单5.1 STM32启动程序5.2 LCD程序5.3 按键相关程序6 收获及体会 参考文献 1 设计项目简介1.1 系统功能描述以STM32为主机,设计一个信息显示系统,系统可以显示人员姓名,三个字用三种不同的颜色,并且可以使用大字体显示;此外,还应该具有显示该人员的照片,并通过按键

5、进行人员信息切换的功能。1.2 目前该项目的类似产品的情况简介本次所参加的设计项目,其目的是培养学生文献检索的能力,如何利用Internet检索需要的文献资料;培养学生综合分析问题、发现问题和综合运用知识解决问题的能力,以期能提高毕业班学生理论联系实际的能力,提高学生设计报告撰写水平。本次项目实习不具备任何创新点,关于该技术,在商业上已经运用的十分成熟,移动电话就是其中一个非常普遍的例子。1.3 项目本身的特色本次设计项目实习的特色点在于可以将本学期学习的嵌入式课程,通过亲自动手实践,加深了对学习的知识的了解,培养了理论联系实践的能力。此外,通过本次亲自动手编写程序,加深了对嵌入式的认识,简要

6、学习了STM32的相关知识。另外,本次程序编写主要使用模块化编程,对于老师所讲的模块化编程概念,让我觉得受益良多。通过本次实习,也让我明白了LCD显示屏的发光原理,并且明白了分辨率的概念。2 总体设计2.1 总体方案设计框图电源STM32LCD屏 按键3 硬件设计3.1 主控芯片选型对于微处理器,作为大学生,我们常见并且比较熟悉的当然是51单片机,但是51单片机功能单一,难以胜任较复杂系统的主控芯片。当需要处理比较复杂的系统的时候,当前较为流行,应用最普遍的应该是ARM架构的相关嵌入式处理器。ARM是Advanced RISC Machines的缩写,ARM,既可以认为是一个公司的名字,也可以

7、认为是对一类微处理器的通称,还可以认为是一种技术的名字。该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。该公司的特点是只设计芯片,而不生产。它提供ARM技术知识产权(IP)核,将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。在ARM的相关系列产品中,除了一些Unix图形工作站外,大多数ARM核心的处理器都使用在嵌入领域。到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75以上的市场份额。  全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器。  

8、;“掌上计算”相关的所有领域皆为其所主宰。主要应用领域为:消费类电子,无线、图像应用开放平台、存储、自动化、智能卡、SIM卡等。  ARM处理器的三大特点:耗电少功能强、16位/32位双指令集、众多合作伙伴。ARM公司开发了很多系列的ARM处理器核,目前最新的系列是ARM11。  另外还有ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。“A”系列面向尖端的基于虚拟内存

9、的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M系列内核,其性能优良,按内核架构的不同,意法半导体公司推出了满足不同领域、不同要求的32系列处理器。目前市面流通的型号有:基本型:STM32F101R6、STM32F101C8、STM32F101R8、STM32F101V8、STM32F101RB、STM32F101VB。增强型:STM32F103C8、STM32F103R8、STM32F103V8、STM32F103RB、STM32F103VB、 STM32F103VE、STM32

10、F103ZE,本项目选用STM32F103X系列处理器3.1.1 STM32F103X系列处理器简介STM32F103X系列处理器共有STM32F103XC、STM32F103XD、STM32F103XE三个类型,是32位基于ARM Cortex-M3架构的带512K字节闪存的增强型微控制器,内含11个定时器、 3个ADC 、 13个通信接口,最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz。3.1.2 功能介绍 内核: ARM 32位的Cortex-M3 CPU 最高72MHz工作频率,在存储器的0等待周期访问1.25DMips/MHz(Dhrystone2.

11、1) 单周期乘法和硬件除法 存储器 从256K至512K字节的闪存程序存储器 高达64K字节的SRAM 带4个片选的静态存储器控制器。支持CF卡、SRAM、 PSRAM、 NOR,NAND存储器 并行LCD接口,兼容8080/6800模式 时钟、复位和电源管理 2.03.6伏供电和I/O引脚 上电/断电复位(POR/PDR)、可编程电压监测器(PVD) 416MHz晶体振荡器 内嵌经出厂调校的8MHz的RC振荡器 内嵌带校准的40kHz的RC振荡器 带校准功能的32kHz RTC振荡器 低功耗 睡眠、停机和待机模式 VBAT为RTC和后备寄存器供电 3个12位模数转换器, 1s转换时间(多达2

12、1个输入通道) 转换范围: 0至3.6V 三倍采样和保持功能 温度传感器 2 通道 12 位 D/A 转换器 DMA: 12 通道 DMA 控制器 支持的外设:定时器、 ADC、 DAC、 SDIO、I2S、 SPI、 I2C和USART 调试模式 串行单线调试(SWD)和JTAG接口 Cortex-M3内嵌跟踪模块(ETM) 多达112个快速I/O端口 51/80/112个多功能双向的I/O口,所有I/O口可以映像到16个外部中断;几乎所有端口均可容忍5V信号 多达11个定时器 多达4个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入 2个16

13、位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器 2个看门狗定时器(独立的和窗口型的) 系统时间定时器: 24位自减型计数器 2个16位基本定时器用于驱动DAC 多达13个通信接口 多达2个I2C接口(支持SMBus/PMBus) 多达5个USART接口(支持ISO7816, LIN,IrDA接口和调制解调控制) 多达3个SPI接口(18M位/秒), 2个可复用为I2S接口 CAN接口(2.0B 主动) USB 2.0全速接口 SDIO接口3.1.3 STM32电路图主控芯片部分电路图3.1.4 JTAG/SWDSTM32 开发板板载的标准 20 针 JTAG/SWD 接口电路如图所

14、示:JTAG/SWD 接口3.2 LCD显示屏3.2.1 LCD显示屏电路3.2.2 数据与显存对应关系图ILI9341液晶控制器自带显存,其显存总大小为 172820( 240*320*18/8),即 18 位模式( 26万色)下的显存量。模块的 16 位数据线与显寸的对应关系为 565 方式,如下图所示:16位数据与显存对应关系图最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越大,表示该颜色越深。3.3 按键电路图4 软件设计4.1 LCD显示系统程序框图开始结束显示写入显示内容设置坐标设置字体颜色和背景色初始化LCD设置FSMC模式I/O初始化4.2 按键程序框图是否

15、有按键按下?按键检测按键初始化开始 N是否为按键1?图片1 Y N返回数值图片2 Y 5 程序清单5.1 LCD程序5.1.1 主函数#include "includes.h"void Delay(u32 i);/*函数名:形参:返回值:函数功能:*/int main(void)SysTickConfig();/滴答时钟初始化, 获取比较准确的时间/UART1_Init();/串口1初始化LCD_Init();/LCD屏进行初始化Draw_Text_8_16_Str(20,50,WHITE,RED,hz_index);/在屏幕上打印汉字Draw_Text_8_16_Str(

16、60,70,RED,WHITE,"Welcome STM32");/在屏幕上打印字符/Paint_Bmp(0,0,240,320,car);Paint_Bmp(0,0,240,320,wen);while(1);/*函数名:形参:返回值:函数功能:*/void Delay(u32 i)for(;i>0;i-);5.1.2 LCD配置程序#include "includes.h"/管理LCD重要参数/默认为竖屏_lcd_dev lcddev;/写寄存器函数/regval:寄存器值void LCD_WR_REG(u16 regval) LCD->

17、LCD_REG=regval;/写入要写的寄存器序号 /写LCD数据/data:要写入的值void LCD_WR_DATA(u16 data) LCD->LCD_RAM=data; /读LCD数据/返回值:读到的值u16 LCD_RD_DATA(void) return LCD->LCD_RAM; /写寄存器/LCD_Reg:寄存器地址/LCD_RegValue:要写入的数据void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)LCD->LCD_REG = LCD_Reg;/写入要写的寄存器序号 LCD->LCD_RAM = LC

18、D_RegValue;/写入数据 /读寄存器/LCD_Reg:寄存器地址/返回值:读到的数据u16 LCD_ReadReg(u8 LCD_Reg) LCD_WR_REG(LCD_Reg);/写入要读的寄存器序号Delay_us(5); return LCD_RD_DATA();/返回读到的值 /开始写GRAMvoid LCD_WriteRAM_Prepare(void) LCD->LCD_REG=lcddev.wramcmd; /LCD写GRAM/RGB_Code:颜色值void LCD_WriteRAM(u16 RGB_Code) LCD->LCD_RAM = RGB_Code;

19、/写十六位GRAM相关参数设置: void LCD_Init(void)LCD_GPIO_Config();LCD_FSMC_Config();LCD_init_RGB(); /驱动芯片初始化/* 开背光 */LCD_DisplayOn();LCD_Display_Dir(0); /默认为竖屏LCD_Clear(BLUE);设置坐标:/Xpos:横坐标/Ypos:纵坐标void LCD_SetCursor(u16 Xpos, u16 Ypos) if(lcddev.id=0X9341) LCD_WR_REG(lcddev.setxcmd); LCD_WR_DATA(Xpos>>8)

20、; LCD_WR_DATA(Xpos&0XFF); LCD_WR_REG(lcddev.setycmd); LCD_WR_DATA(Ypos>>8); LCD_WR_DATA(Ypos&0XFF); 屏幕色点设置:/画点/x,y:坐标/POINT_COLOR:此点的颜色void LCD_DrawPoint(u16 x,u16 y,u16 c) LCD_SetCursor(x,y);/设置光标位置 LCD_WriteRAM_Prepare();/开始写入GRAMLCD->LCD_RAM=c; void LCD_DisplayOn(void)/开显示/* 开背光

21、*/GPIO_SetBits(GPIOB, GPIO_Pin_0);void LCD_DisplayOff(void)/关显示/*关背光 */GPIO_ResetBits(GPIOB, GPIO_Pin_0); 5.2 按键相关程序#include "includes.h"static void Delay(u32 time)while(time-);void Key_Config(void)GPIO_InitTypeDef GPIO_InitStruct;/打开时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE,ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2;GPIO_Init(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论