OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3479|回复: 6

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

[复制链接]

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2014-10-31
在线时间
40 小时
发表于 2017-5-23 13:08:41 | 显示全部楼层 |阅读模式
100金钱
项目中需要使用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



最佳答案

查看完整内容[请看2#楼]

使用PD7复用FSMC_NE1功能的话 #define LCD_BASE ((u32)(0x60000000 | 0x00FFFFFE)) 应该是这样
硬件入门,初学软件,请多多指教
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

336

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1576
注册时间
2015-8-9
在线时间
625 小时
发表于 2017-5-23 13:08:42 | 显示全部楼层
黄俊 发表于 2017-5-23 18:36
PD4    ----- RD
PD5    ----  WR
PD7    ----  CS

使用PD7复用FSMC_NE1功能的话

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

应该是这样
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2014-10-31
在线时间
40 小时
 楼主| 发表于 2017-5-23 17:16:57 | 显示全部楼层
有人吗?
硬件入门,初学软件,请多多指教
回复

使用道具 举报

17

主题

111

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
252
金钱
252
注册时间
2012-11-3
在线时间
30 小时
发表于 2017-5-23 17:23:04 | 显示全部楼层

没人
老夫驾鹤,有事烧纸!
回复

使用道具 举报

12

主题

336

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1576
注册时间
2015-8-9
在线时间
625 小时
发表于 2017-5-23 17:32:12 | 显示全部楼层

[mw_shl_code=applescript,true]//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其!                             
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)[/mw_shl_code]

修改LCD的访问地址,其他的基本不用改
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2014-10-31
在线时间
40 小时
 楼主| 发表于 2017-5-23 18:36:26 | 显示全部楼层
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 这样修改以后还是没法驱动
硬件入门,初学软件,请多多指教
回复

使用道具 举报

11

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2014-10-31
在线时间
40 小时
 楼主| 发表于 2017-5-23 19:50:52 | 显示全部楼层
Akatsuki_lim 发表于 2017-5-23 17:32
[mw_shl_code=applescript,true]//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令 ...

控制芯片是ILI9486
硬件入门,初学软件,请多多指教
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-20 21:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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