又是一篇显示的报告,上次是OLED,这次是TFT.
效果图
这块TFT的来源是arduino的TFT,因为我玩过arduino,手上有个Mega2560,这个板子刚好兼容arduino的管脚位置,可以直接插上去。
插是直接插上去了,屏幕使用的8位并行控制方式。 管脚就恶心了,arduino的D0-D7在这块板上确是混乱的,依次是
PF12 - D0 PD15 - D1 PF15 - D2 PE13 - D3 PE14 - D4 PE11 - D5 PF9 - D6 PF13 - D7 乱的不行不行的,这我的数据传送就麻烦了,还好这个屏幕都是控制没有读取,省掉不少功夫。 CubeMX生成初始代码。
管脚配置,并且命名 时钟不知道为什么只能用内部8M,内部不是说好的16M吗。反正没跑什么速度。就不管了。
这里注意一下,管脚的初始化电平要配置一个比较重要的RD脚。
初始电平配置为高 OK生成。
移植,修改接口代码。
- void DATAOUT(unsigned char Data)
- {
- HAL_GPIO_WritePin(TFT_D0_GPIO_Port,TFT_D0_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D1_GPIO_Port,TFT_D1_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D2_GPIO_Port,TFT_D2_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D3_GPIO_Port,TFT_D3_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D4_GPIO_Port,TFT_D4_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D5_GPIO_Port,TFT_D5_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D6_GPIO_Port,TFT_D6_Pin,Data&0x01);
- Data>>=1;
- HAL_GPIO_WritePin(TFT_D7_GPIO_Port,TFT_D7_Pin,Data&0x01);
- }
复制代码
因为数据端口混乱,这里肯定花了不少处理运算。导致刷屏速度变慢。 如果有高明的方法求告知。
控制脚的接口配置 还有GUI.C和GUI.H包含进去。开始使用。
- LCD_Init();
- POINT_COLOR = YELLOW;
-
- LCD_ShowString(30,30,16,"hello world!",1);
- Show_Str(10,10,RED,BLUE,"HELLO WORLD!",16,0);
-
- LCD_DrawRectangle(50,50,90,90);
- LCD_Fill(150,50,190,90,YELLOW);
- Show_Str(140,100,GREEN,BLUE,"电子发烧友论坛@上官梦舞",16,1);
- Show_Str(100,120,RED,BLUE,"电子发烧友论坛@上官梦舞",24,0);
- Show_Str(60,150,CYAN,BLUE,"电子发烧友论坛@上官梦舞",32,1);
复制代码
完成哦,谢谢支持,后续还会更新。
附上源码,如有任何差错,请自行对比纠错,当然还可以留言交流哦。
刷屏速度真的很慢。
|