基于正点原子F407开发版和SPI接口屏移植touchgfx完整教程

Posted 小灰灰搞电子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于正点原子F407开发版和SPI接口屏移植touchgfx完整教程相关的知识,希望对你有一定的参考价值。

一、相关软件包安装

1、打开cubemx包管理器

2、安装F4软件包

3、安装touchgfx软件包

二、工程配置

1、新建工程

2、sys配置

3、rcc配置


4、crc配置

5、添加touchgfx软件包

6、配置touchgfx软件包


将width和height改为自己屏幕尺寸

7、生成工程

三、代码修改

1、将屏幕相关驱动加载到工程

2、修改头文件支持c++

在头文件中加入

#ifdef __cplusplus
extern "C" 
#endif
	
,,,,,,

#ifdef __cplusplus

#endif

3、修改touchgfx源码

a、修改TouchGFXHAL.cpp文件中的void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect)函数,将数据刷新到屏幕

void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect)

		volatile uint16_t* buffer = getClientFrameBuffer()+(rect.y*DISPLAY_WIDTH)+rect.x;
    uint16_t height,i;
		
		LCD_Address_Set(rect.x,rect.y,rect.x+rect.width-1,rect.y+rect.height-1);
    
		LCD_WR = 1;
    for(height=0;height<rect.height;height++)
    
			for(i=0;i<rect.width;i++)
			
				//LCD_Write_HalfWord(buffer[i]);
				SPI1->DR = buffer[i]>>8;	 	  		
				while((SPI1->SR&1<<1)==0);
				SPI1->DR = (u8)buffer[i];	 	  		
				while((SPI1->SR&1<<1)==0);
			
			
			buffer += DISPLAY_WIDTH;
    
	

a、修改TouchGFXHAL.cpp文件中的新添加touchgfxTickHandler函数,为touchgfx提供时钟。在1ms定时器中调用。提供的时钟为20ms,屏幕刷新为50hz。

extern "C" void touchgfxTickHandler()

	static uint8_t ms = 0;
	static uint8_t isHigh = 0;
	
	if(isInited)
	
		ms++;
		if(ms==10)
		
			ms = 0;
			isHigh = !isHigh;
			if(isHigh)
			
				HAL::getInstance()->vSync();
				OSWrappers::signalVSync();
				HAL::getInstance()->swapFrameBuffers();
			else
			
				HAL::getInstance()->frontPorchEntered();
				
		
	


c、在1ms的定时器中调用touchgfxTickHandler函数


四、完整工程下载
完整工程点击我下载

正点原子4.3寸屏

参考技术A 正点原子4.3寸或7存的都是电容感应式触摸屏,电容触摸屏一般都需要一个驱动 IC 来检测电容触摸,且一般通过 IIC 接口输出触摸数据的。

常见的两种电容触摸屏驱动 IC :

①GT9147:采用17*10的驱动结构(10个感应通道,17个驱动通道)。

②OTT2001A:采用13*8的驱动结构(8个感应通道,13个驱动通道)。

它们与MCU连接通过4根线:SDA、SCL、RST和INT。现在我用的4.3寸屏的驱动IC是GT9147。

基于正点原子stm32f407的触摸屏实验裁剪,在文件touch.h中把结构体_m_tp_dev的//void (*adjust)(void); //触摸屏校准注释掉。并只保留这几个函数,其他函数删掉。如下图:

其实触摸驱动只是lcd.c、ctiic.c、gt9147.c和touch.c这四个硬件有关的文件就可以了。

以上是关于基于正点原子F407开发版和SPI接口屏移植touchgfx完整教程的主要内容,如果未能解决你的问题,请参考以下文章

正点原子4.3寸屏

正点原子探索者STM32F407开发板/战舰STm32开发板/miniSTM32开发板资料下载

stm32f407,cubemx配置,USMART组件移植

正点原子I.MX6U-MINI移植篇kernel移植过程详解

正点原子I.MX6U-MINIu-boot过程移植详解

正点原子I.MX6U-MINI移植篇u-boot移植过程详解