2.2寸(14PIN)TFT液晶屏STM32 SPI 控制
屏幕如图所示,共14个IO口(也可能只有13个),控制屏幕的有9个IO口
详细版介绍见:http://www.ciast.net/post/20151112.html
反面IO口图:
连接通过SPI方式连接:
- //默认程序接线说明:
- #define LCD_CTRL GPIOB //定义TFT数据端口为PB组
- #define LCD_LED GPIO_Pin_9 //MCU_PB9 对应接液晶屏(或者模块)TFT --PIN_LED背光正极(背光可以由IO口提供电流,或者外接3.3V电压)
- #define LCD_CS GPIO_Pin_11 //MCU_PB11 对应接液晶屏(或者模块)TFT --CS
- #define LCD_SCL GPIO_Pin_13 //MCU_PB13 对应接液晶屏(或者模块)TFT --SCL
- #define LCD_SDA GPIO_Pin_15 //MCU_PB15 MOSI 对应接液晶屏(或者模块)TFT --SDA
- #define LCD_SDO GPIO_Pin_14 //MCU_PB14 MISO 对应接液晶屏(或者模块)TFT --SDO
- #define LCD_RS GPIO_Pin_10 //MCU_PB10 对应接液晶屏(或者模块)TFT --RS/DC
- #define LCD_RST GPIO_Pin_12 //MCU_PB12 对应接液晶屏(或者模块)TFT --RST
实现功能:
- //本测试程序演示功能包括:
- //1.纯色填充测试
- //2.英文显示测试示例
- //3.中文显示测试示例
- //4.2D按钮显示测试示例
- //5.数码管字体数字显示测试示例
- //6.图片显示测试示例
- //7.横竖屏切换测试示例
main.c文件:
- //////////////////////////////////////////////////////////////////////////////////
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "Lcd_Driver.h"
- #include "GUI.h"
- #include "delay.h"
- #include "Picture.h"
- GPIO_InitTypeDef GPIO_InitStructure;
- void RCC_Configuration(void);
- void Delayms(__IO uint32_t nCount);
- unsigned char Num[]={,,,,,,,,,};
- void Redraw_Mainmenu(void)
- {
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(,,BLUE,GRAY0,"全动电子技术");
- Gui_DrawFont_GBK16(,,RED,GRAY0,"液晶测试程序");
- DisplayButtonUp(,,,); //x1,y1,x2,y2
- Gui_DrawFont_GBK16(,,YELLOW,GRAY0,"颜色填充测试");
- DisplayButtonUp(,,,); //x1,y1,x2,y2
- Gui_DrawFont_GBK16(,,BLUE,GRAY0,"文字显示测试");
- DisplayButtonUp(,,,); //x1,y1,x2,y2
- Gui_DrawFont_GBK16(,,RED,GRAY0,"图片显示测试");
- Gui_DrawFont_GBK16(,,BLUE,GRAY0,"S1:Move. ");
- Gui_DrawFont_GBK16(,,RED,GRAY0, "S2:Sellect ");
- delay_ms();
- delay_ms();
- /*
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[5]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[4]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[3]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[2]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[1]);
- delay_ms(1000);
- Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[0]); */
- }
- void Num_Test(void)
- {
- u8 i=;
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(,,RED,GRAY0,"Num Test");
- delay_ms();
- Lcd_Clear(GRAY0);
- for(i=;i<;i++)
- {
- Gui_DrawFont_Num32((i%)*,*(i/)+,RED,GRAY0,Num[i+]);
- delay_ms();
- }
- delay_ms();
- }
- //文字显示测试全动电子技术商城因为专注所以专业程
- void Font_Test(void)
- {
- u8 x_offset;
- #ifdef H_VIEW //如果定义了横屏显示
- x_offset=;
- #else
- x_offset=;
- #endif
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(,,BLUE,GRAY0, " 文字显示测试 ");
- delay_ms();
- Lcd_Clear(WHITE);
- Gui_DrawFont_GBK16(x_offset,,RED,WHITE, " 全动电子技术有限公司 ");
- Gui_DrawFont_GBK16(x_offset,,RED,WHITE, " QDtech .,LTD ");
- Gui_DrawFont_GBK24(x_offset,,BLUE,WHITE, " 欢迎您 ");
- Gui_DrawFont_GBK16(x_offset,,GREEN,WHITE, " 全程技术支持 ");
- Gui_DrawFont_GBK16(x_offset,,RED,YELLOW, "http://qdtech.taobao.com");
- Gui_DrawFont_GBK16(x_offset,,RED,YELLOW, "E-Mail:QDtech2008@gmail.com");
- Gui_DrawFont_GBK16(x_offset,,RED,YELLOW, "技术交流群:324828016");
- Gui_DrawFont_GBK16(x_offset,,BLUE,WHITE, "Tel:15989313508 ");
- delay_ms();
- }
- void Color_Test(void)
- {
- u8 i=;
- Lcd_Clear(GRAY0);
- Gui_DrawFont_GBK16(,,BLUE,GRAY0,"Color Test");
- delay_ms();
- while(i--)
- {
- Lcd_Clear(WHITE);
- Lcd_Clear(BLACK);
- Lcd_Clear(RED);
- Lcd_Clear(GREEN);
- Lcd_Clear(BLUE);
- }
- }
- //16位 垂直扫描 右到左 高位在前
- void show_pic(const unsigned char *p)
- {
- int i,j;
- unsigned char picH,picL;
- //Lcd_SetRegion(0,0,240-1,240-1);
- for(i=;i<;i++)
- for(j=;j<;j++)
- {
- picH=*p++;
- picL=*p++;
- Lcd_WriteData(picH);
- Lcd_WriteData(picL);
- }
- }
- u16 ID=;
- int main(void)
- {
- //uint16_t a;
- /* System Clocks Configuration **********************************************/
- SystemInit();
- delay_init();//延时初始化
- while()
- {
- Lcd_Init();
- Lcd_Clear(WHITE);
- LCD_LED_SET;
- //delay_ms(500);
- // LCD_LED_CLR;
- //delay_ms(500);
- //LCD_LED_SET;
- Redraw_Mainmenu();//简单菜单测试
- Color_Test();//简单刷屏测试
- Num_Test();//数码管字体显示
- Font_Test();//中英文测试
- Lcd_Clear(WHITE);
- show_pic(gImage_123);//图片显示测试
- delay_ms();
- delay_ms();
- Lcd_Clear(WHITE);
- Gui_DrawFont_GBK16(,,BLUE,GRAY0,"测试成功.");
- delay_ms();
- }
- }
- void RCC_Configuration(void)
- {
- /* Setup the microcontroller system. Initialize the Embedded Flash Interface,
- initialize the PLL and update the SystemFrequency variable. */
- SystemInit();
- }
- void Delayms(__IO uint32_t nCount)
- {
- for(; nCount != ; nCount--);
- }
- #ifdef USE_FULL_ASSERT
- /**
- * @brief Reports the name of the source file and the source line number
- * where the assert_param error has occurred.
- * @param file: pointer to the source file name
- * @param line: assert_param error line source number
- * @retval : None
- */
- void assert_failed(uint8_t* file, uint32_t line)
- {
- /* User can add his own implementation to report the file name and line number,
- ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
- /* Infinite loop */
- while ()
- {
- }
- }
- #endif
- /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
最终效果图:
----------------------------------------------------------------------------------------------------------
其他文件:
整个 STM程序下载:http://download.csdn.net/detail/zgc261/7306853
2.2寸(14PIN)TFT液晶屏STM32 SPI 控制的更多相关文章
- 拓普微小尺寸TFT液晶屏-高性价比
智能模块(Smart LCD)是专为工业显示应用而设计的TFT液晶显示模块. 模块自带主控IC.Flash存储器.实时嵌入式操作系统,客户主机可把要存储的数据(如背景图.图标等)存储到屏的flash中 ...
- ESA2GJK1DH1K升级篇: 升级STM32 预热: 单片机定时 使用 http 获取云端文本文件里面的内容,然后显示在液晶屏
前言: 实现功能概要 STM32使用AT指令控制Wi-Fi以TCP方式连接咱上节安装的Web服务器,然后使用http的get协议获取云端文本文件里面的内容, 然后把获取的数据显示在OLED液晶屏. ...
- 【雕爷学编程】MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏
配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240) ST7789驱动器芯片2.4寸LCD屏(24P 320X240)主要参数 1. 模块名称:液晶显示模块2. 型号:KD024C ...
- 所谓的液晶屏驱动IC是单独的IC还是在屏内就集成
所谓的液晶屏驱动IC是单独的IC还是在屏内就集成 时间:2016-12-05 作者:admin 其实无论什么液晶屏,想要正常工作必须包括两个人:玻璃屏+驱动IC:但是现在有一些液晶厂商他们不 ...
- 单片机中不带字库LCD液晶屏显示少量汉字
单片机中不带字库LCD液晶屏如何显示少量汉字,一般显示汉字的方法有1.使用带字库的LCD屏,2.通过SD 卡或者外挂spi flash存中文字库,3.直接将需要的汉字取模存入mcu的flash中. 第 ...
- Arduino 1602液晶屏实验和程序
在Arduino IDE中, 项目->加载库->管理库中搜索LiquidCrystal,然后安装即可 1.接线图 2.引脚图 3.最简单程序 #include <LiquidCrys ...
- s3c2440液晶屏驱动 (内核自带) linux-4.1.24
自带有一部分驱动的配置信息,只要修改这部分就能支援 不同的液晶屏 - /arch/arm/mach-s3c24xx/mach-smdk2440.c 另一部分在 /drivers/video/fbdev ...
- 液晶屏MIPI接口与LVDS接口区别(总结)
液晶屏接口类型有LVDS接口.MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是 ...
- ARM40-A5应用——fbset与液晶屏参数的适配【转】
转自:https://blog.csdn.net/vonchn/article/details/80784579 ARM40-A5应用——fbset与液晶屏参数的适配 2018.6.18 版权声明:本 ...
随机推荐
- C#清空StringBuilder的三种方法
1.Remove例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val.L ...
- vuejs基础-计算器案例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Hibernate的dtd文件和properties文件
hibernate-configuration-3.0.dtd <!-- Hibernate file-based configuration document. <!DOCTYPE hi ...
- [Linux] 017 网络命令与挂载命令
1. 网络命令:write 命令名称:write 命令所在路径:/usr/bin/write 执行权限:所有用户 语法:write [用户名] 功能描述:给用户发信息,以 Ctrl-d 保存结束 范例 ...
- Linux系统配置Java开发基本环境
jdk安装一.用yum安装jdk1.查看yum库都有哪些jdk版本yum search java|grep jdk2.选择版本安装yum install java-1.8.0-openjdk(/usr ...
- BZOJ 4675(点分治)
题面 传送门 分析 由于期望的线性性,我们可以分别计算每个点对对答案的贡献 有三个人取数字,分开对每个人考虑 设每个人分别取了k个数,则一共有\(C_n^k\)种组合,选到每种组合的概率为\(\fra ...
- 14、numpy——统计函数
NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下:(沿哪条轴执行,就是是最后结果的形式) 1.numpy.amin() 和 ...
- 2019牛客暑期多校训练营(第一场) - B - Integration - 数学
https://ac.nowcoder.com/acm/contest/881/B https://www.cnblogs.com/zaq19970105/p/11210030.html 试图改写多项 ...
- 使用Anaconda3安装tensorflow,opencv,使其可以在spyder中运行
使用Anaconda5.0.0 1.首选无论你是在cmd键入python,还是在Anaconda Prompt键入python,显示的都是Python3.6.然而在Spyder(tensorflow) ...
- ScriptManager(脚本控制器)
资料中如实是说: 1, ScriptManager(脚本控制器)是asp.net ajax存在的基础. 2, 一个页面只允许有一个ScriptManager,并且放在其他ajax ...