你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STMF407VE FSMC配置LCD失败

[复制链接]
疯子~ 提问时间:2017-9-15 14:35 /
悬赏5ST金币已解决
GPIO_InitTypeDef GPIO_InitStructure;
FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
         FSMC_NORSRAMTimingInitTypeDef  readWriteTiming;
FSMC_NORSRAMTimingInitTypeDef  writeTiming;
//使能FSMC时钟
RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC,ENABLE);
//使能PORTB,D,E,时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE, ENABLE);
//LCD使能I/O设置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
   GPIO_Init(GPIOB, &GPIO_InitStructure);
         /*FSMC
         * data lines,FSMC-D0~D15: PD 0 1 8 9 10 14 15,PE 7 8 9 10 11 12 13 14 15
         * PD4-FSMC_NOE  CD-RD PD4
         * PD5-FSMC_NWE  CD-WR PD5
         * PD7-FSMC_NE1  CD-CS PD7
         * PD11-FSMC_A18 CD-DC PD13
         */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
   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_Mode = GPIO_Mode_AF;
         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
         GPIO_Init(GPIOE,&GPIO_InitStructure);
         //复用映射
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource7,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource10,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource13,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource14,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC);
         
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource8,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource10,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource11,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource12,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource13,GPIO_AF_FSMC);
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource14,GPIO_AF_FSMC);        
         GPIO_PinAFConfig(GPIOE,GPIO_PinSource15,GPIO_AF_FSMC);
//地址建立时间(ADDSET)为16个HCLK 1/168M=96ns
readWriteTiming.FSMC_AddressSetupTime = 0xf;
//地址保持时间(ADDHLD)模式A未用到
readWriteTiming.FSMC_AddressHoldTime = 0x00;
//数据保存时间为60个HCLK,因为液晶驱动IC的读数据的时候,速度不能太快
readWriteTiming.FSMC_DataSetupTime = 60;
readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
readWriteTiming.FSMC_CLKDivision = 0x00;
readWriteTiming.FSMC_DataLatency = 0x00;
//模式A
readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;
//地址建立时间(ADDSET)为9个HCLK  
writeTiming.FSMC_AddressSetupTime = 9;  
//地址保持时间(ADDHLD)模式A未用到
writeTiming.FSMC_AddressHoldTime = 0x00;  
//数据保存时间为8个HCLK
writeTiming.FSMC_DataSetupTime = 8;   
writeTiming.FSMC_BusTurnAroundDuration = 0x00;
writeTiming.FSMC_CLKDivision = 0x00;
writeTiming.FSMC_DataLatency = 0x00;
//模式A  
writeTiming.FSMC_AccessMode = FSMC_AccessMode_A;
//使用NE1
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;   
//不复用数据地址
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
//FSMC_MemoryType_SRAM;  //SRAM   
FSMC_NORSRAMInitStructure.FSMC_MemoryType =FSMC_MemoryType_SRAM;
//存储器数据宽度为16bit   
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
//FSMC_BurstAccessMode_Disable
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =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配置
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
//使能BANK1
         FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
Delay_ms(50);
         printf("5555555555555\r\n");
LCD_Write(0x0000,0x0001);/*程序卡死在这*/
         printf("6666666666666\r\n");
Delay_ms(50);
//ID 9325
LCD_infor.ID = LCD_Read(0x0000);
         printf("ID:%x\r\n",LCD_infor.ID);

最佳答案

查看完整内容

给你个STM32F103ZET6的程序,得按套路来。 ILI9325屏比较经典,在开发板STM3210E上用的就是这个屏,在其它开发板中也见到用这个屏的。
收藏 2 评论3 发布时间:2017-9-15 14:35

举报

3个回答
toofree 回答时间:2017-9-15 14:35:54
给你个STM32F103ZET6的程序,得按套路来。
ILI9325屏比较经典,在开发板STM3210E上用的就是这个屏,在其它开发板中也见到用这个屏的。

液晶屏TFT测试程2.rar (1.14 MB, 下载次数: 4)

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wenyangzeng 回答时间:2018-1-15 09:44:42
貌似没有看到楼主配置FSMC读写地址
typedef struct
{
  __IO uint16_t LCD_REG;
  __IO uint16_t LCD_RAM;
} LCD_TypeDef;

#define LCD_BASE           ((uint32_t)(0x60000000 | 0x0C000000))
#define LCD                ((LCD_TypeDef *) LCD_BASE)

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

海迹天涯 回答时间:2018-1-15 11:08:46
给你顶起

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版