当前位置:首页 > 单片机 > 单片机
[导读] 上一篇写了GPIO简单的流水灯测试,看着有点单调,习惯了串口调试,板子上没有串口 那就另想办法吧,看着LCD突然有了个想法,为什么不把调试信息输出到LCD上,以前在做2416 WINCE开发的时候就经常这样干

上一篇写了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();

}

}


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


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

7月29日消息,LG Display已将其在美国的70项LCD液晶显示器相关专利转让给三星显示,值得注意的是,三星显示已于三年前退出LCD业务。

关键字: LCD 三星

HT16K24操作电压为2.4V~5.5V,内建I²C通信接口,提供三种LCD显示与按键模式:24SEG × 4COM + 24 KEY;22SEG × 6COM + 22 KEY;20SEG × 8COM + 20 K...

关键字: LCD MCU 蜂鸣器

离线GPS工具:跟踪、保存和查找具有距离和方位的航路点——没有网络,没有云,您的数据,您的规则。

关键字: GPS设备 LCD 微控制器 Arduino Uno

在技术上,LCD和OLED各有其独特之处。液晶电视通过控制液态晶体实现图像显示,其原理是在两片玻璃基板中夹入液态晶体,通过细小的电线控制水晶分子的方向。而OLED凭借自发光二极管带来更优的视角与色彩表现,其RGB色彩信号...

关键字: OLED LCD

双锁系统,通过键盘输入密码开门,客人来了用短信开门

关键字: LCD 双锁系统 L293D 变压器

在汽车显示系统领域,TFT LCD显示屏目前是车载显示面板的主流选择。与此同时,OLED和micro-LED显示屏也逐渐吸引了市场的广泛关注。为了适应不同的显示技术,我们需要开发相应的电源技术。TFT LCD显示屏通常使...

关键字: LCD OLED micro-LED

如今,汽车行业对先进显示屏的需求空前高涨,亟需能够实现更大尺寸、更高亮度、曲面设计、更高分辨率和更高对比度的解决方案。与此同时,各类新型车载显示屏也日益受到青睐。目前,TFT LCD是汽车平板显示技术的主流选择。OLED...

关键字: LCD OLED micro-LED

大家好,欢迎回来。在这个项目中,我们将学习如何使用键盘和LCD显示制作一个安全的基于Arduino的门锁。你可以用它来保护你的办公室、房间或家里的保险箱。要锁门和开锁,你需要在安全系统中输入密码。这确保了只有经过授权的人...

关键字: 键盘 LCD Arduino 电子门锁

April 1, 2025 ---- 乐金显示广州LCD 8.5代线今日(4月1日)正式交割至TCL华星光电,并改名为t11。至此,TCL华星光电将拥有2条6代、4条8.5代、1条8.6代和2条10.5代LCD产线。Tr...

关键字: 电视 PID面板 LCD

将您的树莓派Pico变成带有触摸屏界面的USB-HID设备!在这个项目中,我们将在Arduino IDE中设置编程环境,为3.5”Pico Touch LCD屏蔽配置库,测试基本功能,创建简单的按钮(用于复制和粘贴),显...

关键字: 树莓派 触摸屏 LCD Windows
关闭