提交 4975dc8d 编写于 作者: 彭国庆's avatar 彭国庆

samples: driver: display_kscan: 适配多模态板型

上级 47b1a9ee
流水线 #16501 已通过 ,包含阶段
in 6 minute 和 14 second
......@@ -2,7 +2,7 @@
cmake_minimum_required(VERSION 3.20.0)
set(SUPPORT_BOARDS csk6012_nano csk6011a_nano)
set(SUPPORT_BOARDS csk6012_nano csk6011a_nano csk6_duomotai_devkit)
if(NOT ${BOARD} IN_LIST SUPPORT_BOARDS)
message("Please choose one of the following boards:")
foreach(item ${SUPPORT_BOARDS})
......@@ -15,3 +15,5 @@ find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(display)
target_sources(app PRIVATE src/main.c)
.. _display-sample:
简介
=====================
Display Sample
##############
本文演示了如何在Zephyr RTOS中使用显示驱动和键盘扫描设备。运行该代码后,将在屏幕上显示图形,并通过日志输出响应触摸按键事件。
构建步骤
=====================
lisa zep build -b csk6_duomotai_devkit ./samples/driver/display_kscan/ -p
功能说明
=====================
1. 获取显示设备句柄
::
display_dev = DEVICE_DT_GET(DT_INST(0, sitronix_st7789v));
2. 获取显示设备能力
::
display_get_capabilities(display_dev, &capabilities);
3. 初始化键盘扫描设备
::
kscan_init();
4. 填充缓冲区并写入显示设备
::
fill_buffer_fnc(TOP_LEFT, 0, buf, buf_size);
display_write(display_dev, x, y, &buf_desc, buf);
5. 打开显示设备的显示
::
display_blanking_off(display_dev);
运行
======================
按下开发板复位按钮,运行程序。程序将初始化显示设备和键盘扫描设备,在显示屏上绘制彩色方块,并响应触摸按键事件。
......@@ -88,5 +88,3 @@
int-gpios = <&gpiob 11 0>;
};
};
......@@ -11,3 +11,5 @@ CONFIG_KSCAN=y
CONFIG_I2C=y
CONFIG_KSCAN_FT5336=y
CONFIG_KSCAN_FT5336_INTERRUPT=y
......@@ -3,11 +3,11 @@ sample:
name: display_sample
tests:
sample.board.csk6.display.kscan:
platform_allow: csk6011a_nano
platform_allow: csk6011a_nano csk6_duomotai_devkit
tags: csk6
harness: console
harness_config:
fixture: display_st7789_ft5336
type: one_line
regex:
- "Display sample for"
\ No newline at end of file
- "Display sample for"
......@@ -59,7 +59,7 @@ LOG_MODULE_REGISTER(sample, LOG_LEVEL_INF);
#ifdef CONFIG_ARCH_POSIX
#define RETURN_FROM_MAIN(exit_code) posix_exit_main(exit_code)
#else
#define RETURN_FROM_MAIN(exit_code) return
#define RETURN_FROM_MAIN(exit_code) return exit_code
#endif
enum corner {
......@@ -213,7 +213,7 @@ static void fill_buffer_mono(enum corner corner, uint8_t grey, uint8_t *buf, siz
memset(buf, color, buf_size);
}
void main(void)
int main(void)
{
size_t x;
size_t y;
......@@ -236,7 +236,7 @@ void main(void)
if (display_dev == NULL) {
LOG_ERR("Device not found. Aborting sample.");
RETURN_FROM_MAIN(1);
RETURN_FROM_MAIN(-1);
}
display_get_capabilities(display_dev, &capabilities);
......@@ -291,14 +291,14 @@ void main(void)
break;
default:
LOG_ERR("Unsupported pixel format. Aborting sample.");
RETURN_FROM_MAIN(1);
RETURN_FROM_MAIN(-1);
}
buf = k_malloc(buf_size);
if (buf == NULL) {
LOG_ERR("Could not allocate memory. Aborting sample.");
RETURN_FROM_MAIN(1);
RETURN_FROM_MAIN(-1);
}
(void)memset(buf, 0xFFu, buf_size);
......@@ -351,3 +351,5 @@ void main(void)
RETURN_FROM_MAIN(0);
}
支持 Markdown
0% or
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册