历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2018年04月23日 | STM32F429 Discovery FMC驱动原子4.3寸LCD

2018-04-23 来源:eefocus

上一篇写了GPIO简单的流水灯测试,看着有点单调,习惯了串口调试,板子上没有串口 那就另想办法吧,看着LCD突然有了个想法,为什么不把调试信息输出到LCD上,以前在做2416 WINCE开发的时候就经常这样干非常直观,那说干就干。


STM32F429I-DISO SDK里已经把开发包做好,那就直接拿过来用吧。


#define MESSAGE1   "STM32F429I-Discoverry"   //提示信息  

#define MESSAGE1_1 "    GPIO TEST        "     

#define MESSAGE2   " LED3     LED4  "  

#define MESSAGE2_1 "      ^-^       "  

#define MESSAGE5   "   LED3 = %d"      //LED3状态  1亮 0灭  

#define MESSAGE6   "   LED4 = %d"      //LED4状态  

#define LINENUM            0x15        //行数  

#define FONTSIZE         Font12x12     //字体大小  


定义完了,那就该具体实现了,惯例先初始化 LCD初始化实现:


static void Display_Init(void)  

{  

  /* Initialize the LCD */  

  LCD_Init();  

  LCD_LayerInit();  

  /* Eable the LTDC */  

  LTDC_Cmd(ENABLE);  

    

  /* Set LCD Background Layer  */  

  LCD_SetLayer(LCD_BACKGROUND_LAYER);  

    

  /* Clear the Background Layer */   

  LCD_Clear(LCD_COLOR_WHITE);  

    

  /* Configure the transparency for background */  

  LCD_SetTransparency(0);  

    

  /* Set LCD Foreground Layer  */  

  LCD_SetLayer(LCD_FOREGROUND_LAYER);  

  

  /* Configure the transparency for foreground */  

  LCD_SetTransparency(200);  

    

  /* Clear the Foreground Layer */   

  LCD_Clear(LCD_COLOR_WHITE);  

    

  /* Set the LCD Back Color and Text Color*/  

  LCD_SetBackColor(LCD_COLOR_BLUE);  

  LCD_SetTextColor(LCD_COLOR_WHITE);  

    

    /* Set the LCD Text size */  

  LCD_SetFont(&FONTSIZE);  

    

  /* Set the LCD Back Color and Text Color*/  

  LCD_SetBackColor(LCD_COLOR_BLUE);  

  LCD_SetTextColor(LCD_COLOR_WHITE);  

    

  LCD_DisplayStringLine(LINE(LINENUM), (uint8_t*)MESSAGE1);  

  LCD_DisplayStringLine(LINE(LINENUM + 1), (uint8_t*)MESSAGE1_1);  

  LCD_DisplayStringLine(LINE(0x17), (uint8_t*)"                               ");  

    

  /* Set the LCD Text size */  

  LCD_SetFont(&Font16x24);  

    

  LCD_DisplayStringLine(LCD_LINE_0, (uint8_t*)MESSAGE2);  

  LCD_DisplayStringLine(LCD_LINE_1, (uint8_t*)MESSAGE2_1);  

    

  /* Set the LCD Back Color and Text Color*/  

  LCD_SetBackColor(LCD_COLOR_WHITE);  

  LCD_SetTextColor(LCD_COLOR_BLUE);   

}  


初始化完成了,那就改实现显示函数了


static void Display(void)  

{  

  uint8_t  led3 = 0, led4 = 0;  

  uint8_t aTextBuffer[50];  

    

  led3 = GPIO_ReadOutputDataBit(LED3_GPIO_PORT,LED3_PIN);     //读取LED3对应引脚值  

  

  sprintf((char*)aTextBuffer, MESSAGE5, led3);  

  LCD_DisplayStringLine(LCD_LINE_4, (uint8_t*)aTextBuffer);    //把LED3状态更新到屏幕上  

      

  led4 = GPIO_ReadOutputDataBit(LED3_GPIO_PORT,LED4_PIN);      //读取LED4对应引脚值      

  sprintf((char*)aTextBuffer, MESSAGE6, led4);    

   LCD_DisplayStringLine(LCD_LINE_6, (uint8_t*)aTextBuffer);    //把LED4状态更新到屏幕上  

}  


这就是显示函数,读取LED对应的值,组成字符串,最后更新到LCD,LCD显示。

接下来就改主函数了:


int main(void)  

{  

  int i;  

      

    Display_Init();  

  LEDInit();  

    SysTickInit();  

  while (1)  

  {  

        Delay(500);  

        GPIO_SetBits(LED4_GPIO_PORT,LED4_PIN);  

        GPIO_ResetBits(LED3_GPIO_PORT,LED3_PIN);  

        Display();  

        Delay(500);  

        GPIO_SetBits(LED3_GPIO_PORT,LED3_PIN);  

        GPIO_ResetBits(LED4_GPIO_PORT,LED4_PIN);  

        Display();  

  }  

}  


惯例,主要函数部分实现完了,那就看最终的显示结果吧.


推荐阅读

史海拾趣

ERP公司的发展小趣事

进入21世纪20年代,电子智链紧跟智能化浪潮,将人工智能(AI)技术引入ERP系统。公司推出了“智链AI”解决方案,通过机器学习算法自动优化生产流程、预测市场需求和降低库存成本。这一创新使得电子智链在竞争激烈的ERP市场中脱颖而出,成为了电子行业数字化转型的领军企业。

Eurohm Resistors公司的发展小趣事

在电子行业的早期,Eurohm Resistors公司就以其独特的技术创新能力崭露头角。公司创始人敏锐地察觉到了半导体技术在电子行业中的重要地位,于是投入大量资源研发高精度、高稳定性的电阻器。通过不断的技术迭代和创新,Eurohm Resistors成功推出了一系列性能卓越的电阻器产品,赢得了市场的广泛认可。

Davicom公司的发展小趣事

面对不断变化的市场环境和客户需求,Davicom始终保持创新精神,不断寻求新的发展机遇。公司紧跟行业趋势,积极投入研发资源,推出了一系列具有创新性的产品。这些新产品不仅提升了公司的市场竞争力,也为公司的持续发展注入了新的动力。

Compex Corporation公司的发展小趣事

Compex Corporation的创立可以追溯到电子行业的早期阶段。自XXXX年成立以来,公司便致力于研发和生产高质量的单层电容器、电阻以及其他电子元件。初期,公司面临着激烈的市场竞争和技术挑战,但凭借其卓越的技术团队和不懈的努力,逐渐在市场中站稳了脚跟。公司不断推出创新产品,满足了客户对高质量电子元件的需求,逐渐赢得了客户的信任和市场份额。

Good-Ark公司的发展小趣事
考虑电路的防水、防尘等性能,确保其在恶劣环境下也能正常工作。
Free2Move公司的发展小趣事
为整个电路提供所需的电能。

问答坊 | AI 解惑

美国海归经历:国内和国外生活的真实比较 回国发展

美国海归经历:国内和国外生活的真实比较 回国发展 在这个版面上看的时间挺长的,发现各位都是在美国呆久了,完全按照美国的思考方式来套中国,那自然是国内年薪和美国比太低了。   我在美国时也和各位想法差不多,那时候在美国一年下来税前也 ...…

查看全部问答>

[原创]公司批发零售纸尿裤,好奇,妈咪宝贝,帮宝适,奶粉等

公司批发零售奶粉:澳美多 澳优 宝乐康 葆婴 贝因美 赐多利 多美滋 恩贝儿 飞鹤 华惠氏 慧聪 康维多 林贝儿 美可高特 美素 美赞臣 蒙牛 明治 亲亲宝贝 雀巢 三鹿 三元 森永 圣元 施恩 适宝康 完达山 味全 雅培 雅士利 伊利 优素 奶瓶 优幼 纸尿裤,好 ...…

查看全部问答>

招贤:美新半导体应用(方案)工程师-够才你就来!

要求: a.本科或以上,电子相关专业;b.3年电子实际开发经验,有一定的硬件设计经验,了解EMC/EMI和相关测试;c.熟悉MCU应用和C语言, 了解Matlab等算法模型工具和操作系统优先;d.了解汽车电子系统,有其开发经验优先;e.工作认真负责,勇于承担责任, ...…

查看全部问答>

发现有人做运放专题,配合学习,大家把坛子里运放的资料的顶起吧

赶快,人多力量大,学习要趁热打铁。 我们把运放的资料都顶起,作为运放专题来学习一下。 我觉得这样效果会很不错的!…

查看全部问答>

形象的说明模拟地和数字地

为什么模拟地与数字地应有各自独立的回路?大家都是地,为什么还分彼此? Link水平很低,常常会问一些低级问题。 幸蒙Perter指点,明白了少许,现在和大家分享一下。 其实本质是对的,就是数字地,模拟地都是地,并不是他们俩头上长角,十分的怪 ...…

查看全部问答>

Protel绘图经验谈

 笔者使用protel多年,积累了一些用其绘制电路图的使用经验和技巧,现将这些经验和技巧成文,希望对大家用protel绘制电路图有所帮助。 经验一:   因为protel是专业电路设计软件,可供电子类各专业设计人员和广大电子爱好者使用,所提供的 ...…

查看全部问答>

Wince 5.0 真機調試問題

    我在用真是還進調試的時候,程序中打了斷點,可是斷點不其作用。後來用其他同事的電腦調試卻可以。應該是我vs還進的問題吧,請高人指點,如何解決這個問題。…

查看全部问答>

u盘枚举成功后,名字显示为Removable disk,该如何才能显示为自己想要的名字?

不是按右键的“重命名”,是插上U盘,自动显示自己想要的名字!…

查看全部问答>

fade in / fade out

  这个月一直有个问题让我困扰着我.   在CE中是否可以真正意义上的实现相对于屏幕弹出的窗口或是图片淡入淡出(弹出时)?就是说.在mobile屏幕上(而不是你自己写的窗口或是其它你程序中的背景图片上),一个窗口淡入淡出.或是一个 ...…

查看全部问答>

驱动程序编译的问题!急!!!

我用的是2003DDK +XP,写好程序后,用build命令编译时,没有生成.sys文件 出现了下面的编译信息: BUILD: Adding /Y to COPYCMD so xcopy ops won\'t hang. 高手看看问题出在了哪里? 急啊,解决就揭帖! …

查看全部问答>