屏幕如图所示,共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 控制的更多相关文章

  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#后台验证含0的正整数

    Regex r = new Regex(@"^([1-9]\d*|[0]{1,1})$");//含0正整数 if (!r.IsMatch(GNumber)) {  return f ...

  2. C++学习笔记(二)--基础

    1.浮点型数值不管写成什么样 都是以指数形式保存在内存中 数符|数字部分|指数部分 例:+0.33E10 数字部分的整数部分不能大于1,小数点后面不能是0. 2.字符数据是以整数形式保存在内存中的(A ...

  3. SimplePropertyRetriever

    var SimplePropertyRetriever = {     getOwnEnumerables: function (obj) {         return this._getProp ...

  4. java_第一年_JDBC(2)

    上篇说到,通过JDBC可实现java编程程序和mysql数据库进行连接并交互,而交互后所形成的结果集是通过ResultSet对象来操作的. 创建ResultSet对象: stmt = conn.cre ...

  5. 进程池和multiprocess.Pool模块

    一.为什么要有进程池 首先,创建进程需要消耗时间,销毁进程也需要时间.其次,即使开启了成千上万的进程,操作系统也不能让它们同时执行,这样反而会影响程序的效率.因此我们不能无限制的根据任务开启或者结束进 ...

  6. SQL SERVER添加表注释、字段注释

    --为字段添加注释 --Eg. execute sp_addextendedproperty 'MS_Description','字段备注信息','user','dbo','table','字段所属的 ...

  7. C# 字符串Trim进阶

    private void button1_Click(object sender, EventArgs e) {//去掉字符串头尾指定字符 string MyInfo= "--中华人民共和国 ...

  8. go中字符串类型string的用法

    示例 // 字符串类型string的用法 package main import ( "fmt" "unsafe" ) func main() { // 字符串 ...

  9. 【记录】mysql 查看某数据库各个表容量大小SQL

    有时候我们可能需要了解数据库中各个表的容量及大小,好了解数据库情况. 现只需要一条SQL就可以直观的展示出来. SELECT table_schema AS '数据库', table_name AS ...

  10. smbmnt - 装载 SMB 文件系统的协助工具

    总览 smbmnt mount-point [ -s share ] [ -r ] [ -u uid ] [ -g gid ] [ -f mask ] [ -d mask ] 描述 smbmnt 用于 ...