对正点原子利用FSMC写TFT的实现过程的理解

(琢磨了一天的结果,不知道各位意见如何~)

1、“写寄存器”是什么意思?
        “写寄存器”是指给LCD发送命令,命令内容为寄存器编号、指令等等(本质上也是数据,因为是通过数据口传送的),“写数据”是指给LCD发送数据,内容为寄存器配置值、GRAM颜色数据等等。


2、利用FSMC外扩SRAM的意义:
        FSMC模块完成了对通讯协议和物理导线的封装,意思是把对外存的写入简化为对内存变量的赋值,让我们可以忽略数据传输时序和物理的各种功能脚的连接。而我们把SRAM偷换成了LCD时,对于FSMC模块来说仍是写SRAM,但实际上写的是LCD,好像FSMC被骗了一样。


3、为什么写命令或写数据只需给结构体成员赋值?
        LCD结构体的第一个成员(用于存储命令)被定义在特定地址上,该地址对应于外部SRAM的某存储地址(以FSMC的视角看),如果要对这个成员写入一个值,在物理上必须通过通讯接口发送到SRAM芯片的对应内存位置来存储,由于FSMC模块对通讯的封装,使得这个过程被简化为对变量的赋值,让我们可以忽略数据传输时序和物理的各种功能脚的连接。我们给该成员赋值时,实际上是由FSMC模块自动控制使IO口产生规定的写操作时序,期间地址IO口变成应有地址,使得RS引脚为0(虽然FSMC以为自己是在表达要写入的SRAM内存地址,但对LCD来说意思是将要发送的数据是个LCD控制命令),数据口变成我想发送的命令数据值(本质也是数据,但是有效位是8位。虽然FSMC的数据口定义成了16位,但是没关系,8位已经自然地右对齐了),FSMC以为完成了对第一个成员的存储器对应地址的写入,事实上完成了对LCD的命令发送。
        当给LCD结构体的第二个成员(用于存储数据)写值时,FSMC控制地址IO口变成对应的地址,使得RS为1(对LCD来说意思是要发数据了),数据口变成要写入的数据值,FSMC以为完成了对第二个成员的存储器对应地址的写入,事实上完成了对LCD的数据发送。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值