一、XFMC是什么?
示例:XFMC是指静态控制器,用于控制SRAM、ROM等外部器件,用XFMC驱动LCD相当于控制SRAM。详细说明这里不再敷衍,本文主要介绍如何使用XFMC驱动LCD。
二、XFMC驱动LCD
1.初始化LCD复位引脚
代码如下(示例):
void LCD_REST_GPIO_Init(void)
{
GPIO_InitType GPIO_InitStructure;
//PE0 RESET
RCC_EnableAPB2PeriphClk( RCC_APB2_PERIPH_GPIOE, ENABLE);
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitPeripheral(GPIOE, &GPIO_InitStructure);
}
2.初始化XFMC引脚
代码如下(示例):
void LCD_XFMC_GPIO_Init(void)
{
GPIO_InitType GPIO_InitStructure;
RCC_EnableAPB2PeriphClk( RCC_APB2_PERIPH_AFIO
|LCD_CS_CLK | LCD_RS_CLK | LCD_WR_CLK | LCD_RD_CLK
| LCD_D0_CLK | LCD_D1_CLK | LCD_D2_CLK | LCD_D3_CLK
| LCD_D4_CLK | LCD_D5_CLK | LCD_D6_CLK | LCD_D7_CLK
| LCD_D8_CLK | LCD_D9_CLK | LCD_D10_CLK | LCD_D11_CLK
| LCD_D12_CLK | LCD_D13_CLK| LCD_D14_CLK | LCD_D15_CLK,
ENABLE);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.Pin = LCD_D0_PIN;
GPIO_InitPeripheral(LCD_D0_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D1_PIN;
GPIO_InitPeripheral(LCD_D1_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D2_PIN;
GPIO_InitPeripheral(LCD_D2_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D3_PIN;
GPIO_InitPeripheral(LCD_D3_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D4_PIN;
GPIO_InitPeripheral(LCD_D4_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D5_PIN;
GPIO_InitPeripheral(LCD_D5_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D6_PIN;
GPIO_InitPeripheral(LCD_D6_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D7_PIN;
GPIO_InitPeripheral(LCD_D7_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D8_PIN;
GPIO_InitPeripheral(LCD_D8_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D9_PIN;
GPIO_InitPeripheral(LCD_D9_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D10_PIN;
GPIO_InitPeripheral(LCD_D10_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D11_PIN;
GPIO_InitPeripheral(LCD_D11_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D12_PIN;
GPIO_InitPeripheral(LCD_D12_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D13_PIN;
GPIO_InitPeripheral(LCD_D13_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D14_PIN;
GPIO_InitPeripheral(LCD_D14_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_D15_PIN;
GPIO_InitPeripheral(LCD_D15_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_RD_PIN;
GPIO_InitPeripheral(LCD_RD_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_WR_PIN;
GPIO_InitPeripheral(LCD_WR_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_CS_PIN;
GPIO_InitPeripheral(LCD_CS_PORT, &GPIO_InitStructure);
GPIO_InitStructure.Pin = LCD_RS_PIN;
GPIO_InitPeripheral(LCD_RS_PORT, &GPIO_InitStructure);
}
3.初始化XFMC
代码如下(示例):
void LCD_XFMC_CONF_Init(void)
{
XFMC_NorSramInitTpye XFMC_NORSRAMInitStructure;
XFMC_NorSramTimingInitType readWriteTiming;
RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_XFMC, ENABLE);
readWriteTiming.AddrSetTime = XFMC_NOR_SRAM_ADDR_SETUP_TIME_1HCLK;
readWriteTiming.AddrHoldTime = XFMC_NOR_SRAM_ADDR_HOLD_TIME_1HCLK;
readWriteTiming.DataSetTime = 0x03; //0x01~0xFF
readWriteTiming.BusRecoveryCycle = XFMC_NOR_SRAM_BUSRECOVERY_TIME_1HCLK;
readWriteTiming.ClkDiv = XFMC_NOR_SRAM_CLK_DIV_2;
readWriteTiming.DataLatency = XFMC_NOR_SRAM_DATA_LATENCY_2CLK;
readWriteTiming.AccMode = XFMC_NOR_SRAM_ACC_MODE_A;
XFMC_NORSRAMInitStructure.Block = XFMC_BANK1_BLOCK1;
XFMC_NORSRAMInitStructure.DataAddrMux = XFMC_NOR_SRAM_MUX_DISABLE;//不复用地址
XFMC_NORSRAMInitStructure.MemType = XFMC_MEM_TYPE_SRAM;//SRAM
XFMC_NORSRAMInitStructure.MemDataWidth = XFMC_NOR_SRAM_DATA_WIDTH_16B;//数据宽16BIT
XFMC_NORSRAMInitStructure.BurstAccMode = XFMC_NOR_SRAM_BURST_MODE_DISABLE;
XFMC_NORSRAMInitStructure.WaitSigPolarity = XFMC_NOR_SRAM_WAIT_SIGNAL_LOW;
XFMC_NORSRAMInitStructure.AsynchroWait = XFMC_NOR_SRAM_ASYNC_NWAIT_DISABLE;
XFMC_NORSRAMInitStructure.WrapMode = XFMC_NOR_SRAM_WRAP_DISABLE;
XFMC_NORSRAMInitStructure.WaitSigConfig = XFMC_NOR_SRAM_NWAIT_BEFORE_STATE;
XFMC_NORSRAMInitStructure.WriteEnable = XFMC_NOR_SRAM_WRITE_ENABLE;
XFMC_NORSRAMInitStructure.WaitSigEnable = XFMC_NOR_SRAM_NWAIT_DISABLE;
XFMC_NORSRAMInitStructure.ExtModeEnable = XFMC_NOR_SRAM_EXTENDED_ENABLE;
XFMC_NORSRAMInitStructure.WriteBurstEnable = XFMC_NOR_SRAM_BURST_WRITE_DISABLE;
XFMC_NORSRAMInitStructure.RWTimingStruct = &readWriteTiming;
XFMC_NORSRAMInitStructure.WTimingStruct = &readWriteTiming;
XFMC_InitNorSram(&XFMC_NORSRAMInitStructure);
XFMC_EnableNorSram(XFMC_BANK1_BLOCK1, ENABLE);
}
4.初始化LCD
代码如下(示例):
//初始化lcd
void LCD_Init(void)
{
LCD_REST_GPIO_Init();
LCD_XFMC_GPIO_Init();
LCD_XFMC_CONF_Init();
LCD_REST_H;
delay_ms(1);
LCD_REST_L;
delay_ms(10);
LCD_REST_H;
delay_ms(120);
//+++++++++++++++++++++++++
LCD_WR_REG(0x11);
delay_ms(120); //ms
LCD_WR_REG(0x36);
LCD_WR_DATA(0x60);
LCD_WR_REG(0x3a);
LCD_WR_DATA(0x05);
LCD_WR_REG(0xB2);
LCD_WR_DATA(0x0C);
LCD_WR_DATA(0x0C);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x33);
LCD_WR_DATA(0x33);
LCD_WR_REG(0xB7);
LCD_WR_DATA(0x75); //VGH=14.97V, VGL=-10.43V
LCD_WR_REG(0xBB); //VCOM
LCD_WR_DATA(0x19);
LCD_WR_REG(0xC0);
LCD_WR_DATA(0x2C);
LCD_WR_REG(0xC2);
LCD_WR_DATA(0x01);
LCD_WR_REG(0xC3); //GVDD VRH
LCD_WR_DATA(0x1D); //GVDD=5V
LCD_WR_REG(0xC4);
LCD_WR_DATA(0x20);
LCD_WR_REG(0xC6); //频率
LCD_WR_DATA(0x0F);
LCD_WR_REG(0xD0);
LCD_WR_DATA(0xA4);
LCD_WR_DATA(0xA1);
LCD_WR_REG(0xE0);
LCD_WR_DATA(0xD0);
LCD_WR_DATA(0x03);
LCD_WR_DATA(0x0B);
LCD_WR_DATA(0x14);
LCD_WR_DATA(0x17);
LCD_WR_DATA(0x1D);
LCD_WR_DATA(0x3F);
LCD_WR_DATA(0x44);
LCD_WR_DATA(0x4E);
LCD_WR_DATA(0x0A);
LCD_WR_DATA(0x13);
LCD_WR_DATA(0x13);
LCD_WR_DATA(0x1E);
LCD_WR_DATA(0x20);
LCD_WR_REG(0xE1);
LCD_WR_DATA(0xD0);
LCD_WR_DATA(0x03);
LCD_WR_DATA(0x0B);
LCD_WR_DATA(0x12);
LCD_WR_DATA(0x14);
LCD_WR_DATA(0x1C);
LCD_WR_DATA(0x3F);
LCD_WR_DATA(0x44);
LCD_WR_DATA(0x4E);
LCD_WR_DATA(0x0B);
LCD_WR_DATA(0x17);
LCD_WR_DATA(0x15);
LCD_WR_DATA(0x1E);
LCD_WR_DATA(0x21);
LCD_WR_REG(0x29);
delay_ms(120);
LCD_WR_REG(0x2C);
delay_ms(120);
}
二,软件下载
10.国民技术N32G45X例程之- XFMC驱动液晶屏软件篇
https://download.csdn.net/download/suqingxiao/72546758
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/suqingxiao/article/details/122256487
|