Maix Bit(K210) 裸机开发教程(五)LCD显示图片

LCD显示

  • 1、代码获取
  • 2、代码修改
  • 3、LCD 显示常用API
    • 3.1、画点函数:
    • 3.2 字符绘制:
    • 3.3 字符串绘制:
    • 3.4 清屏函数:
    • 3.5 、绘制矩形:
    • 3.6 、图片绘制:
  • 4、主函数

1、代码获取

  在我上一篇博客里面简述了代码如何下载以及使用。https://blog.csdn.net/weixin_45488643/article/details/109990336如有需要自行查看。
选择LCD图片显示:
在这里插入图片描述

2、代码修改

首先自己创建一个新的工程文件,添加代码Maix Bit(K210) 裸机开发教程(五)LCD显示图片_第1张图片
安装依赖库文件:
Maix Bit(K210) 裸机开发教程(五)LCD显示图片_第2张图片
比较重要的一点,开启控制:
打开board_config.h 我自己使用的是Maix bit 开发板,所以选择如下配置文件,根据需要选择自己的开发板硬件配置。
Maix Bit(K210) 裸机开发教程(五)LCD显示图片_第3张图片

3、LCD 显示常用API

3.1、画点函数:

void lcd_draw_point(uint16_t x, uint16_t y, uint16_t color)

x,y 起始坐标;color 要绘制点颜色

3.2 字符绘制:

void lcd_draw_char(uint16_t x, uint16_t y, char c, uint16_t color)

x,y 字符写入起始坐标;color字符颜色;c 需要绘制字符

3.3 字符串绘制:

void lcd_draw_string(uint16_t x, uint16_t y, char *str, uint16_t color)

x,y 字符写入起始坐标;color字符颜色;*str 字符

3.4 清屏函数:

void lcd_clear(uint16_t color)

color 屏幕颜色

3.5 、绘制矩形:

void lcd_draw_rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t width, uint16_t color)

x1,y1,x2,y2矩形框坐标;width绘制线条宽度;color 绘制线条颜色

3.6 、图片绘制:

void lcd_draw_picture(uint16_t x1, uint16_t y1, uint16_t width, uint16_t height, uint32_t *ptr)

x1,y1起始坐标;width,height图片宽度和高度;*ptr 图片数据指针

4、主函数

#include 

#include "board_config.h"
#include "fpioa.h"
#include "image.h"
#include "lcd.h"
#include "nt35310.h"
#include "sysctl.h"
#include "unistd.h"

static void io_set_power(void) {
#if BOARD_LICHEEDAN
  sysctl_set_power_mode(SYSCTL_POWER_BANK6, SYSCTL_POWER_V18);
  sysctl_set_power_mode(SYSCTL_POWER_BANK7, SYSCTL_POWER_V18);
#else
  sysctl_set_power_mode(SYSCTL_POWER_BANK1, SYSCTL_POWER_V18);
#endif
}

static void io_mux_init(void) {
#if BOARD_LICHEEDAN
  fpioa_set_function(38, FUNC_GPIOHS0 + DCX_GPIONUM);
  fpioa_set_function(36, FUNC_SPI0_SS3);
  fpioa_set_function(39, FUNC_SPI0_SCLK);
  fpioa_set_function(37, FUNC_GPIOHS0 + RST_GPIONUM);
  sysctl_set_spi0_dvp_data(1);
#else
  fpioa_set_function(8, FUNC_GPIOHS0 + DCX_GPIONUM);
  fpioa_set_function(6, FUNC_SPI0_SS3);
  fpioa_set_function(7, FUNC_SPI0_SCLK);
  sysctl_set_spi0_dvp_data(1);
#endif
}

int main(void) {
  printf("lcd test\n");
  io_mux_init();
  io_set_power();
  lcd_init();
#if BOARD_LICHEEDAN
  lcd_set_direction(DIR_YX_RLDU); /* left up 0,0 */
#else
  lcd_set_direction(DIR_YX_RLUD); /* left up 0,0 */
#endif
  while (1) {
    lcd_draw_picture(0, 0, 320, 240, rgb_image);
    usleep(1000000);
    printf("show pic\n");
  }
  while (1)
    ;
}

你可能感兴趣的:(SDK,Maix,Bit,K210,嵌入式)