野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 25868|回复: 3

关于FSMC-液晶显示的问题(学了几天,觉得这节课突然变难了)

[复制链接]
发表于 2014-2-24 21:10:15 | 显示全部楼层 |阅读模式
1、我这样的理解对不对:开发板中我们将NORFlash(位于外部存储器的bank1)的第4区域的作为FSMC控制的存储区域, 0X6C00 0000 ~ 0X6FFF FFFF是bank1第4区域的地址A23低电平时,FSMC控制0X6C00 0000 ~0X6CFF FFFF这片存储区域,同时控制ILI9341的寄存器A23高电平时,FSMC控制0X6D00 0000 ~0X6FFF FFFF这片存储区域,同时控制ILI9341的GRAM这样一来,我们用FSMC模拟8080接口时,FSMC对ILI9341的寄存器写入的命令就和FSMC向0X6C00 0000 ~0X6CFF FFFF地址中的写入的数据相同;FSMC对ILI9341的GRAM写入的数据就和MC向0X6D00 0000 ~0X6FFF FFFF写入的数据相同了。


2、例程中的这段代码火哥能详细解释一下吗,就是用来限定液晶的显示边界的,我只知道功能不知道代码到底是如何实现该功能的。希望火哥能逐句分析一下,例程上的注释看了直接不懂,视频教程也讲的比较含糊


void LCD_OpenWindow(uint16_t x, uint16_t y, uint16_t width, uint16_t height)
       
{       
       
  LCD_ILI9341_CMD(0X2A);                                
       
  LCD_ILI9341_Parameter( x >> 8 );         
       
  LCD_ILI9341_Parameter( x & 0xff );         
       

  LCD_ILI9341_Parameter( (x+width-1) >> 8 );  
       
  LCD_ILI9341_Parameter( (x+width-1) & 0xff );

       
  LCD_ILI9341_CMD(0X2B);                             
       

  LCD_ILI9341_Parameter( y & 0xff );
       
  LCD_ILI9341_Parameter( (y+height-1) >> 8);
       
  LCD_ILI9341_Parameter( (y+height-1) & 0xff);


        }



回复

使用道具 举报

发表于 2014-2-24 21:23:00 | 显示全部楼层
1.就是你理解的这样,实质上就是fsmc外设以nor的时序模拟液晶的8080时序。
2.你理解了上面的意义就知道LCD_ILI9341_Parameter和LCD_ILI9341_CMD一个是向液晶写数据,一个是向液晶写命令了吧,至于写入的具体参数是根据ILI9341的数据手册说明来写的,这些比较繁琐,也不用纠结。其实就是先使用LCD_ILI9341_CMD发送命令,再使用LCD_ILI9341_Parameter紧随命令后面的参数,
回复 支持 反对

使用道具 举报

发表于 2014-2-26 19:33:50 | 显示全部楼层
FSMC的确变得复杂了,主要就是模拟时序和地址的问题,把书里介绍的认真看了几遍才懂
回复 支持 反对

使用道具 举报

发表于 2014-2-28 00:05:16 来自手机 | 显示全部楼层
看得懂,如果自己能写出开这种代码就好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-1 11:41 , Processed in 0.046196 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表