OpenEdv-开源电子网

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

ILI9486 基于 STM32F4 的初始化问题

[复制链接]

10

主题

32

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-8-2
在线时间
36 小时
发表于 2017-8-14 08:54:31 | 显示全部楼层 |阅读模式
20金钱
参照原子哥的例程改的ili9486的初始化函数,在自己画的板上运行,ID显示不出来,也没有显示内容,求助啊求助啊。大神们帮我看看函数有没有问题吧

void LCD_Init(void)
{        
        vu32 i=0;
       
  GPIO_InitTypeDef  GPIO_InitStructure;
        FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  FSMC_NORSRAMTimingInitTypeDef  readWriteTiming;
        FSMC_NORSRAMTimingInitTypeDef  writeTiming;
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOF|RCC_AHB1Periph_GPIOG, ENABLE);//ê1ÄüPD,PE,PF,PGê±Öó  
  RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC,ENABLE);//ê1ÄüFSMCê±Öó  
       

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;//PB15 íÆíìêä3ö,¿ØÖƱ31a
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//ÆÕí¨êä3öÄ£ê½
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  GPIO_Init(GPIOB, &GPIO_InitStructure);//3õê¼»ˉ //PB15 íÆíìêä3ö,¿ØÖƱ31a
  GPIO_SetBits(GPIOB,GPIO_Pin_15);
       
  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;//PD0,1,4,5,8,9,10,14,15 AF OUT
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//¸′óÃêä3ö
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  GPIO_Init(GPIOD, &GPIO_InitStructure);//3õê¼»ˉ  
       
  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;//PE7~15,AF OUT
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//¸′óÃêä3ö
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  GPIO_Init(GPIOE, &GPIO_InitStructure);//3õê¼»ˉ  

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;    //LCD_RST
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
GPIO_Init(GPIOG, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;//PF12,FSMC_A6
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//¸′óÃêä3ö
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  GPIO_Init(GPIOD, &GPIO_InitStructure);//3õê¼»ˉ  

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;//PF12,FSMC_A6
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//¸′óÃêä3ö
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  GPIO_Init(GPIOG, &GPIO_InitStructure);//3õê¼»ˉ
               
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;//PF12,FSMC_A6
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//¸′óÃêä3ö
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz
  GPIO_Init(GPIOF, &GPIO_InitStructure);//3õê¼»ˉ

  GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC);//PD0,AF12
  GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC);//PD1,AF12
  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_PinSource14,GPIO_AF_FSMC);
  GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC);//PD15,AF12

  GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC);//PE7,AF12
  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);//PE15,AF12

  GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC);//WR
  GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC);//RD
  GPIO_PinAFConfig(GPIOF,GPIO_PinSource12,GPIO_AF_FSMC);//RS
  GPIO_PinAFConfig(GPIOG,GPIO_PinSource12,GPIO_AF_FSMC);//CS


  readWriteTiming.FSMC_AddressSetupTime = 0XF;         //μØÖ·½¨á¢ê±¼ä£¨ADDSET£©Îa16¸öHCLK 1/168M=6ns*16=96ns       
  readWriteTiming.FSMC_AddressHoldTime = 0x00;         //μØÖ·±£3Ö걼䣨ADDHLD£©Ä£ê½AÎ′óÃμ½       
  readWriteTiming.FSMC_DataSetupTime = 60;                        //êy¾Y±£′æê±¼äÎa60¸öHCLK        =6*60=360ns
  readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;
  readWriteTiming.FSMC_CLKDivision = 0x00;
  readWriteTiming.FSMC_DataLatency = 0x00;
  readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;         //Ä£ê½A

  writeTiming.FSMC_AddressSetupTime =9;              //μØÖ·½¨á¢ê±¼ä£¨ADDSET£©Îa9¸öHCLK =54ns
  writeTiming.FSMC_AddressHoldTime = 0x00;         //μØÖ·±£3Ö걼䣨A               
  writeTiming.FSMC_DataSetupTime = 8;                 //êy¾Y±£′æê±¼äÎa6ns*9¸öHCLK=54ns
  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;//  ÕaàïÎòÃÇê1óÃNE4 £¬ò2¾í¶Ôó|BTCR[6],[7]¡£
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; // 2»¸′óÃêy¾YμØÖ·
  FSMC_NORSRAMInitStructure.FSMC_MemoryType =FSMC_MemoryType_SRAM;// FSMC_MemoryType_SRAM;  //SRAM   
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;//′æ′¢Æ÷êy¾Y¿í¶èÎa16bit   
  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;        //  ′æ′¢Æ÷D′ê1Äü
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;   
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; // ¶áD′ê1óÃ2»í¬μÄê±Dò
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming; //¶áD′ê±Dò
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &writeTiming;  //D′ê±Dò

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);  //3õê¼»ˉFSMCÅäÖÃ

  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);  // ê1ÄüBANK1
               
        delay_ms(50); // delay 50 ms
        LCD_WriteReg(0x0000,0x0001);
        delay_ms(50); // delay 50 ms
          lcddev.id = LCD_ReadReg(0x0000);  
               
                LCD_WR_REG(0XD3);                //读取ID                  
                lcddev.id=LCD_RD_DATA();       
                lcddev.id=LCD_RD_DATA();       
                  lcddev.id=LCD_RD_DATA();                                                                     
                lcddev.id<<=8;
                lcddev.id|=LCD_RD_DATA();         
               
LCD_WR_REG(0x11);     //参数初始化
delay_ms(120);  
LCD_WR_REG(0x13);
delay_ms(120);

LCD_WR_REG(0XF9);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x08);

LCD_WR_REG(0xC0);
LCD_WR_DATA(0x19);//VREG1OUT POSITIVE
LCD_WR_DATA(0x1a);//VREG2OUT NEGATIVE

LCD_WR_REG(0xC1);
LCD_WR_DATA(0x45);//VGH,VGL    VGH>=14V.
LCD_WR_DATA(0x00);

LCD_WR_REG(0xC2);
LCD_WR_DATA(0x33);

LCD_WR_REG(0XC5);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x28);//VCM_REG[7:0]. <=0X80.

LCD_WR_REG(0xB1);
LCD_WR_DATA(0xB0);//0XB0 =70HZ, <=0XB0.
LCD_WR_DATA(0x11);

LCD_WR_REG(0xB4);
LCD_WR_DATA(0x02); //2

LCD_WR_REG(0xB6);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x42);//0 GS SS SM ISC[3:0];
LCD_WR_DATA(0x3B);

LCD_WR_REG(0xB7);
LCD_WR_DATA(0x07);

LCD_WR_REG(0xE0);
LCD_WR_DATA(0x1F);
LCD_WR_DATA(0x25);
LCD_WR_DATA(0x22);
LCD_WR_DATA(0x0B);
LCD_WR_DATA(0x06);
LCD_WR_DATA(0x0A);
LCD_WR_DATA(0x4E);
LCD_WR_DATA(0xC6);
LCD_WR_DATA(0x39);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);

LCD_WR_REG(0XE1);
LCD_WR_DATA(0x1F);
LCD_WR_DATA(0x3F);
LCD_WR_DATA(0x3F);
LCD_WR_DATA(0x0F);
LCD_WR_DATA(0x1F);
LCD_WR_DATA(0x0F);
LCD_WR_DATA(0x46);
LCD_WR_DATA(0x49);
LCD_WR_DATA(0x31);
LCD_WR_DATA(0x05);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x03);
LCD_WR_DATA(0x1C);
LCD_WR_DATA(0x1A);
LCD_WR_DATA(0x00);

LCD_WR_REG(0XF1);
LCD_WR_DATA(0x36);
LCD_WR_DATA(0x04);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x3C);
LCD_WR_DATA(0x0F);
LCD_WR_DATA(0x0F);
LCD_WR_DATA(0xA4);
LCD_WR_DATA(0x02);

LCD_WR_REG(0XF2);
LCD_WR_DATA(0x18);
LCD_WR_DATA(0xA3);
LCD_WR_DATA(0x12);
LCD_WR_DATA(0x02);
LCD_WR_DATA(0x32);
LCD_WR_DATA(0x12);
LCD_WR_DATA(0xFF);
LCD_WR_DATA(0x32);
LCD_WR_DATA(0x00);

LCD_WR_REG(0XF4);
LCD_WR_DATA(0x40);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x08);
LCD_WR_DATA(0x91);
LCD_WR_DATA(0x04);

LCD_WR_REG(0XF8);
LCD_WR_DATA(0x21);
LCD_WR_DATA(0x04);

LCD_WR_REG(0x36);
LCD_WR_DATA(0x48);

LCD_WR_REG(0x3A);
LCD_WR_DATA(0x55);

LCD_WR_REG(0x11);
delay_ms(120);
LCD_WR_REG(0x29);
LCD_WR_REG(0x002C);

        LCD_Display_Dir(0);       
        LCD_LED=1;       
        LCD_Clear(RED);
}  

最佳答案

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

驱动IC的ID能读出来么?读不出来说明FSMC可能还没配置好
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

338

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1269
金钱
1269
注册时间
2016-3-16
在线时间
280 小时
发表于 2017-8-14 08:54:32 | 显示全部楼层
驱动IC的ID能读出来么?读不出来说明FSMC可能还没配置好
回复

使用道具 举报

10

主题

32

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-8-2
在线时间
36 小时
 楼主| 发表于 2017-8-14 09:34:24 | 显示全部楼层
zhsyghhz 发表于 2017-8-14 09:29
驱动IC的ID能读出来么?读不出来说明FSMC可能还没配置好

读不出来,FSMC配置就是跟例程上的一样
回复

使用道具 举报

10

主题

32

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-8-2
在线时间
36 小时
 楼主| 发表于 2017-8-14 14:41:24 | 显示全部楼层
顶上,是硬件问题吗?附上部分原理图,急急急

1

1

2

2

3

3
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165462
金钱
165462
注册时间
2010-12-1
在线时间
2114 小时
发表于 2017-8-15 01:09:34 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-20 17:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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