项目报告
题 目: 基于STM32F4 的UCGUI的移植(带UCOS)
学 校: ***
指导教师: 无
视频观看地址:http://v.youku.com/v_show/id_XNjE0ODI3MTA0.html
题 目: 基于STM32F4 的UCGUI的移植(带UCOS)
关键词: STM32F4 TFT UCGUI TSC2046
摘要
利用STM32F4的FSMC(flexible static memory controller),译为静态存储控制器,来驱动液晶屏幕。原理是STM32F4的FSMC驱动NOR\PSRAM时,时序和8086时序十分相似。
- 引言
现在工业应用中对实时性,界面的美观性都用相当高的要求。而UCOS+UCGUI可以和好的实现。移植这些只是作为学习用,为以后在设计中有用到的是后打个基础。 - 系统方案
1,上UCOS官网下载源代码。 http://micrium.com/page/downloads/ports/st/stm32
2,参考 《嵌入式实时操作系统μCOS-II原理及应用》 任哲编著,
一步一移植UCOS。
3,下载UCGUI源码。
4,编写TFT底层驱动代码,移植UCGUI。 - 系统硬件设计
硬件连接:
PD14-FSMC-D0 ----LCD-DB0
PD15-FSMC-D1 ----LCD-DB1
PD0-FSMC-D2 ----LCD-DB2
PD1-FSMC-D3 ----LCD-DB3
PE7-FSMC-D4 ----LCD-DB4
PE8-FSMC-D5 ----LCD-DB5
PE9-FSMC-D6 ----LCD-DB6
PE10-FSMC-D7 ----LCD-DB7
PE11-FSMC-D8 ----LCD-DB8
PE12-FSMC-D9 ----LCD-DB9
PE13-FSMC-D10 ----LCD-DB10
PE14-FSMC-D11 ----LCD-DB11
PE15-FSMC-D12 ----LCD-DB12
PD8-FSMC-D13 ----LCD-DB13
PD9-FSMC-D14 ----LCD-DB14
PD10-FSMC-D15 ----LCD-DB15
TFT控制信号线
PD4-FSMC-NOE ----LCD-RD
PD5-FSMC-NEW ----LCD-WR
PD7-FSMC-NE1 ----LCD-CS
PD11-FSMC-A16 ----LCD-RS
PEG10 ----LCD-RESET
PD13-FSMC-A18 ----LCD-BLACK-LIGHT
触摸屏TSC2046控制线
PB10-SPI2-SCK ----TSC2046-SPI -SCK
PC3-SPI2-MOSI ----TSC2046-SPI - MOSI
PC2-SPI2-MISO ----TSC2046-SPI–MISO
PB14 ----TSC2046-SPI-CS
PD6 ----TSC2046- INT_IRQ - 系统软件设计
在移植UCGUI中,最重要的是两个基本底层函数的编写,一个是画点函数,另外一个是读点函数。
void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)
{
GUI_SetPoint(x,y,PixelIndex);
}
unsigned int LCD_L0_GetPixelIndex(int x, int y)
{
return GUI_GetPoint(x,y);
}
在移植UCOS中,重要的是UCOS内核和M4内核结合部分程序的编写,因为UCOS是一个实时的操作系统,说以中断函数部分非常的重要(中断函数部分代码详见程序源码) - 系统创新
利用了STM32F4 的FSMC驱动NOR\PSRAM时的时序和TFT液晶驱动芯片的时序的相似性,来提高液晶屏幕的刷屏速度。 - 评测与结论
系统测试方法:利用UCGUI自带的刷屏测试DEMO。
达到的指标: 50HZ刷屏速度。
附录
正面
背面: