Skip to content
GitLab
LSCloud-logo1
Created with Sketch.
LSCloud-logo2
Created with Sketch.
项目
项目组
代码片段
帮助
正在加载...
帮助
关于聆思
登录
切换导航
csk
项目概览
项目概览
详情
动态
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
合并请求
2
合并请求
2
CI / CD
CI / CD
流水线
作业
计划
小工具
烧录包信息打印
烧录包校验
烧录包打包
生成LPK包
收起侧边栏
关闭侧边栏
动态
分支图
作业
提交
打开侧边栏
csk6_zephyr
csk
提交
fba8d5dc
提交
fba8d5dc
编写于
9个月前
作者:
彭国庆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
samples: driver: keysense: 适配多模态板型
上级
e43be4ce
流水线
#16532
已通过 ,包含阶段
in 7 minute 和 54 second
变更
6
流水线
1
Hide whitespace changes
内联
并排
6 个文件被修改
(
84 行新增
以及
9 行删除
)
+84
-9
samples/driver/keysense/CMakeLists.txt
samples/driver/keysense/CMakeLists.txt
+2
-1
samples/driver/keysense/README.rst
samples/driver/keysense/README.rst
+40
-4
samples/driver/keysense/boards/csk6_duomotai_devkit.overlay
samples/driver/keysense/boards/csk6_duomotai_devkit.overlay
+34
-0
samples/driver/keysense/prj.conf
samples/driver/keysense/prj.conf
+1
-0
samples/driver/keysense/sample.yaml
samples/driver/keysense/sample.yaml
+2
-1
samples/driver/keysense/src/main.c
samples/driver/keysense/src/main.c
+5
-3
未找到文件。
samples/driver/keysense/CMakeLists.txt
浏览文件 @
fba8d5dc
...
...
@@ -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,4 @@ find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
project
(
KEYSENSE
)
target_sources
(
app PRIVATE src/main.c
)
This diff is collapsed.
Click to expand it.
samples/driver/keysense/README.rst
浏览文件 @
fba8d5dc
CSK6002 kscan
################
简介
=====================
演示如何使用 Zephyr 的按键扫描 (kscan) API 与模拟按键进行交互。运行该代码后,按键扫描事件将被打印到控制台。
Overview
********
构建步骤
=====================
lisa zep build -b csk6_duomotai_devkit ./samples/driver/keysense/ -p
功能说明
=====================
1. 从设备树中定义的 keysense 节点获取 kscan 设备的配置信息
::
const struct device *kscan_dev = DEVICE_DT_GET(DT_NODELABEL(keysense));
2. 检查 kscan 设备是否就绪
::
if (!device_is_ready(kscan_dev)) {
printk("kscan device not ready \n");
return -1;
}
3. 配置 kscan 设备的回调函数
::
ret = kscan_config(kscan_dev, kb_callback);
4. 回调函数打印按键事件的行列号和按键状态
::
static void kb_callback(const struct device *dev, uint32_t row, uint32_t col, bool pressed)
{
ARG_UNUSED(dev);
printk("Key row = %d col = %d Pressed = %u\n", row, col, pressed);
}
运行
======================
按下开发板复位按钮,运行程序。给定 PB05 输入电压,在控制台中可以看到按键扫描事件的打印信息。
This diff is collapsed.
Click to expand it.
samples/driver/keysense/boards/csk6_duomotai_devkit.overlay
0 → 100644
浏览文件 @
fba8d5dc
/*
* Copyright (c) 2023 Anhui(Shenzhen) Listenai Co., Ltd.
*
* SPDX-License-Identifier: Apache-2.0
*/
&pinctrl {
printctl_aon_iomux_keysense_default: aon_iomux_keysense_default {
pinctrls = <AON_KEY_GPIOB_05>;
};
};
&keysense {
status = "okay";
pinctrl-0 = <&printctl_aon_iomux_keysense_default>;
pinctrl-names = "default";
//keysense use adc channel 6 to sample
io-channels = <&adc0 6>;
//Trigger voltage of each analog key (mV)
analogkey-trigger = <1100 1890 3300>;
};
/ {
aliases {
analogkey = &keysense;
};
};
&adc0 {
status = "okay";
};
This diff is collapsed.
Click to expand it.
samples/driver/keysense/prj.conf
浏览文件 @
fba8d5dc
...
...
@@ -5,3 +5,4 @@ CONFIG_KSCAN_CSK6=y
CONFIG_KSCAN
=
y
CONFIG_PRINTK_SYNC
=
y
CONFIG_ADC_CSK6
=
y
This diff is collapsed.
Click to expand it.
samples/driver/keysense/sample.yaml
浏览文件 @
fba8d5dc
tests
:
sample.board.csk6.driver.keysense
:
platform_allow
:
csk6011a_nano
platform_allow
:
csk6011a_nano
csk6_duomotai_devkit
tags
:
csk6
harness
:
console
harness_config
:
type
:
one_line
regex
:
-
"
csk6
keysense
sample
application
start"
This diff is collapsed.
Click to expand it.
samples/driver/keysense/src/main.c
浏览文件 @
fba8d5dc
...
...
@@ -21,21 +21,23 @@ static void kb_callback(const struct device *dev, uint32_t row, uint32_t col, bo
printk
(
"Key row = %d col = %d Pressed = %u
\n
"
,
row
,
col
,
pressed
);
}
void
main
(
void
)
int
main
(
void
)
{
const
struct
device
*
kscan_dev
=
DEVICE_DT_GET
(
DT_NODELABEL
(
keysense
));
int
ret
=
0
;
if
(
!
device_is_ready
(
kscan_dev
))
{
printk
(
"kscan device not ready
\n
"
);
return
;
return
-
1
;
}
ret
=
kscan_config
(
kscan_dev
,
kb_callback
);
if
(
ret
!=
0
)
{
printk
(
"kscan config error
\n
"
);
return
;
return
-
1
;
}
printk
(
"csk6 keysense sample application start
\n
"
);
return
0
;
}
This diff is collapsed.
Click to expand it.
编辑
预览
支持
Markdown
0%
请重试
or
添加新附件
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录