×
单片机 > 单片机程序设计 > 详情

STM32f4---TFTLCD显示实验代码(06)

发布时间:2020-05-19 发布时间:
|

特别注意:本函数使用了printf来打印 LCD ID,所以,如果你在主函数里面没有初始化串口,那么将导致程序死在printf里面!!如果不想用printf,那么请注释掉它。

LCD 驱动相关的函数就给大家讲解到这里。接下来,我们看看主函数代码如下:

int main(void)

{  

    u8 x=0;

  u8 lcd_id[12];       //存放 LCD ID 字符串

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2

  delay_init(168);  //初始化延时函数

  uart_init(115200);    //初始化串口波特率为115200

  

  LED_Init();          //初始化 LED

    LCD_Init();         //初始化 LCD FSMC 接口

  POINT_COLOR=RED;  

  sprintf((char*)lcd_id,"LCD ID:X",lcddev.id);//将 LCD ID 打印到 lcd_id数组。

     while(1)  

  {      

    switch(x)

    {

      case 0:LCD_Clear(WHITE);break;

      case 1:LCD_Clear(BLACK);break;

      case 2:LCD_Clear(BLUE);break;

      case 3:LCD_Clear(RED);break;

      case 4:LCD_Clear(MAGENTA);break;

      case 5:LCD_Clear(GREEN);break;

      case 6:LCD_Clear(CYAN);break;  

      case 7:LCD_Clear(YELLOW);break;

      case 8:LCD_Clear(BRRED);break;

      case 9:LCD_Clear(GRAY);break;

      case 10:LCD_Clear(LGRAY);break;

      case 11:LCD_Clear(BROWN);break;

    }

    POINT_COLOR=RED;     

    LCD_ShowString(30,40,210,24,24,"Explorer STM32F4");  

    LCD_ShowString(30,70,200,16,16,"TFTLCD TEST");

    LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");

      LCD_ShowString(30,110,200,16,16,lcd_id);    //显示 LCD ID           

        

    LCD_ShowString(30,130,200,12,12,"2014/5/4");                    

       x++;

    if(x==12)x=0;

    LED0=!LED0;delay_ms(1000);  

  }  

}

该部分代码将显示一些固定的字符,字体大小包括24*12、16*8和12*6等三种,同时显示LCD 驱动 IC 的型号,然后不停的切换背景颜色,每 1s 切换一次。而 LED0 也会不停的闪烁,指示程序已经在运行了。其中我们用到一个 sprintf 的函数,该函数用法同 printf,只是 sprintf把打印内容输出到指定的内存区间上,sprintf的详细用法,请百度。

另外特别注意:uart_init 函数,不能去掉,因为在 LCD_Init 函数里面调用了 printf,所以一旦你去掉这个初始化,就会死机了!实际上,只要你的代码有用到printf,就必须初始化串口,否则都会死机,即停在 usart.c里面的 fputc函数,出不来。


关键字:STM32f4  TFTLCD  显示实验 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式