
基于STM32的多功能画板设计.docx
20页电子技术综合实践报告设计题目:基于STM32的多功能画板设计专 业: 班级学号: 学生姓名: 指导教师: 设计时间: 教师评语:成绩:摘要Cortex-M3是ARM公司为要求高性(1.25DhrystoneMIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核STM32 系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平本系统是基于 Cortex-M3 内核的 STM32 微控制器的画板设计,在硬件方面主要有最小系统板和TFTLCD液晶屏,在软件方面主要有TFTLCD液晶屏的驱动,触摸功能的驱动,及滤波算法设计 整个设计过程包括电子系统的设计技术及调试技术,包括需求分析,原理图的绘制,pcb 板的绘制,制板,器件采购,安装,焊接,硬件调试,软件模块编写,软件模块测试,系统整体测试等整个开发调试过程关键字:STM32,TFTLCD液晶屏,画板目录1. 系统描述 41.1 综述 41.2 系统框图 51.3 功能实现 52. 硬件设计 62.1 总体框架 62.2 STM32微控制器 72.2.1 芯片介绍 72.2.2 管脚图 72.2.3 电路原理图 82.2.3.1 STM32外围电路 82.2.3.2 按键 82.3 液晶屏 92.3.1 TFT彩屏简介 92.3.2 原理图 93. 软件设计 103.1 系统流程图 103.2 主要函数介绍 123.2.1 主函数 123.2.2 触摸屏函数介绍 143.2.3 LCD函数介绍 154. 开发与测试 164.1 开发环境 164.1.1 硬件设备 164.1.2 软件环境 164.2 开发步骤 164.2.1 需求分析 164.2.2 芯片选择 174.2.3 电路图设计 174.2.4 系统总体设计与测试 174.3 成果展示 175. 心得体会 186. 参考文献 191. 系统描述1.1 综述本系统是基于STM32微控制器所设计的多功能画板,该画板具有基本的绘画功能及画布颜色的选择,触摸屏校正等功能。
整个系统模块分为三个模块:MCU 主芯片最小板、液晶显示MCU 是 STM32 主芯片的最小板,上面有芯片工作需要的最少资源:时钟控制电路、复位电路、JTAG 控制口以及与外围电路相连的接口液晶屏采用的是显尚光电的DST2001PH TFTLCD,DST2001PH 的控制器为 ILI9320,采用26万色的TFTLCD屏,分辨率为320×240,采用16位的80并口1.2 系统框图 本设计采用STM32F103RBT6作为微控制器,其外围硬件模块主要包括电源模块﹑微处理器模块﹑按键及液晶显示屏接口电源采用USB供电,在设计过程中用PC供电其系统框图如图1.2所示1.3 功能实现1. 基本绘画功能,可以用手写笔在液晶屏画出一些简单的图形;2. 屏幕矫正,当按下KEY0时即进入屏幕矫正模式,按照指示用手写笔点击矫正标志,四次后如果矫正成功则进入绘画模式,否则显示误差并继续矫正;3. 画布颜色选择,每次进入绘画模式前都要进行画布颜色选择,在按RST标志后也可选择画布颜色;4. 画笔颜色选择;在绘画模式下,可随时点击下方的画笔颜色选择区以选择画笔颜色2. 硬件设计2.1 总体框架 图2.1为硬件设计的系统框架图,核心板主要有微控器及其必要的外围电路,还提供LCD的接口。
2.2 STM32微控制器2.2.1 芯片介绍STM32F103RBT6增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K 字节的闪存和 20K 字节的 SRAM),丰富的增强 I/O 端口和联接到两条 APB 总线的外设所有型号的器件都包含 2 个 12 位的 ADC、3个通用 16 位定时器和一个 PWM 定时器,还包含标准和先进的通信接口:多达2个 I2C 和 SPI、3个USART、一个USB和一个 CAN其管脚图如图2.2.2所示:2.2.2 管脚图图2.2.2 STM32F103RBT6增强型LQFP管脚2.2.3 电路原理图2.2.3.1 STM32外围电路STM32微控制器的工作电路如图2.2.3.1所示:2.2.3.1 STM32外围电路原理图2.2.3.2 按键WK_UP为电路板的复位键连接PA0引脚,KEY0和KEY1分别接到芯片的PA13、PA15引脚连接电路如图2.3.2所示:图2.3.2 按键电路2.3 液晶屏2.3.1 TFT彩屏简介TFT-LCD 即薄膜晶体管液晶显示器其英文全称为:Thin Film Transistor-Liquid Crystal Display。
TFT -LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量TFT -LCD 也被叫做真彩液晶显示器该模块有如下特点:1. 2.4/2.8两种大小的屏幕可选;2. 320×240 的分辨率;3. 16位真彩显示;4. 自带触摸屏,可以用来作为控制输入;5. 通用的接口本设计采用2.8寸TFTLCD屏2.3.2 原理图TFTLCD工作电路原理图如图2.3.2.1和图2.3.2.2所示:图2.3.2.1 2.8寸TFTLCD模块原理图图2.3.2.2 2.8寸TFTLCD模块接口图3. 软件设计3.1 系统流程图系统开机后工作的流程图如图3.1所示:3.2 主要函数介绍3.2.1 主函数int main(void){ u8 key;//变量定义 u8 i=0; Stm32_Clock_Init(9);//系统时钟初始化 delay_init(72); //延时初始化 LCD_Init(); //液晶屏初始化 KEY_Init(); //按键初始化 LED_Init(); //LED初始化 POINT_COLOR=BLUE;//画笔颜色初始化 Touch_Init(); //触摸功能初始化 Load_Drow_Dialog();//准备桌面 FillColorPad(); //填充可选颜色面板 while(1) { key=KEY_Scan();//扫描按键 ScanColorPad();//扫描色板 if(Pen_Point.Key_Sta==Key_Down)//如果触摸屏被按下 { Pen_Int_Set(0);//关闭触摸屏中断 do { Convert_Pos();//AD转换 Pen_Point.Key_Sta=Key_Up;//清除触摸屏状态 if(Pen_Point.X0>216&&Pen_Point.Y0<16)//RST被按下 { Load_Drow_Dialog(); FillColorPad(); //填充可选颜色面板 } else { Draw_Big_Point(Pen_Point.X0,Pen_Point.Y0);//画图 GPIOC->ODR|=1<<1; //PC1上拉 } }while(PEN==0);//如果PEN一直有效,则一直执行 Pen_Int_Set(1);//打开中断 }else delay_ms(10); //延时10ms if(key==1) //KEY0被按下 { LCD_Clear(WHITE); //清屏 Touch_Adjust(); // 屏幕校准 Save_Adjdata(); //保存较准过数据 Load_Drow_Dialog(); //初始化桌面 FillColorPad(); //填充色板 } i++; if(i==20) { i=0; LED0=!LED0; //LED0闪烁 } }; }3.2.2 触摸屏函数介绍1. void Touch_Init(void);外部中断初始化函数2. void Touch_Adjust(void);触摸屏校正函数,得到四个校正参数3. void Save_Adjdata(void);4. 保存较正参数;5. void Convert_Pos(void);转换结果,根据触摸屏的校准参数来决定转换后的结果,保存在X0,Y0中6. u16 ADS_Read_AD(u8 CMD);SPI读数据,从7843读取ADC的值。
3.2.3 LCD函数介绍1. void LCD_Init(void);初始化LCD2. void LCD_Clear(u16 Color); LCD清屏;3. void LCD_DrawPoint(u16 x,u16 y);画点;4. void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2);画线;5. void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);画一个矩形;6. void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color);在一个矩形中填充为color的颜色;7. void LCD_ShowString(u16 x,u16 y,const u8 *p);在某个坐标位置显示字符串4. 开发与测试4.1 开发环境4.1.1 硬件设备1. ULINK仿真器;2. 示波器;3. 万用表4.1.2 软件环境1. Altium Designer 13.1.2;2. mcuisp;3. Keil4 for MDK;4. 串口调试软件 SSCOM32.EXE4.2 开发步骤4.2.1 需求分析根据本次的课程设计题目,为了与实际结合,同时增加趣味性和实用性,我们决定设计一款基于STM32的多功能画板,除了完成基本的画板功能外还可以实现许多拓展。
4.2.2 芯片选择l 微处理器方面选择了 stm32f103RBT6 这款芯片,因为它具有足够大的闪存和内存,同时外围接口丰富,便于扩展功能l TFTLCD方面选择了2.8寸的带有触摸功能的显示屏该模块采用的是显尚光电的DST2001PH TFTLCD,DST2001PH的控制器为ILI9320,采用26万色的TFTLCD 屏,分辨率为320×240,采用16位的80并口因为这是一款主流的而且不至于太昂贵的显示屏4.2.3 电路。
