屏幕如图所示,共14个IO口(也可能只有13个),控制屏幕的有9个IO口

详细版介绍见:http://www.ciast.net/post/20151112.html

反面IO口图:

连接通过SPI方式连接:

  1. //默认程序接线说明:
  2. #define LCD_CTRL GPIOB //定义TFT数据端口为PB组
  3. #define LCD_LED GPIO_Pin_9 //MCU_PB9 对应接液晶屏(或者模块)TFT --PIN_LED背光正极(背光可以由IO口提供电流,或者外接3.3V电压)
  4. #define LCD_CS GPIO_Pin_11 //MCU_PB11 对应接液晶屏(或者模块)TFT --CS
  5. #define LCD_SCL GPIO_Pin_13 //MCU_PB13 对应接液晶屏(或者模块)TFT --SCL
  6. #define LCD_SDA GPIO_Pin_15 //MCU_PB15 MOSI 对应接液晶屏(或者模块)TFT --SDA
  7. #define LCD_SDO GPIO_Pin_14 //MCU_PB14 MISO 对应接液晶屏(或者模块)TFT --SDO
  8. #define LCD_RS GPIO_Pin_10 //MCU_PB10 对应接液晶屏(或者模块)TFT --RS/DC
  9. #define LCD_RST GPIO_Pin_12 //MCU_PB12 对应接液晶屏(或者模块)TFT --RST

  实现功能:

  1. //本测试程序演示功能包括:
  2. //1.纯色填充测试
  3. //2.英文显示测试示例
  4. //3.中文显示测试示例
  5. //4.2D按钮显示测试示例
  6. //5.数码管字体数字显示测试示例
  7. //6.图片显示测试示例
  8. //7.横竖屏切换测试示例

main.c文件:

  1. //////////////////////////////////////////////////////////////////////////////////
  2.  
  3. /* Includes ------------------------------------------------------------------*/
  4. #include "stm32f10x.h"
  5. #include "Lcd_Driver.h"
  6. #include "GUI.h"
  7. #include "delay.h"
  8. #include "Picture.h"
  9.  
  10. GPIO_InitTypeDef GPIO_InitStructure;
  11.  
  12. void RCC_Configuration(void);
  13.  
  14. void Delayms(__IO uint32_t nCount);
  15.  
  16. unsigned char Num[]={,,,,,,,,,};
  17.  
  18. void Redraw_Mainmenu(void)
  19. {
  20.  
  21. Lcd_Clear(GRAY0);
  22.  
  23. Gui_DrawFont_GBK16(,,BLUE,GRAY0,"全动电子技术");
  24. Gui_DrawFont_GBK16(,,RED,GRAY0,"液晶测试程序");
  25.  
  26. DisplayButtonUp(,,,); //x1,y1,x2,y2
  27. Gui_DrawFont_GBK16(,,YELLOW,GRAY0,"颜色填充测试");
  28.  
  29. DisplayButtonUp(,,,); //x1,y1,x2,y2
  30. Gui_DrawFont_GBK16(,,BLUE,GRAY0,"文字显示测试");
  31.  
  32. DisplayButtonUp(,,,); //x1,y1,x2,y2
  33. Gui_DrawFont_GBK16(,,RED,GRAY0,"图片显示测试");
  34.  
  35. Gui_DrawFont_GBK16(,,BLUE,GRAY0,"S1:Move. ");
  36. Gui_DrawFont_GBK16(,,RED,GRAY0, "S2:Sellect ");
  37. delay_ms();
  38. delay_ms();
  39. /*
  40. Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[5]);
  41. delay_ms(1000);
  42. Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[4]);
  43. delay_ms(1000);
  44. Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[3]);
  45. delay_ms(1000);
  46. Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[2]);
  47. delay_ms(1000);
  48. Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[1]);
  49. delay_ms(1000);
  50. Gui_DrawFont_Num32(100,125,RED,GRAY0,Num[0]); */
  51. }
  52.  
  53. void Num_Test(void)
  54. {
  55. u8 i=;
  56. Lcd_Clear(GRAY0);
  57. Gui_DrawFont_GBK16(,,RED,GRAY0,"Num Test");
  58. delay_ms();
  59. Lcd_Clear(GRAY0);
  60.  
  61. for(i=;i<;i++)
  62. {
  63. Gui_DrawFont_Num32((i%)*,*(i/)+,RED,GRAY0,Num[i+]);
  64. delay_ms();
  65. }
  66. delay_ms();
  67.  
  68. }
  69. //文字显示测试全动电子技术商城因为专注所以专业程
  70. void Font_Test(void)
  71. {
  72. u8 x_offset;
  73. #ifdef H_VIEW //如果定义了横屏显示
  74. x_offset=;
  75. #else
  76. x_offset=;
  77. #endif
  78. Lcd_Clear(GRAY0);
  79. Gui_DrawFont_GBK16(,,BLUE,GRAY0, " 文字显示测试 ");
  80.  
  81. delay_ms();
  82. Lcd_Clear(WHITE);
  83. Gui_DrawFont_GBK16(x_offset,,RED,WHITE, " 全动电子技术有限公司 ");
  84. Gui_DrawFont_GBK16(x_offset,,RED,WHITE, " QDtech .,LTD ");
  85. Gui_DrawFont_GBK24(x_offset,,BLUE,WHITE, " 欢迎您 ");
  86. Gui_DrawFont_GBK16(x_offset,,GREEN,WHITE, " 全程技术支持 ");
  87. Gui_DrawFont_GBK16(x_offset,,RED,YELLOW, "http://qdtech.taobao.com");
  88. Gui_DrawFont_GBK16(x_offset,,RED,YELLOW, "E-Mail:QDtech2008@gmail.com");
  89. Gui_DrawFont_GBK16(x_offset,,RED,YELLOW, "技术交流群:324828016");
  90. Gui_DrawFont_GBK16(x_offset,,BLUE,WHITE, "Tel:15989313508 ");
  91. delay_ms();
  92. }
  93.  
  94. void Color_Test(void)
  95. {
  96. u8 i=;
  97. Lcd_Clear(GRAY0);
  98.  
  99. Gui_DrawFont_GBK16(,,BLUE,GRAY0,"Color Test");
  100. delay_ms();
  101.  
  102. while(i--)
  103. {
  104. Lcd_Clear(WHITE);
  105. Lcd_Clear(BLACK);
  106. Lcd_Clear(RED);
  107. Lcd_Clear(GREEN);
  108. Lcd_Clear(BLUE);
  109. }
  110. }
  111. //16位 垂直扫描 右到左 高位在前
  112. void show_pic(const unsigned char *p)
  113. {
  114. int i,j;
  115. unsigned char picH,picL;
  116. //Lcd_SetRegion(0,0,240-1,240-1);
  117. for(i=;i<;i++)
  118. for(j=;j<;j++)
  119. {
  120. picH=*p++;
  121. picL=*p++;
  122. Lcd_WriteData(picH);
  123. Lcd_WriteData(picL);
  124. }
  125. }
  126.  
  127. u16 ID=;
  128. int main(void)
  129. {
  130. //uint16_t a;
  131. /* System Clocks Configuration **********************************************/
  132. SystemInit();
  133. delay_init();//延时初始化
  134. while()
  135. {
  136. Lcd_Init();
  137. Lcd_Clear(WHITE);
  138. LCD_LED_SET;
  139. //delay_ms(500);
  140. // LCD_LED_CLR;
  141. //delay_ms(500);
  142. //LCD_LED_SET;
  143. Redraw_Mainmenu();//简单菜单测试
  144. Color_Test();//简单刷屏测试
  145. Num_Test();//数码管字体显示
  146. Font_Test();//中英文测试
  147.  
  148. Lcd_Clear(WHITE);
  149. show_pic(gImage_123);//图片显示测试
  150. delay_ms();
  151. delay_ms();
  152. Lcd_Clear(WHITE);
  153. Gui_DrawFont_GBK16(,,BLUE,GRAY0,"测试成功.");
  154. delay_ms();
  155. }
  156.  
  157. }
  158.  
  159. void RCC_Configuration(void)
  160. {
  161. /* Setup the microcontroller system. Initialize the Embedded Flash Interface,
  162. initialize the PLL and update the SystemFrequency variable. */
  163. SystemInit();
  164. }
  165.  
  166. void Delayms(__IO uint32_t nCount)
  167. {
  168. for(; nCount != ; nCount--);
  169. }
  170.  
  171. #ifdef USE_FULL_ASSERT
  172. /**
  173. * @brief Reports the name of the source file and the source line number
  174. * where the assert_param error has occurred.
  175. * @param file: pointer to the source file name
  176. * @param line: assert_param error line source number
  177. * @retval : None
  178. */
  179.  
  180. void assert_failed(uint8_t* file, uint32_t line)
  181. {
  182. /* User can add his own implementation to report the file name and line number,
  183. ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  184.  
  185. /* Infinite loop */
  186. while ()
  187. {
  188. }
  189. }
  190. #endif
  191.  
  192. /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/

最终效果图:

----------------------------------------------------------------------------------------------------------

其他文件:

整个 STM程序下载:http://download.csdn.net/detail/zgc261/7306853

2.2寸(14PIN)TFT液晶屏STM32 SPI 控制的更多相关文章

  1. 拓普微小尺寸TFT液晶屏-高性价比

    智能模块(Smart LCD)是专为工业显示应用而设计的TFT液晶显示模块. 模块自带主控IC.Flash存储器.实时嵌入式操作系统,客户主机可把要存储的数据(如背景图.图标等)存储到屏的flash中 ...

  2. ESA2GJK1DH1K升级篇: 升级STM32 预热: 单片机定时 使用 http 获取云端文本文件里面的内容,然后显示在液晶屏

    前言: 实现功能概要 STM32使用AT指令控制Wi-Fi以TCP方式连接咱上节安装的Web服务器,然后使用http的get协议获取云端文本文件里面的内容, 然后把获取的数据显示在OLED液晶屏.   ...

  3. 【雕爷学编程】MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

    配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240) ST7789驱动器芯片2.4寸LCD屏(24P 320X240)主要参数 1. 模块名称:液晶显示模块2. 型号:KD024C ...

  4. 所谓的液晶屏驱动IC是单独的IC还是在屏内就集成

    所谓的液晶屏驱动IC是单独的IC还是在屏内就集成 时间:2016-12-05    作者:admin   其实无论什么液晶屏,想要正常工作必须包括两个人:玻璃屏+驱动IC:但是现在有一些液晶厂商他们不 ...

  5. 单片机中不带字库LCD液晶屏显示少量汉字

    单片机中不带字库LCD液晶屏如何显示少量汉字,一般显示汉字的方法有1.使用带字库的LCD屏,2.通过SD 卡或者外挂spi flash存中文字库,3.直接将需要的汉字取模存入mcu的flash中. 第 ...

  6. Arduino 1602液晶屏实验和程序

    在Arduino IDE中, 项目->加载库->管理库中搜索LiquidCrystal,然后安装即可 1.接线图 2.引脚图 3.最简单程序 #include <LiquidCrys ...

  7. s3c2440液晶屏驱动 (内核自带) linux-4.1.24

    自带有一部分驱动的配置信息,只要修改这部分就能支援 不同的液晶屏 - /arch/arm/mach-s3c24xx/mach-smdk2440.c 另一部分在 /drivers/video/fbdev ...

  8. 液晶屏MIPI接口与LVDS接口区别(总结)

    液晶屏接口类型有LVDS接口.MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是 ...

  9. ARM40-A5应用——fbset与液晶屏参数的适配【转】

    转自:https://blog.csdn.net/vonchn/article/details/80784579 ARM40-A5应用——fbset与液晶屏参数的适配 2018.6.18 版权声明:本 ...

随机推荐

  1. C#清空StringBuilder的三种方法

    1.Remove例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val.L ...

  2. vuejs基础-计算器案例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Hibernate的dtd文件和properties文件

    hibernate-configuration-3.0.dtd <!-- Hibernate file-based configuration document. <!DOCTYPE hi ...

  4. [Linux] 017 网络命令与挂载命令

    1. 网络命令:write 命令名称:write 命令所在路径:/usr/bin/write 执行权限:所有用户 语法:write [用户名] 功能描述:给用户发信息,以 Ctrl-d 保存结束 范例 ...

  5. Linux系统配置Java开发基本环境

    jdk安装一.用yum安装jdk1.查看yum库都有哪些jdk版本yum search java|grep jdk2.选择版本安装yum install java-1.8.0-openjdk(/usr ...

  6. BZOJ 4675(点分治)

    题面 传送门 分析 由于期望的线性性,我们可以分别计算每个点对对答案的贡献 有三个人取数字,分开对每个人考虑 设每个人分别取了k个数,则一共有\(C_n^k\)种组合,选到每种组合的概率为\(\fra ...

  7. 14、numpy——统计函数

    NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下:(沿哪条轴执行,就是是最后结果的形式) 1.numpy.amin() 和 ...

  8. 2019牛客暑期多校训练营(第一场) - B - Integration - 数学

    https://ac.nowcoder.com/acm/contest/881/B https://www.cnblogs.com/zaq19970105/p/11210030.html 试图改写多项 ...

  9. 使用Anaconda3安装tensorflow,opencv,使其可以在spyder中运行

    使用Anaconda5.0.0 1.首选无论你是在cmd键入python,还是在Anaconda Prompt键入python,显示的都是Python3.6.然而在Spyder(tensorflow) ...

  10. ScriptManager(脚本控制器)

    资料中如实是说:       1, ScriptManager(脚本控制器)是asp.net ajax存在的基础.      2, 一个页面只允许有一个ScriptManager,并且放在其他ajax ...