对于主函数来数,只需要
int main(void)
{
SystemInit();
SysTick_Init();
LCD_Init();
while(1){
Delay(10);
}
}
即可,初始化系统,系统时钟,初始化LCD屏。
system_stm32f4xx.c文件中有SystemInit()函数,里面的内容不用改,直接拿来可以用。 SysTick_Init函数是自己实现的 void SysTick_Init(void)
{
while(SysTick_Config(SystemCoreClock/1000000)!=0); //设置系统节拍时钟为1us中断一次
}
下面是关键的LCD初始化函数
首先,需要知道,硬件是如何连接的,下面是我的连接线方式: PD14 -----FSMC_D0 ----D0
PD15 -----FSMC_D1 ----D1
PD0 -----FSMC_D2 ----D2
PD1 -----FSMC_D3 ----D3
PE7 -----FSMC_D4 ---D4
PE8 -----FSMC_D5 ---D5
PE9 -----FSMC_D6 ---D6
PE10 -----FSMC_D7 ----D7
PE11 -----FSMC_D8 ----D8
PE12 -----FSMC_D9 ----D9
PE13 -----FSMC_D10 ----D10
PE14 -----FSMC_D11 ----D11
PE15 -----FSMC_D12 ----D12
PD8 -----FSMC_D13 ----D13
PD9 -----FSMC_D14 ----D14
PD10 -----FSMC_D15 ----D15
PD4 -----FSMC_NOE -----RD
PD5 -----FSMC_NWE ----WR
PD7 -----FSMC_NE1 ----CS
PE3 -----FSMC_A19 ----RS
没有背光控制,我直接让背光常亮,RESET引脚我连接到了单片机RESET引脚上了。使用了NE1。 #define LCD_RAM *(vu16*)((u32)0x60100000) //disp Data ADDR
#define LCD_REG *(vu16*)((u32)0x60000000) //disp Reg ADDR
|