可是屏的初始化程序跑完只需要很短的时间,我测试了一下,就这句花的时间比较多。
//////////////////////////////
CMD->LCD_REG=(0x11);
Delayms(120);
CMD->LCD_REG=(0x36);
DATA->LCD_RAM=(0x00); //设置坐标原点,RGB顺序(0x08:BGR)
CMD->LCD_REG=(0x3A);
DATA->LCD_RAM=(0x55); // 18bit /16bit 55
CMD->LCD_REG=(0xB2);
DATA->LCD_RAM=(0x0C);
DATA->LCD_RAM=(0x0C);
DATA->LCD_RAM=(0X00);
DATA->LCD_RAM=(0x33);
DATA->LCD_RAM=(0X33);
CMD->LCD_REG=(0xB7); // VGH and VGL setting
DATA->LCD_RAM=(0x75);
CMD->LCD_REG=(0xBB); //VCOMS setting
DATA->LCD_RAM=(0x2C);
CMD->LCD_REG=(0xC0);
DATA->LCD_RAM=(0x2C);
CMD->LCD_REG=(0xC2);
DATA->LCD_RAM=(0x01);
DATA->LCD_RAM=(0xFF);
CMD->LCD_REG=(0xC3); //GVDD, GVCL setting
DATA->LCD_RAM=(0x20);
CMD->LCD_REG=(0xC4);
DATA->LCD_RAM=(0x20);
CMD->LCD_REG=(0xC6);
DATA->LCD_RAM=(0x0F);
CMD->LCD_REG=(0xD0);
DATA->LCD_RAM=(0xA4);
DATA->LCD_RAM=(0xA1);
CMD->LCD_REG=(0xE0); //Set Gamma
DATA->LCD_RAM=(0xD0);
DATA->LCD_RAM=(0x16);
DATA->LCD_RAM=(0x1B);
DATA->LCD_RAM=(0x0B);
DATA->LCD_RAM=(0x0B);
DATA->LCD_RAM=(0x26);
DATA->LCD_RAM=(0x3C);
DATA->LCD_RAM=(0x43);
DATA->LCD_RAM=(0x4F);
DATA->LCD_RAM=(0x28);
DATA->LCD_RAM=(0x13);
DATA->LCD_RAM=(0x13);
DATA->LCD_RAM=(0x2E);
DATA->LCD_RAM=(0x33);
CMD->LCD_REG=(0xE1); //Set Gamma
DATA->LCD_RAM=(0xD0);
DATA->LCD_RAM=(0x16);
DATA->LCD_RAM=(0x1B);
DATA->LCD_RAM=(0x0B);
DATA->LCD_RAM=(0x0A);
DATA->LCD_RAM=(0x26);
DATA->LCD_RAM=(0x3B);
DATA->LCD_RAM=(0x44);
DATA->LCD_RAM=(0x4E);
DATA->LCD_RAM=(0x27);
DATA->LCD_RAM=(0x13);
DATA->LCD_RAM=(0x12);
DATA->LCD_RAM=(0x2E);
DATA->LCD_RAM=(0x33);
上面就是初始化的指令。
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; //指定使用的内存库
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;//指定地址和数据线是否多路复用
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;//链接到内存库的外部内存的类型
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; //外部存储设备位宽
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;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;//打开SMC的写操作
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; //禁用等待状态插入
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; //禁用扩展模式
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;//异步期间禁用等待信号
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;//禁用突发操作
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
这个有什么问题吗?
|