我正在尝试了解 STM32f4-discovery 上的灵活静态内存控制器 (FSMC)。
我做了很多研究,但我无法理解这是如何工作的。我是一个完全自学的程序员,目前正在攻读化学学位,所以请放轻松,哈哈。
我找到了这些网站,我一直在用这些网站来解决这个问题:
https://electronics.stackexchange.com/questions/165200/stm32f407-fsmc-interface-with-tft-lcd
http://prog3.com/sbdm/blog/u013030441/article/details/48159101
我还找到了带有 ST 示例代码的库。
好的,现在误解:
当我查看上面两个 TFT 驱动程序的代码时,我看到 LCD 是通过结构或定义访问的,例如
#define LCD_REG (*((volatile unsigned short *) 0x60000000))
#define LCD_RAM (*((volatile unsigned short *) 0x60020000))
LCD_RAM = data;
LCD_REG = command;
我的问题是为什么他们必须访问 FSMC SRAM 库的两个区域而不是一个。基本上为什么我不能通过只写入 LCD_REG(内存库的开头)来向 LCD 发送数据?
我一定缺少关于 FSMC 的一些东西。我已经多次阅读数据表,我知道银行从 0x6000 0000 开始,但我无法解释为什么他们会在 0x6002 0000 的另一个部分访问银行。
非常感谢任何有助于理解的帮助。如果您知道我可以用来学习 FSMC 的书籍或网站,我将不胜感激。
谢谢大家的时间!