BearPi Std 板从入门到放弃 - 引气入体篇(12)(LCD 显示图片)

简介

前篇使用SPI驱动LCD, 并使用BearPi LCD驱动库, 接下来将使用该库显示图片;
	主芯片: STM32L431RCT6
	LED : PC13 \ 推挽输出即可 \ 高电平点亮
	串口: Usart1 / LPUART
	SPI(与LCD数据传输) : SPI2
	LCD_RESET(复位引脚):  PC7 \  推挽输出即可 
	LCD_POWER(背光灯电源引脚): PC6 \  推挽输出即可 
	LCD_WR_RS(片选引脚): PB15 \  推挽输出即可 
	KEY1 : PB2 \ 上拉 \ 低电平按下
	KEY2 : PB3 \ 上拉 \ 低电平按下

步骤

创建项目

基于上一篇 BearPi Std 板从入门到放弃 - 引气入体篇(11)(SPI驱动 TFT LCD(ST7789))

增加按键初始化

不需要开启中断, 只是输入和上拉即可
BearPi Std 板从入门到放弃 - 引气入体篇(12)(LCD 显示图片)_第1张图片

LCD2Image生成图像数据

选择你的图片并设置参数和保存

  1. 生成led_off
    图片本身像素100 * 180
    保存将生成*.c, 我将上图生成为led_off.c
    BearPi Std 板从入门到放弃 - 引气入体篇(12)(LCD 显示图片)_第2张图片

  2. 生成led_on
    图片本身像素100 * 180
    保存将生成*.c, 我将上图生成为led_on.cBearPi Std 板从入门到放弃 - 引气入体篇(12)(LCD 显示图片)_第3张图片

添加用户代码

int main()
{
	extern const unsigned char gImage_led_on[36008];
	extern const unsigned char gImage_led_off[36008];
	... 
	while(1)
	{
		if (HAL_GPIO_ReadPin(USER_KEY1_GPIO_Port, USER_KEY1_Pin) == RESET)
    {
			HAL_Delay(100);
			if (HAL_GPIO_ReadPin(USER_KEY1_GPIO_Port, USER_KEY1_Pin) == RESET)
			{
				LCD_Show_Image(LCD_START_X, LCD_START_Y, 100, 180, gImage_led_on);
			}
    }
    else if (HAL_GPIO_ReadPin(USER_KEY2_GPIO_Port, USER_KEY2_Pin) == RESET)
    {
      HAL_Delay(100);
			if (HAL_GPIO_ReadPin(USER_KEY2_GPIO_Port, USER_KEY2_Pin) == RESET)
			{
				LCD_Show_Image(LCD_START_X, LCD_START_Y, 100, 180, gImage_led_off);
			}
    }
	}
	...
}

效果

Key1 按下显示led_on, Key2 按下显示led_off
BearPi Std 板从入门到放弃 - 引气入体篇(12)(LCD 显示图片)_第4张图片

代码

完整项目代码

你可能感兴趣的:(嵌入式吧,BearPi,STM32,SPI,TFT,LCD,ShowImage)