OpenEdv-开源电子网

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

FSMC移植的困惑

[复制链接]

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2013-10-3 19:37:10 | 显示全部楼层 |阅读模式

在FSMC移植过程中一直无法显示,无意中碰到PD6,TFT可以显示了,但是屏幕一直在闪。程序里面根本没有用到PD6啊。求解
void LCD_GPIO_Init(void)                //LCD控制IO口初始化
{
  GPIO_InitTypeDef GPIO_InitStructure;
 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |
                         RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE , ENABLE);
      
///////////////////////LCD_Bus IO口////////////////////////////////// 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
          GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
          GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
       
///////////////////////LCD复位IO口//////////////////////////////////
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;  //PE1->LCD_RESET
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

///////////////////////控制IO口//////////////////////////////////
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;    //背光PD13->Light
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_11; //PD4-> OE,PD5->WE,PD7->CS,PD11->RS
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
  GPIO_Init(GPIOD, &GPIO_InitStructure);  
}


void LCD_FSMC_Init(void)         //LCD FSMC初始化
{

  FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  FSMC_NORSRAMTimingInitTypeDef  WriteTiming;
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

  WriteTiming.FSMC_AddressSetupTime = 0x02;                                                 //地址建立时间
  WriteTiming.FSMC_AddressHoldTime = 0x00;                                                 //地址保持时间
  WriteTiming.FSMC_DataSetupTime = 0x05;                                                 //数据建立时间
  WriteTiming.FSMC_BusTurnAroundDuration = 0x00;                                            //总线恢复时间
  WriteTiming.FSMC_CLKDivision = 0x00;                                                      //时钟分频
  WriteTiming.FSMC_DataLatency = 0x00;                                                      //数据保持时间
  WriteTiming.FSMC_AccessMode = FSMC_AccessMode_B;                                          //在地址\数据线不复用的情况下,ABCD模式的区别不大

  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;                                //NOR FLASH的BANK1
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;              //数据与地址总线不复用
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;                          //存储器类型NOR FLASH
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;                //数据宽度为16位
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;            //使用异步写模式,禁止突发模式
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;          //只在突发模式下有效,等待信号极性为低
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;                          //禁止非对齐性突发模式
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;  //仅在突发模式下有效,NWAIT信号在什么周期产生
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;               //写使能
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;                      //仅在突发模式下有效,禁用NWAIT信号
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;                  //禁止扩展模式,扩展模式可以使用独立的读、写模式
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;                      //禁止突发写操作
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &WriteTiming;                  //配置读写时序
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &WriteTiming;                         //配置写时序 

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);            //初始化FSMC配置
  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);                                             //使能FSMC Bank1_SRAM Bank
   
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2012-10-11
在线时间
15 小时
发表于 2013-10-3 21:49:56 | 显示全部楼层
楼主是广西龙胜的吗??????????????????????
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-3 22:21:05 | 显示全部楼层
回复【2楼】MDC012170:
---------------------------------
我老婆是
回复 支持 反对

使用道具 举报

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2012-10-11
在线时间
15 小时
发表于 2013-10-3 22:23:36 | 显示全部楼层
明白!!!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-3 23:01:54 | 显示全部楼层
PD6是背光吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-3 23:54:56 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
不是PD13是背光
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-3 23:56:45 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
手不碰PD6读不出ID ,串口上没有任何反应  碰一下就可以读出ID,而且没有错误
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-4 11:28:31 | 显示全部楼层
回复【7楼】龙胜阳子:
---------------------------------
PD6接LCD哪里了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-4 13:39:08 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
PD6什么都没有接,而且程序里也没有用到PD6
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-4 19:14:07 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
现在发现个问题把串口初始化波特率改为9600就正常了   改为115200就不行
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-4 22:16:38 | 显示全部楼层
回复【10楼】龙胜阳子:
---------------------------------
怀疑你板子硬件有问题,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-5 03:45:47 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
后来把PD6强制输出低极性,暂时解决了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 18:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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