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

发布者:EnchantedBreeze最新更新时间:2018-09-29 来源: eefocus关键字:STM32f4  TFTLCD  显示实验 手机看文章 扫描二维码
随时随地手机看文章

特别注意:本函数使用了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  显示实验 引用地址:STM32f4---TFTLCD显示实验代码(06)

上一篇:STM32f4按键输入实验代码(01)
下一篇:STM32f4---TFTLCD显示实验代码(05)

推荐阅读最新更新时间:2024-03-16 16:14

STM32F4更新W25Q16字库源程序
一开始我下载了读取SD卡的程序,但液晶显示屏幕上没反应,于是我就下载了这个关于更新字库的程序,就有反应了。 本实验将实现如下功能:开机的时候先检测W25Q16中是否已经存在字库,如果存在,则按次序显示汉字(三种字体都显示)。如果没有,则检测SD卡和文件系统,并查找SYSTEM文件夹下的FONT文件夹,在该文件夹内查找UNIGBK.BIN、GBK12.FON、GBK16.FON (这几个文件的由来,我们前面已经介绍了)。在检测到这些文件之后,就开始更新字库,更新完毕才开始显示汉字。通过按按键KEY0,可以强制更新字库。同样我们也是用DS0来指示程序正在运行。 需要拷贝到SD卡根目录文件 1,在系统(或字库)更新的时候,必须用到SY
[单片机]
<font color='red'>STM32F4</font>更新W25Q16字库源程序
STM32F4xx_GPIO常用设置
1、初始化时钟:   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE, ENABLE); 2、输出设置:   GPIO_InitTypeDef GPIO_InitStructure;   GPIO_StructInit(&GPIO_InitStructure);   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_9;   GPIO_Init
[单片机]
S3C2440 测试程序(六) LCD显示实验2_触摸小图片切换大图片
实验效果: 点击屏幕中的6副小图片,可将该小图片切换成全屏图片。 1、欲实现小图片,需将原来图片压缩,此处压缩成原来的1/8。代码如下: void Paint_Bmp_Small(int x0,int y0,int h,int l,int k,unsigned char bmp ) { //从 至 为止被显示被压缩了1/k的图片 int x,y; U32 c; int p = 0; h = h/k; l = l/k; for( y = 0 ; y l ; y++ ) // l=240/k { for( x = 0 ; x
[单片机]
第16章 STM32F429必备的HAL库API
16.1 初学者重要提示 对于一些常用的函数,大家一定要熟练的掌握都实现了什么功能,比如HAL_Init,HAL_RCC_OscConfig,HAL_RCC_ClockConfig等。最好的办法是把这些函数的源码读一遍。 16.2 那些是必备的API 这里我们通过一个简单的初始化流程来了解STM32F4的工程模板所必备的库文件和API: 第1步:系统上电复位,进入启动文件startup_stm32f429xx.s,在这个文件里面执行复位中断服务程序。 在复位中断服务程序里面执行函数SystemInit,此函数在文件system_stm32f4xx.c里面。 之后是调用编译器封装好的函数,比如用于MDK的启动文件是调
[单片机]
第16章 <font color='red'>STM32F4</font>29必备的HAL库API
stm32f4 定时捕获
Ⅰ、概述 本文基于上一篇文章“TIM输入波形捕获(脉冲频率)”的基础上进行拓展,上一篇文章主要是捕获波形的频率,本文主要拓展捕获波形的占空比。 笔者实验测试的方法和上一篇文章一样,通过信号发生器产生PWM信号,通过串口发送频率和占空比到上位机(上位机串口助手显示其数值)。(没有信号发生器的朋友可以结合上一篇文章PWM输出做信号源;在同一块板子上也可以使用不同定时器,将PWM输出引脚接在捕获输入引脚) 实验现象:不同频率的实验现象请看上一篇文章(该文章提供的工程笔者也是进行了大量不同频率的测试,误差在几Hz属正常范围)。 1000Hz、20% - 80%占空比现象: 1000Hz、51% - 58%占空比现象: 关于
[单片机]
<font color='red'>stm32f4</font> 定时捕获
STM32F4XX高效驱动篇1-UART
之前一直在做驱动方面的整理工作,对驱动的高效性有一些自己的理解这里和大家分享一下。并奉驱动程序,本程序覆盖uart1-8。 串口驱动,这是在每个单片机中可以说是必备接口。可以说大部分产品中都会使用,更有甚者一个产品中用到8个串口。这样一个高效的驱动是决定您产品优劣的关键因素。本文主要针对STM32F4XX系列芯片做的一个驱动接口层。以减少您在开发项目时驱动方面所花费时间,以及为程序达到高效的处理为目的。 从51,pic到现在的STM32,个人感觉STM32这方面做的非常突出,丰富的使用模式,强大的引脚映射功能,强大的处理能力等,给我留下的深刻的印象。 关于串口的使用方式,个人总结出以下三种: 1) 中断接收,状态查询发送:
[单片机]
STM32学习之:STM32F4XX的三大主体部分
三大模块:电源、IO口、时钟。 一、 首先,我们来看一下电源,下面是电源框图 从上面我们可以看出,电源给内部的三大关键部分供电,一是给ADC供电,这块无需多说,二是电池备份域,VBAT引脚可以连接到一个可选的待机电压由电池供电或由另一个来源,当V DD是断开时保留的备份寄存器的内容和供给的RTC。还一部分主要用来给数字逻辑部分供电,像唤醒逻辑、看门狗、IO等,给内核、内存和数字外设的供电需要在VDD之后加上一个电压调整器。 接下来介绍的就是低功耗模式了 默认情况下,微控制器是在运行模式后,一个系统或一个上电复位。在运行模式的CPU的时钟HCLK和程序代码执行,一些低功耗模式是可用的,以节省电力时,不需要保持运行的中央处理器
[单片机]
STM32F4学习笔记11——CRC循环冗余校验
关于CRC校验有以下几个方面 1.模2除(也就是异或)。 2.多项式与二进制关系(x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0,x的最高幂次为R,转换成对应的二进制数有R+1位。)。 CRC基本原理 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)
[单片机]
<font color='red'>STM32F4</font>学习笔记11——CRC循环冗余校验
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved