资料介绍
本篇文章三个主题:FSMC有关配置、一串字符显示原理、汉字显示原理。
一、FSMC的有关配置(博主用的是FSMC_A10):
来自别人家的博客
FSMC的介绍就不介绍了,网上一大片。我们就讨论讨论为什么用FSMC的地址线与TFTLCD的RS引脚相连?以及我们如何往LCD写数据/命令?
FSMC称为可变静态存储控制器。可变:之所以称为“可变”,是由于通过对特殊功能寄存器的设置,FSMC 能够根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度。(这点很重要,后文会提到。)
简单说明一下吧~为什么不拿STM32的IO口直接接LCD的对应引脚?(看看我上边发的链接就清楚了),大致就是操作麻烦,效率低嘛。。好,FSMC是吧TFTLCD当成SRAM设备来用的,其操作时序和SRAM的控制完全类似,唯一不同的就是TFTLCD有RS信号,但是没有地址信号。
TFTLCD是通过RS信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把RS接在A10上面(当然A0-Axx都可以)。那么LCD到底是怎么判断我们写的是命令还是数据呢?下面是重点!!!
以战舰的程序为例::
这里因为数据线宽度是16位时,HADDR[25:1]->FSMC[24:0],相当于右移一位。下面是战舰给出的A10偏移量:
0x6c000000相比大家都没有问题。按理说A10的偏移量应该是2的11次方(0-10)=2048,转换为16进制就是800,那也比7FE大两位!(这里复习下基础知识:RS=0,写命令;RS=1,写数据。)
为什么呢?我是这么理解的(倒推法):按我的思路推,如果我们取LCD->LCD_REG的地址0x6c000800的话,当地址右移时,第10位就不是0了,而是1。对应RS=1,那么对于LCD就不是写命令了,而变成写数据了;又因为结构体内部成员对齐规则,LCD->LCD_RAM的地址就是0x6c00802了,当地址右移时,第10位也是1,对应RS=1。还是写数据!!!!
推到这应该明白了。如果按正常算法来计算的话,RS就只会等与1,就不会区分写命令和写数据了。
故我们要将A10的偏移量减去两位。就得到图中战舰的0x000007FE了。LCD->LCD_REG的地址就是0x6c0007FE了。当地址右移一位时第10位是0,对应RS=0,为对于LCD就是写命令了;而因为结构体内部成员对齐规则,LCD->LCD_RAM的地址就是0x6c000800了。当地址右移一位时第10位是1,对应RS=1,为对于LCD就是写数据了。这样FSMC就能区分传送的是数据还是命令了。。大功告成!
到这里,问题来了:我们就控制A10这一根线怎么就可以完成读写了呢?那些十多个引脚的电平又是谁在控制呢?
这个神秘的‘人物’就是上文我们提到的FSMC啦!先看一个战舰上的写寄存器函数:
第一个图:这里的LCD->LCD_REG是一个地址(0x6c000007FE),这里的寄存器序号哦:是指LCD手册里定义的寄存器地址。只要我们往LCD->LDC_REG这个地址里写一个变量(地址)。因为LCD->LDC_REG这个地址是FSMC管辖的。所以这时候FSMC就要勇敢的站出来管了~FSMC会自己生成相应的时序,包括CS、WR、RD和IO方向都是由FSMC控制!这就大大便利了我们对LCD的控制。
第二个图:这里的LCD->LCD_RAM也是一个地址(0x6c00000800),LCD->LCD_RAM=data;是往该寄存器地址里面写入数据。
二、一串字符的显示原理(战舰)
1、比如我们要显示一个字符串LCD_ShowString(x,x,x,"hello 21ic");x:是一些坐标哦和字体大小参数,先不管→_→
2、那我们就得调用字符显示函数:LCD_ShowChar();来把一个字符的点阵全部取完。
3、字符是有点组成的,故在字符函数中不断调用画点函数LCD_DrawPoint();来画点(往LCD->LCD_RAM里写颜色值,这个颜色值在lcd.h里被定义为16位的地址)。
4、至此,在lcd_init()中有过LCD屏的初始化(设置显示参数),就可以显示了。
5、简析一下叠加和非叠加的原理吧→_→
叠加就是字符点阵中是‘1’就用赋画笔颜色,是‘0’就赋背景颜色(那个字符的背景颜色,与全屏背景颜色无关),没毛病!因为最后显示的时候有个覆盖的作用。就是先把全屏颜色显示出来,再在全屏颜色的基础上覆盖上你的字符。所以就显示出叠加和非叠加(只有一个画笔颜色)了。
三、汉字显示原理
其实汉字显示和英文显示一个原理。很简单!显示的原理就是根据你的汉字字模字节大小来画点。
简单说说哈:大家都知道,字母的显示原理就是两个for循环(博主就知道这个),第一个for是控制‘行’的,第二个for是控制‘列’的。先给两个例子:比如显示一个16*08的字母,第一个for是循环16次,第二个for是循环8次;显示一个24*24的汉字,第一个for是循环72次,第二个for还是循环8次。不知道到这里大家看没看出来什么规律来→_→
规律:第一个for是字模所占的字节数,第二个for是每次画8位(从列最高处往下描8个点),字符显示函数中间会有y-y0的字样,这是判断一列点数是否达到16或者24个了,是就x 1,换下一列。
总的来说,汉字的字模字节说就是比字母字模字节数大。修改的也就是第一个fo和y-y0里面的参数。
转自:
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- QVGA TFT-LCD直接驱动使用STM32F10xx FSMC外设
- 使用大容量STM32F10xxx的FSMC驱动外部的存储器
- TFTLCD for STM32资料分享 1次下载
- STM32:FSMC驱动TFTLCD(ST7789)
- 基于STM32的红外遥控重点解析资料下载
- STM32 IIC难点易错点资料下载
- STM32-FSMC机制的NOR Flash存储器扩展技术资料下载
- STM32学习教程之FSMC模块 52次下载
- 使用STM32F1实现TFTLCD显示的源代码和工程文件免费下载 29次下载
- ATK TFTLCD电容触摸屏模块的资料和基于STM32的C语言源代码免费下载 29次下载
- ATK-7 TFTLCD电容触摸屏模块资料和STM32应用的C语言代码免费下载 16次下载
- STM32F10xxx FSMC外围设备驱动外部存储器的数据和使用手册免费下载 28次下载
- Android开发中难点解析及帮助 1次下载
- 大型风力发电机转轴加工工艺难点解析 0次下载
- 如何使用STM32的FSMC接口驱动LCD屏 0次下载
- CKS32F4xx系列FSMC功能简介 676次阅读
- 基于fsmc总线对彩屏的驱动设计方案 2105次阅读
- STM32单片机FSMC模块的应用 3152次阅读
- STM32单片的启动过程解析 1756次阅读
- STM32单片机对TFTLCD的驱动设计 6723次阅读
- STM32单片机的FSMC对TFT的驱动 3884次阅读
- STM32CubeMX新建工程的过程及方法解析 7028次阅读
- 基于STM32单片机FSMC协议分析 3523次阅读
- 基于FPGA和STM32的FSMC通信 1.2w次阅读
- 浅谈STM32的FSMC的TFT笔记 9887次阅读
- FSMC如何读写CPLD 3403次阅读
- STM32之FSMC驱动LCD屏应用 7724次阅读
- ofdm技术的优缺点解析,ofdm技术原理介绍 9w次阅读
- 最全STM32外设资料汇总 2.8w次阅读
- 智能指纹解锁六大功能及其优缺点解析 5572次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多