資源簡介
ili9341的驅動程序,包含初始化程序和一些簡單的應用
代碼片段和文件信息
#include?
#include?“ili_lcd_9341.h“
//?Compatible?list:
//?ili9341
//鍐呰仈鍑芥暟瀹氫箟鐢ㄤ互鎻愰珮鎬ц兘
#ifdef?__CC_ARM???????????????? ?/*?ARM?Compiler? */
#define?lcd_inline??? static?__inline
#elif?defined?(__ICCARM__)???????? /*?for?IAR?Compiler?*/
#define?lcd_inline? inline
#elif?defined?(__GNUC__)???????? /*?GNU?GCC?Compiler?*/
#define?lcd_inline? static?__inline
#else
#define?lcd_inline??????????????????static
#endif
#define?rw_data_prepare()???????????????write_cmd(0x2C)
struct?rt_device?xh_lcd_device;
static?unsigned?short?deviceid?=?0;//璁劇疆涓?釜闈欐?鍙橀噺鐢ㄦ潵淇濆瓨LCD鐨処D
void?delay_(int?a)
{
volatile?unsigned?int?dl;
while(a--)
{
for(dl=0;?dl<500;?dl++);
}
}
/*********?control?***********/
static?void?LCD_FSMCConfig(void)
{
/*?FSMC?GPIO?configure?*/
{
GPIO_InitTypeDef?GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC?ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD?|?RCC_APB2Periph_GPIOE??ENABLE);
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_13;
GPIO_Init(GPIOD?&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_1?;
GPIO_Init(GPIOE?&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode?=??GPIO_Mode_AF_PP;
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_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_Init(GPIOE?&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_4;
GPIO_Init(GPIOD?&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_5;
GPIO_Init(GPIOD?&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_7;
GPIO_Init(GPIOD?&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_11;
GPIO_Init(GPIOD?&GPIO_InitStructure);
//rt_hw_us_delay(500);
delay_(500);
GPIO_SetBits(GPIOD?GPIO_Pin_13);
//rt_hw_us_delay(500);
delay_(500);
GPIO_SetBits(GPIOE?GPIO_Pin_1);
//rt_hw_us_delay(500);
delay_(500);
GPIO_ResetBits(GPIOD?GPIO_Pin_3);
//rt_hw_us_delay(500);
delay_(500);
GPIO_SetBits(GPIOD?GPIO_Pin_6);
}
{
FSMC_NORSRAMInitTypeDef??FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef??Timing_read;
FSMC_NORSRAMTimingInitTypeDef??Timing_write;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct?=?&Timing_read;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct?=?&Timing_write;
FSMC_NORSRAMStructInit(&FSMC_NORSRAMInitStructure);
Timing_read.FSMC_AddressSetupTime?=?0x02;
Timing_read.FSMC_AddressHoldTime??=?0x00;
Timing_read.FSMC_DataSetupTime?=?0x05;
Timing_read.FSMC_AccessMode?=?FSMC_AccessMode_B;
Timing_write.FSMC_AddressSetupTime?=?0x02;
Timing_write.FSMC_AddressHoldTime??=?0x00;
Timing_write.FSMC_Dat
評論
共有 條評論