版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CC2530和STM32嵌入式接口技术开发6.1 STM32 LCD技术应用开发显示器STM32 FSMC接口技术STM32 FSMC库函数ILI93xx LCD原理项目实践显示器介绍液晶显示器OLED显示器显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、液晶显示器、LED点阵显示器及OLED显示器。显示器的相关参数像素分辨率色彩深度显示器参数FSMC介绍STM32F407或STM32F417系列芯片都带有FSMC接口。FSMC即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32F4的F
2、SMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存储器。SARMPSARMNANDNORFSMC连接框图STM32F4的FSMC将外部设备分为2类:NOR/PSRAM设备、NAND/PC卡设备。他们共用地址数据总线等信号,他们具有不同的CS以区分不同的设备,比如本项目用到的TFTLCD就是用的FSMC_NE4做片选,其实就是将TFTLCD当成SRAM来控制。FSMC的存储地址分配及映射FSMC总共管理1GB空间,拥有4个存储块(Bank)。FSMC存储块1(Bank1)被分为4个区,每个区管理64M字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。Ba
3、nk1的256M字节空间由28根地址线(HADDR27:0)寻址。FSMC的读写操作FSMC在A模式下,读和写的时序时独立的。读的速度较慢,写的速度较快。在这种模式下很适合TFTLCD屏幕的操作。FSMC读时序FSMC写时序STM32的FSMC的配置FSMC初始化函数。FSMC_NORSRAMInit(); /NOR SRam初始化函数FSMC_NANDInit(); /NAND Flash初始化函数FSMC_PCCARDInit(); /PC Card初始化函数FSMC使能函数。void FSMC_NORSRAMCmd(uint32_t FSMC_Bank,FunctionalState N
4、ewState); /NOR SRam使能void FSMC_NANDCmd(uint32_t FSMC_Bank,FunctionalState NewState); /NAND Flash使能void FSMC_PCCARDCmd(FunctionalState NewState); /PC Card使能FSMC的存储外设有很多,有NOR SRAM、NAND Flash、PC Card等。但在使用的过程中通常用到哪种存储器就配置哪种存储器的函数从而初始化外设。STM32的FSMC的基本配置参数typedefstructuint32_t FSMC_Bank; /FSMC的Bank的标号区号配
5、置参数uint32_t FSMC_DataAddressMux; /设置地址总线与数据总线是否复用uint32_t FSMC_MemoryType; /设置存储器的类型uint32_t FSMC_MemoryDataWidth; /设置存储器的数据宽度,TFTLCD屏幕时16位数据宽度uint32_t FSMC_BurstAccessMode; /设置是否支持突发访问模式,只支持同步类型的存储器uint32_t FSMC_AsynchronousWait; /设置是否使能在同步传输时的等待信号uint32_t FSMC_WaitSignalPolarity; /设置等待信号的极性uint32_
6、t FSMC_WrapMode; /设置是否支持对齐的突发模式 uint32_t FSMC_WaitSignalActive; /配置等待信号在等待前有效还是等待期间有效uint32_t FSMC_WriteOperation; /设置是否写使能uint32_t FSMC_WaitSignal; /设置是否使能等待状态插入uint32_t FSMC_ExtendedMode; /设置是否使能扩展模式uint32_t FSMC_WriteBurst; /设置是否使能写突发操作/当不使用扩展模式时,本参数用于配置读写时序,否则用于配置读时序FSMC_NORSRAMTimingInitTypeDef
7、* FSMC_ReadWriteTimingStruct;/当使用扩展模式时,本参数用于配置写时序FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct;FSMC_NORSRAMInitTypeDef;STM32的FSMC的时序配置参数typedefstructuint32_t FSMC_AddressSetupTime; /地址建立时间,0-0 xF 个 HCLK 周期uint32_t FSMC_AddressHoldTime; /地址保持时间,0-0 xF 个 HCLK 周期uint32_t FSMC_DataSetupTime; /数据
8、建立时间,0-0 xF 个 HCLK 周期uint32_t FSMC_BusTurnAroundDuration; /总线转换周期,0-0 xF 个 HCLK 周期uint32_t FSMC_CLKDivision; /时钟分频因子,1-0 xF,若控制异步存储器,本参数无效uint32_t FSMC_DataLatency; /数据延迟时间,若控制异步存储器,本参数无效uint32_t FSMC_AccessMode; /设置访问模式FSMC_NORSRAMTimingInitTypeDef; /FSMC读/写时钟配置FSMC的在配置时由于驱动TFTLCD屏幕使用的是A模式,即异步模式。所以
9、FSMC_NORSRAMTimingInitTypeDef结构体需要根据读时序和写时序分别配置两次。ILI93xx LCD原理ILI93XX控制器内部结构ILI93xx LCD原理液晶引出信号线说明:信号线ILI9341对应信号线说明FSMC_D15:0D15:0数据信号线LCD_CSCSX片选信号,低电平有效FSMC_NWEWRX写数据信号,低电平有效FSMC_NOERDX读数据信号,低电平有效LCD_BL-背光信号,低电平点亮LCD_RSD/CX数据/命令信号,高电平时,D15:0表示的是数据(RGB像素数据或命令数据),低电平时 D15:0表示控制命令RSTRESX复位信号,低电平有效I
10、LI93xx LCD原理在STM32的使用过程中,通常使用STM32的片上外设FSMC对8080端口的时序进行模拟。项目场景可视对讲系统是一套现代化的小区住宅服务措施,提供访客与住户之间双向可视通话,达到图像、语音双重识别从而增加安全可靠性,同时节省大量的时间,提高了工作效率。它可提高住宅的整体管理和服务水平,创造安全社区居住环境,因此逐步成为小康住宅不可缺少的配套设备。任务目标楼宇智能设备企业要设计一款可视对讲系统设备,通过门口主机安装的摄像头对门口图像在室内可视分机显示屏显示,要求使用STM32处理器的FSMC接口驱动液晶显示屏。项目分析TFTLCD屏幕在STM32上的使用主要是需要弄清楚
11、STM32能够驱动TFTLCD屏幕的原理,STM32的FSMC外设可以驱动SARM这种存储其,这种存储其的驱动与TFTLCD屏的驱动方式类似,因此可以使用SARM来驱动LCD屏,其中LCD屏幕的数据总线就是用FSMC的数据总线,而数据和指令线电平的切换则有FSMC的地址总线来完成。项目程序逻辑框图程序启动首先初始化LED和LCD的背光,初始化完成以后初始化FSMC和LCD。在准备工作完成后开启LCD背光清屏和LCD屏幕的一系列操作,并在LCD上显示信息。项目实现void fsmc_init(void) GPIO_InitTypeDef GPIO_InitStructure; FSMC_NORS
12、RAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef readWriteTiming; FSMC_NORSRAMTimingInitTypeDef writeTiming; RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE); /使能FSMC时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE, ENABLE); /使能GPIO时钟 GPIO_InitStructure.G
13、PIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_14 | GPIO_Pin_15 | GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_12 | GPIO_Pin_7; /选中相应的引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; /复用模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; /输出速度 GPIO_InitStructure.GPIO_OTyp
14、e = GPIO_OType_PP; /推挽输出 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; /无上下拉 GPIO_Init(GPIOD, &GPIO_InitStructure); /按上述参数初始化(PD) GPIO_InitStructure.GPIO_Pin = 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_In
15、it(GPIOE, &GPIO_InitStructure); /按上述参数初始化(PE)fsmc初始化项目实现 /复用配置,将下列引脚复用为FSMC GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource7,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC); GPIO_Pi
16、nAFConfig(GPIOD,GPIO_PinSource14,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSour
17、ce9,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOD,GPIO_PinSource10,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource8,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource10,GPIO_AF_FSMC); GPIO_PinA
18、FConfig(GPIOE,GPIO_PinSource11,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource12,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource13,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource14,GPIO_AF_FSMC); GPIO_PinAFConfig(GPIOE,GPIO_PinSource15,GPIO_AF_FSMC);fsmc初始化项目实现 /写配置 readWriteTiming.FS
19、MC_AddressSetupTime = 0XF; /地址建立时间为16个HCLK 1/168M=6ns*16=96ns readWriteTiming.FSMC_AddressHoldTime = 0; /地址保持时间 模式A未用到 readWriteTiming.FSMC_DataSetupTime = 60; /数据保持时间为60个HCLK =6*60=360ns readWriteTiming.FSMC_BusTurnAroundDuration = 0 x00; readWriteTiming.FSMC_CLKDivision = 0 x00; readWriteTiming.FS
20、MC_DataLatency = 0 x00; readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A; /模式A writeTiming.FSMC_AddressSetupTime =15; /地址建立时间为9个HCLK =54ns writeTiming.FSMC_AddressHoldTime = 0; /地址保持时间 writeTiming.FSMC_DataSetupTime = 15; /数据保持时间为6ns*9个HCLK=54ns writeTiming.FSMC_BusTurnAroundDuration = 0 x00; wri
21、teTiming.FSMC_CLKDivision = 0 x00; writeTiming.FSMC_DataLatency = 0 x00; writeTiming.FSMC_AccessMode = FSMC_AccessMode_A; /模式Afsmc初始化项目实现 /配置FSMC FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; /使用NE1 FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; /不复用数据地址 FS
22、MC_NORSRAMInitStructure.FSMC_MemoryType =FSMC_MemoryType_SRAM;/ FSMC_MemoryType_SRAM; /SRAM FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; /存储器宽度16bit FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =FSMC_BurstAccessMode_Disable;/ FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WrapMod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浮式核电站锚泊施工手册
- 江苏省镇江市润州区2025-2026学年三年级上学期期末语文试卷(文字版含答案)
- 2026年医保经办管护综合岗事业单位招聘考试笔试试题(含答案)
- 2026年战略物资储备仓储建设国企单位招聘考试笔试试题(含答案)
- 2026年烟草财务出纳招聘考试笔试试题(含答案)
- 2019年春季学期对个别学生评价总结范文(四篇)
- 2026 年 2 型糖尿病住院患者一体化护理模式
- 2026 年重度有机磷中毒中间综合征护理个案
- 国际货物贸易代理合同二篇
- 2026年秋季旅游管理专业开学第一课 校友经验与职业启示
- 2026浙江杭州市团校(杭州青年运动史馆)招聘编外工作人员1人考试参考题库及答案详解
- 国家电网试题江苏
- 希氏束起搏生理性起搏
- 2025四川九洲电器集团有限责任公司招聘光电系统总体工程师(校招)等岗位测试笔试历年参考题库附带答案详解
- 2025江苏南京栖霞区中考一模数学试卷及答案
- 花卉园艺工职业技能鉴定考试复习题库(附答案)
- 广西卫生职业技术学院招聘考试真题2025
- 《电气控制与S7-1200PLC应用》课件 第6章S7-1200 PLC程序块
- 2026年医护人员医保知识培训手册
- 钢结构更换构件施工工艺流程
- 常州滨江国有控股集团有限公司招聘笔试题库2026
评论
0/150
提交评论