历史上的今天
返回首页

历史上的今天

今天是:2025年01月04日(星期六)

2019年01月04日 | stm32 FSMC-TFTLCD显示

2019-01-04 来源:eefocus

TFTLCD 

TFT液晶屏常用的通信模式主要有6800模式和8080模式,对于TFT彩屏通常都使用8080并口(简称80并口)模式


8080模式的读写时序其实跟LCD1602或者LCD12864的读写时序是差不多的。8080接口有5条基本的控制线和多条数据线,数据线的数量主要看液晶屏使用的是几位模式,有8根、9根、16根、18根四种类型


1


FSMC 

FSMC模块能够与同步或异步存储器和16位PC存储器卡接口


将AHB传输信号转换到适当的外部设备协议 
满足访问外部设备的时序要求


所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。 FSMC在任一时刻只访问一个外部设备


STM32通过FSMC可以与SRAM、ROM、PSRAM、NOR Flash和NAND Flash等存储器的引脚直接相连


外部设备地址映像 

从FSMC的角度看,把外部存储器划分为固定大小为256M字节的四个存储块


1


模式A读写操作 

以模式A举例


模式A读操作: 

1


模式A写操作: 

2


FSMC配置步骤

1.使能对应引脚GPIO时钟 
2.配置GPIO引脚模式 
3.使能FSMC时钟 
4.FSMC初始化 
5.存储器块使能 
6.应用TFTLCD库函数,写字符、数字等


举例 

FSMC_NORSRAMTimingInitTypeDef: 

1 
2


FSMC_NORSRAMInitTypeDef: 

1 
2 
3


void TFTLCD_gpio_init()

{

    GPIO_InitTypeDef gpiod = 

    {

        GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15,

        GPIO_Speed_50MHz,

        GPIO_Mode_AF_PP

    };  


    GPIO_InitTypeDef gpioe = 

    {

        GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15,

        GPIO_Speed_50MHz,

        GPIO_Mode_AF_PP

    };  


    GPIO_InitTypeDef gpiog = 

    {

        GPIO_Pin_0 | GPIO_Pin_12,

        GPIO_Speed_50MHz,

        GPIO_Mode_AF_PP

    };  


    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG, ENABLE);


    GPIO_Init(GPIOD, &gpiod);

    GPIO_Init(GPIOE, &gpioe);

    GPIO_Init(GPIOG, &gpiog);

}


void FSMC_init()

{

    FSMC_NORSRAMInitTypeDef fsmc = {0};

    FSMC_NORSRAMTimingInitTypeDef FSMC_ReadWriteTimingStruct = {0};

    FSMC_NORSRAMTimingInitTypeDef FSMC_WriteTimingStruct = {0};


    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);


    FSMC_ReadWriteTimingStruct.FSMC_AddressSetupTime = 0x01; //ADDSET建立时间=2个HCLK时钟周期

    FSMC_ReadWriteTimingStruct.FSMC_AddressHoldTime = 0x00; //模式A未用到

    FSMC_ReadWriteTimingStruct.FSMC_DataSetupTime = 0x0f; //DATAST保持时间=16个HCLK时钟周期

    FSMC_ReadWriteTimingStruct.FSMC_BusTurnAroundDuration = 0x00;

    FSMC_ReadWriteTimingStruct.FSMC_CLKDivision = 0x00;

    FSMC_ReadWriteTimingStruct.FSMC_DataLatency = 0x00;

    FSMC_ReadWriteTimingStruct.FSMC_AccessMode = FSMC_AccessMode_A; //访问模式A


    FSMC_WriteTimingStruct.FSMC_AddressSetupTime = 0x0f;     //ADDSET建立时间=16个HCLK时钟周期

    FSMC_WriteTimingStruct.FSMC_AddressHoldTime = 0x0f; 

    FSMC_WriteTimingStruct.FSMC_DataSetupTime = 0x05;

    FSMC_WriteTimingStruct.FSMC_BusTurnAroundDuration = 0x00;

    FSMC_WriteTimingStruct.FSMC_CLKDivision = 0x00;

    FSMC_WriteTimingStruct.FSMC_DataLatency = 0x00;

    FSMC_WriteTimingStruct.FSMC_AccessMode = FSMC_AccessMode_A; 


    fsmc.FSMC_Bank = FSMC_Bank1_NORSRAM4;

    fsmc.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;

    fsmc.FSMC_MemoryType = FSMC_MemoryType_SRAM;

    fsmc.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;

    fsmc.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;

    fsmc.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;

    fsmc.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;

    fsmc.FSMC_WrapMode = FSMC_WrapMode_Disable;

    fsmc.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;

    fsmc.FSMC_WriteOperation = FSMC_WriteOperation_Enable;

    fsmc.FSMC_WaitSignal = FSMC_WaitSignal_Disable;

    fsmc.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; //扩展模式使能

    fsmc.FSMC_WriteBurst = FSMC_WriteBurst_Disable;

    fsmc.FSMC_ReadWriteTimingStruct = &FSMC_ReadWriteTimingStruct;

    fsmc.FSMC_WriteTimingStruct = &FSMC_WriteTimingStruct;

    FSMC_NORSRAMInit(&fsmc);


    FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE); //使能存储块1 NOR/PSRAM 4

}


推荐阅读

史海拾趣

Avery Dennison公司的发展小趣事

1990年,Avery Adhesives与Dennison Manufacturing合并,成立了Avery Dennison公司。这一合并不仅增强了公司的实力,也为其全球扩张提供了有力支持。此后,Avery Dennison通过在欧洲建立工厂、收购其他公司等方式,不断拓展其业务版图。如今,公司的业务已经遍及50多个国家,成为全球领先的标签与包装材料解决方案提供商。

ELNA(依娜)公司的发展小趣事

在数字化转型和智能化升级的趋势下,ELNA开始积极探索新技术和新模式。公司加强了与互联网和人工智能技术的融合,推动产品和服务的智能化升级。同时,ELNA还加强了对大数据和云计算技术的应用,提升生产效率和管理水平。

以上是对ELNA公司在电子行业中的部分发展历程的概述。您可以根据这些故事的开头进一步扩展和完善内容以满足字数要求。

AR RF/Microwave Instrumentation公司的发展小趣事

品质是公司发展的生命线。AR RF/Microwave Instrumentation一直注重品质管理,从原材料采购到生产过程的每一个环节都进行严格把控。同时,公司还建立了完善的售后服务体系,确保客户在使用过程中能够得到及时、专业的支持。此外,公司还不断进行持续改进,通过引入新的生产技术和设备,提高生产效率和产品质量。

岑科(CENKER)公司的发展小趣事

岑科公司成立于2001年,初期主要从事电子元器件的贸易业务。在创始人蔡旌章的带领下,岑科以优质的服务和灵活的运营策略,在国内外市场上赢得了良好的口碑。这一时期,岑科的服务对象主要是海内外的电子元器件需求商,通过精准把握市场需求和优质的产品供应,逐渐在电子元器件贸易领域站稳了脚跟。随着业务的不断拓展,岑科开始思考如何进一步提升自身的竞争力,以实现更长远的发展。

Advanced Illumination Inc公司的发展小趣事

随着技术的不断进步,Ai公司在LED照明光源领域取得了重大突破。公司成功研发出了一系列高效、稳定、可靠的LED光源产品,这些产品不仅性能卓越,而且设计新颖,满足了市场对于高质量照明光源的迫切需求。同时,公司还不断创新,推出了多款具有自主知识产权的新型LED光源,进一步巩固了公司在行业内的领先地位。

Condor公司的发展小趣事

Advanced Illumination Inc公司成立于XXXX年,初创时期,公司便专注于LED照明光源的研发与生产。面对当时市场上众多的竞争对手,Ai公司凭借其对技术的深刻理解和对市场需求的敏锐洞察,选择了一条专注于机器视觉工业应用的道路。这一决策为公司后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

汽车前轮侧滑计算机检测系统的设计

1 引言    汽车前轮侧滑量是机动车辆安全技术检测的重要指标。当汽车直线行驶时前轮的横向位移量称侧滑量,它是前轮定位参数在动态情况下匹配性能的综合反映,若侧滑量超出规定范围,不仅会磨损轮胎、增大油耗,还会因转向轮操纵不灵、汽车行 ...…

查看全部问答>

各类开发实用电路图

各类开发实用电路图…

查看全部问答>

请各位高手指教,下面的电路能不能成立,不能成立的原因是什么?

电路是我自己画的,个人分析如下,有不对的地方希望大家指正:谢谢~ 1》通电,12V经R1到Q1的C极,经R2加至Q1的B极,Q1饱和导通,C极等于0 此时Q2,Q3,Q4的B极全部为0 Q2为PNP管,此时是导通状态,但对电路没影响 2》按S1, ...…

查看全部问答>

秒表计程序

请问存储的数据怎样让它循环调出呢?…

查看全部问答>

Linux系统移植(相当清晰的一份文档)推荐

该文档的目的是总结我们在工作中的一些经验,并把它们分享给喜欢ARM和Linux的朋友, 如有错误之处,请大家多多指点. 同样, 我们也希望更多人能把自己的工作经验和体会加入该文档,让大家共同进步. 该文档是一份交流性文档, 只供个人学习与交流,不允许 ...…

查看全部问答>

【藏书阁】晶体管脉冲电路一百例

目录: 详细信息: 一本很老的书,还有毛主席语录。里面介绍了100例由三极管组成的脉冲电路,很多电路设计很精妙,适合广大电子制作爱好者制作参考之用。 书名:晶体管脉冲电路一百例   作者:《晶体管脉冲电路一百例》编译组 ...…

查看全部问答>

【藏书阁】模-数与数-模转换技术基础

目录: 第一章 概论 第二章 采样和量化 第三章 模拟开关和多路切换器 第四章 放大器、采样/保持器和比较器 第五章 数-模转换器 第六章 模-数转换器 第七章 数据采集系统与数据分配系统 第八章 转角/直线位移-数字转换器 第九章 噪声干扰 ...…

查看全部问答>

绝好机会!! 推荐进华为

西安华为研究所开始了新一轮招聘,     专业:计算机,通信,电子,物理等工科专业(这次专业要求不很严)     工作经验:至少工作一年            如有意者:请将自己的建立发到邮箱& ...…

查看全部问答>