资源简介
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
评论
共有 条评论