项目中需要使用LCD,硬件上跟原子大哥的连接有点不同,不知道FSMC的初始化怎么修改,求论坛大神帮帮忙

2019-08-18 19:02发布

项目中需要使用LCD,硬件上跟原子大哥的连接有点不同,我的硬件连接下面这样的


PD4    ----- RD
PD5    ----  WR
PD7    ----  CS
PE2    ----  RS

不知道FSMC的初始化怎么修改,(项目比较急,没法自己去研究了。求论坛大神帮帮忙)

  readWriteTiming.FSMC_AddressSetupTime = 0x01;         //地址建立时间(ADDSET)为2个HCLK 1/36M=27ns
  readWriteTiming.FSMC_AddressHoldTime = 0x00;         //地址保持时间(ADDHLD)模式A未用到       
  readWriteTiming.FSMC_DataSetupTime = 0x0f;                 // 数据保存时间为16个HCLK,因为液晶驱动IC的读数据的时候,速度不能太快,尤其对1289这个IC。
  readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
  readWriteTiming.FSMC_CLKDivision = 0x00;
  readWriteTiming.FSMC_DataLatency = 0x00;
  readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;         //模式A


writeTiming.FSMC_AddressSetupTime = 0x00;         //地址建立时间(ADDSET)为1个HCLK  
  writeTiming.FSMC_AddressHoldTime = 0x00;         //地址保持时间(A               
  writeTiming.FSMC_DataSetupTime = 0x03;                 ////数据保存时间为4个HCLK       
  writeTiming.FSMC_BusTurnAroundDuration = 0x00;
  writeTiming.FSMC_CLKDivision = 0x00;
  writeTiming.FSMC_DataLatency = 0x00;
  writeTiming.FSMC_AccessMode = FSMC_AccessMode_A;         //模式A


  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;//  这里我们使用NE4 ,也就对应BTCR[6],[7]。
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; // 不复用数据地址
  FSMC_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_WrapMode = FSMC_WrapMode_Disable;   
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;  
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;        //  存储器写使能
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;   
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; // 读写使用不同的时序
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming; //读写时序
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &writeTiming;  //写时序

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);  //初始化FSMC配置

  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);  // 使能BANK1



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
Akatsuki_lim
1楼-- · 2019-08-18 20:20
黄俊 发表于 2017-5-23 18:36
PD4    ----- RD
PD5    ----  WR
PD7    ----  CS

使用PD7复用FSMC_NE1功能的话

#define LCD_BASE        ((u32)(0x60000000 | 0x00FFFFFE))

应该是这样
黄俊
2楼-- · 2019-08-19 01:16
有人吗?
abb200628
3楼-- · 2019-08-19 06:33
黄俊 发表于 2017-5-23 17:16
有人吗?

没人
Akatsuki_lim
4楼-- · 2019-08-19 10:22
 精彩回答 2  元偷偷看……
黄俊
5楼-- · 2019-08-19 11:34
Akatsuki_lim 发表于 2017-5-23 17:32
[mw_shl_code=applescript,true]//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令 ...

PD4    ----- RD
PD5    ----  WR
PD7    ----  CS
PE2    ----  RS

这几个脚不用该吗?  我修改了  #define LCD_BASE        ((u32)(0x6D000000))  我现在使用的是A23 这样修改以后还是没法驱动
黄俊
6楼-- · 2019-08-19 15:22
Akatsuki_lim 发表于 2017-5-23 17:32
[mw_shl_code=applescript,true]//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令 ...

控制芯片是ILI9486

一周热门 更多>