Buildroot 系统使用
准备工作
开始前你需要做一些准备工作,以确保后续内容的顺利进行,我把它们罗列如下:
- 需要一台电脑、一根 12V-2A DC 电源适配器、一根 type-c 数据线。
- 电脑需安装ADB、串口调试工具
- 泰山派 1F 金手指核心板焊接上 DDR 和 EMMC,本文是 2+16G 版本。
- 泰山派 1F 金手指核心板需烧录对应的 Buildroot 系统固件,本文对应章节如无说明,则默认使用
tspi-1f-buildroot-hdmi-20251202.img。 - 一块全功能验证板或自行设计的功能板。本文以 泰山派1F-全功能验证板作为案例。
ADB调试工具
进入网盘的【开发工具】目录,下载 platform-tools_r33.0.3-windows.zip 压缩包。
终端工具
进入网盘的【开发工具】目录,下载 MobaXterm_Portable_v20.3.zip 压缩包。
Buildroot 系统固件下载
进入网盘的【系统镜像 / buildroot】目录,下载 tspi-1f-buildroot-hdmi-20251202.img 镜像。
板子上电
全功能验证板使用的是 12V-2A 的 DC电源插座,参数:内径:2mm 外径:5.9mm
对应电源适配器要求:电压:12V ,电流:2A
![]() |
|---|
将核心板安装好后,接入电源到DC座即可上电。如无异常,则系统正常启动,RGB灯开始亮灯并不断变换颜色。

ADB 调试
我们常用的调试方式有两种方式分别是串口调试与 ADB 调试,当然 adb 中我们还可以通过网络进行调试,我们这里只介绍 usb 这种方式。
需要准备
使用步骤:
Type-c线一端接电脑,另一端接底板的 OTG TYPE-C接口。并确保 泰山派1F 正常进入系统。

确保电脑设备管理器中能识别到了 ADB 设备。
如无法识别,请参照文档 ADB安装与使用教程 安装 ADB 工具。

再打开 windows 运行 cmd 命令,输入 adb shell 就可以开始你的调试操作了。

串口调试
我们常用的调试方式有两种方式分别是串口调试与 ADB 调试,现在介绍串口调试。
需要准备
- 终端工具:进入网盘的【开发工具】目录,下载
MobaXterm_Portable_v20.3.zip压缩包。 - 一个USB to TTL工具,比如 CH340 等。
RK3566 的调试端口 UART2_RX_M0 与 UART2_TX_M0 通过底板的 3Pin 2.54mm排针引出,接线是只需接 TX,RX,GND 三根线即可,需注意底板 TX 对工具 RX,底板 RX 对工具 TX。

打开终端工具,设置串口通信。
调试串口的波特率为 1500000 ,8位数据位,1位停止位,无校验位。

图中的 Serial port 是串口端口号,请自行根据电脑识别情况选择,不是必须完全跟图中一样。
链接成功狂敲回车,当然你也可以在里面运行 linux 相关命令。

HDMI 屏幕显示
烧录 tspi-1f-buildroot-hdmi-20251202.img 固件。
将屏幕的 HDMI 线接入板子的 HDMI 接口。

上电效果如下:
支持 VGA 转 HDMI 接口。

EDP 屏幕显示
烧录 tspi-1f-buildroot-edp-20251202.img 固件。
使用的屏幕:
未调试无电容触摸
![]() |
|---|
接口与接法:
该屏幕并没有一比一完全匹配底板的线序,需要手动调整屏幕线材的线序适配底板LVDS接口线序,同时该屏幕背光电源支持3.3~12V,需要在底板右上角的 H7 排针处使用跳帽短接 VCC_LVDS/EDP 和 3V3 电源才有背光亮。
![]() |
|---|
实现效果
该屏幕并没有一比一完全匹配底板的线序,需要手动调整屏幕线材的线序适配底板LVDS接口线序,同时该屏幕背光电源支持3.3~12V,需要在底板右上角的 H7 排针处使用跳帽短接 VCC_LVDS/EDP 和 3V3 电源才有背光亮。
![]() |
|---|
MIPI 屏幕显示
烧录 tspi-1f-buildroot-mipidsi-20251202.img 固件。
使用的屏幕:
![]() |
|---|
接口与接法:
屏幕线序无需调整可以直连。但无法连接触摸。
![]() |
|---|
实现效果

LVDS 屏幕与电容触摸接口
烧录 tspi-1f-buildroot-lvds-20251202.img 固件。
屏幕参数与购买地址:
![]() | ![]() |
|---|---|
连接方法:
该屏幕并没有一比一完全匹配底板的线序,需要手动调整屏幕线材的线序适配底板LVDS接口线序,同时该屏幕背光电源支持3.3~12V,需要在底板右上角的 H7 排针处使用跳帽短接 VCC_LVDS/EDP 和 3V3 电源才有背光亮。
![]() |
|---|
![]() | ![]() |
|---|---|
实现效果

触摸效果
![]() |
|---|
如果没有屏幕显示 UI,那可以通过查看中断数据的方式确定触摸效果:
# 查看当前触摸接口的中断
cat /proc/bus/input/devices2
效果: 
确定了是哪一个中断号后,通过下面命令查看触摸效果:
比如我是中断2
evtest /dev/input/event2串口日志效果:
root@RK356X:/# evtest /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0xdead product 0xbeef version 0x28bb
Input device name: "goodix-ts"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 800
Event code 1 (ABS_Y)
Value 0
Min 0
Max 1280
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 15
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 255
Event code 50 (ABS_MT_WIDTH_MAJOR)
Value 0
Min 0
Max 255
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 800
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 1280
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 255
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1764713844.309206, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0
Event: time 1764713844.309206, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 461
Event: time 1764713844.309206, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 442
Event: time 1764713844.309206, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 22
Event: time 1764713844.309206, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 22
Event: time 1764713844.309206, -------------- SYN_REPORT ------------
Event: time 1764713844.426706, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 466
Event: time 1764713844.426706, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 440
Event: time 1764713844.426706, -------------- SYN_REPORT ------------
Event: time 1764713844.455570, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 473
Event: time 1764713844.455570, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 433
Event: time 1764713844.455570, -------------- SYN_REPORT ------------
Event: time 1764713844.485134, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1764713844.485134, -------------- SYN_REPORT ------------2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
网口上网
网口位置:

将网线接入底板的 RJ45 网口上。观察 RJ45 接口上是否有黄灯闪烁,闪烁说明连接正常。

接好后,通过 ifconfig 查看网口端口 eth0 的情况,识别出 IP 地址后可以 ping 一个网址进行测试。

WIFI 上网
WIFI 启动
系统启动后,通过 ADB 或 串口调试手段查看网络是否有 WIFI 节点。
这里使用 ADB 调试。
输入命令 ifconfig 查看是否有 wlan0 节点,wlan0 就是 WIFI 。

启动 wpa_supplicant 进程,后面的 WIFI 操作需要它。
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf效果:
root@RK356X:/# wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf
Successfully initialized wpa_supplicant2
WIFI 扫描
需要确保执行了
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf启动 wpa_supplicant 进程。
使用命令 wpa_cli -i wlan0 -p /var/run/wpa_supplicant scan 开始扫描周围 WIFI 信号。
wpa_cli -i wlan0 -p /var/run/wpa_supplicant scan再使用命令 wpa_cli -i wlan0 -p /var/run/wpa_supplicant scan_results 显示扫描结果。
wpa_cli -i wlan0 -p /var/run/wpa_supplicant scan_results效果:

- Bssid:无线网络的 bssid(基本服务集标识符)
- Frequency:频率(MHz)
- Signal level:信号强度(dBm)正常情况下:-20到-65;偏弱:-65到-70 差-70到-90,这时就要检查wifi是否距离过远,模组是否有接天线等
- Flags:无线网络的安全和特性标志
- SSID:无线网络的 SSID 名称
WIFI 连接
方法一:
修改配置文件
``root@RK356X:/# vi /data/cfg/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
network={
ssid="lckfb" # Wi-Fi名字
psk="12345678" # Wi-Fi密码
key_mgmt=WPA-PSK # 加密配置,不加密则改为:key_mgmt=NONE
}2
3
4
5
6
7
8
9
10
11
让wpa_supplicant进程重新读取上述配置
root@RK356X:/# wpa_cli -i wlan0 -p /var/run/wpa_supplicant reconfigure
OK2
发起连接
root@RK356X:/# wpa_cli -i wlan0 -p /var/run/wpa_supplicant reconnect
OK2
测试

方法二:
最新 sdk 集成 wifi_start.sh 脚本,可以在脚本后面直接跟 wifi 名字和密码就能实现连接 wifi。格式如下:
wifi_start.sh WIFI名称 WIFI密码测试

4G 上网
使用 mini PCIE 接口,在底板上该接口仅适配 EC20,没有其他功能。
模块参数
- 型号:EC20CEHDLG-MINIPCIE-C
- 接口类型:Mini PCIe
- 立创商城编号:C2916192
- 立创商城购买链接:EC20-4G模块(Mini PCIe接口)
接口与接法:
模块需要接好天线。

特别注意:SIM卡必须是4G网络制式的卡,并且已经开通了数据流量功能,否则无法上网。
通过 ifconfig 查看是否识别到端口 usb0 ,再使用 ping 测试效果:

如果发现没有 usb0 而是 wwan0 接口,则需要检查并切换 EC20 的工作模式:
# 进入串口界面
microcom -s 115200 /dev/ttyUSB2
# 查询
AT+QCFG="usbnet"?
# 输出如 +QCFG: "usbnet",1 :则当前是QMI,可以直接退出,(CTRL+A)然后按q回车退出。
# 如果不是 QMI(比如 0 ECM, 2 MBIM),建议切到 QMI(1)
# 发送设置命令
AT+QCFG="usbnet",12
3
4
5
6
7
8
9
10
11
完成后重启核心板系统。重启后使用移远的上网方式进行上网,运行下面的命令:
quectel-CM -s cmnet &然后再尝试 ping 网络即可。
蓝牙通信
启动命令:./usr/bin/bt_pcba_test
./usr/bin/bt_pcba_test开启蓝牙设备
hciconfig hci0 up查看蓝牙信息
hciconfig -a扫描蓝牙
hcitool scan以上的测试结果:

USB 使用
全功能底板上有 5 个 USB2.0 接口,1 个 USB3.0 接口。其中有 3 个 USB2.0 是使用的 PH2.0-4P 作为接口。

连接鼠标 / 键盘

连接 U 盘
U盘的内容通常加载在 /dev/sdax 下,需要使用 mount 挂载命令挂载到系统的文件夹内。
例如,我接入 U 盘,发现在 /dev 下新出现了一个 sda1 的路径,这个时候需要 mount 挂载:
mount /dev/sda1 /mnt/sdcard挂载完成后,就可以去到 /mnt/sdcard 路径下查看 U 盘内容。
测试结果:

MicroSD卡使用
卡槽位置与接法:

上面日志表明 TF 卡被识别为 /dev/mmcblk0,可以通过 mount 挂载到本地。操作方法见 USB使用 中的 连接U盘 。
也可以在默认挂载路径中查看,通常是挂载到 media/sdcardX 上,例如我在 media/sdcard0 中看到 SD 卡中的内容:
root@RK356X:/# ls media/sdcard0/
11.wav Download Podcasts
12314.txt EIDE-Project.code-workspace Recordings
Alarms LOST.DIR Ringtones
Android Movies 'System Volume Information'
Audiobooks Music Yygjjjj
DCIM Notifications eh.mp3
Documents Pictures2
3
4
5
6
7
8
M.2 接口
使用 M.2接口的搭配 M2 NVMe 协议的固态硬盘 进行测试。

接口与接法:

输入以下命令查看生成的设备节点
ls /dev/nvme0*实际情况:
root@RK356X:/# ls /dev/nvme0*
/dev/nvme0 /dev/nvme0n1 /dev/nvme0n1p12
使用 mount 挂载 /dev/nvme0n1p1 到本地。
全部的测试效果:

喇叭与耳机
喇叭和耳机可以实现自动切换音频链路,没有接耳机但接了喇叭的时候是喇叭输出音频;接了耳机的时候是耳机输出音频喇叭不输出音频。
接口位置:上方耳机下方喇叭
喇叭不分正负

需要一个 .wav 格式的音频文件。
文件格式转换工具下载
通过网盘分享的文件:FormatFactory.exe
链接: https://pan.baidu.com/s/1hoMjg-9mkeGYLyO_z_EYrw 提取码: LCKF
该工具也在网盘资料中的 开发工具 下。
本文中,已经将一个 .wav 的文件 11.wav 放在了 SD 卡中,SD卡的路径在 media/sdcord0 下。
有了音频文件后可以通过 aplay 播放。
测试命令:
# 去到音频文件所在路径
cd media/sdcard0
# 播放我的音频文件
aplay 11.wav2
3
4
5
全部测试反馈:
root@RK356X:/# cd media/sdcard0
root@RK356X:/media/sdcard0# ls
11.wav Download Podcasts
12314.txt EIDE-Project.code-workspace Recordings
Alarms LOST.DIR Ringtones
Android Movies 'System Volume Information'
Audiobooks Music Yygjjjj
DCIM Notifications eh.mp3
Documents Pictures
root@RK356X:/media/sdcard0# aplay 11.wav
Playing WAVE '11.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
^CAborted by signal Interrupt...
aplay: pcm_write:2051: write error: Interrupted system call2
3
4
5
6
7
8
9
10
11
12
13
CTRL + C 结束播放。
MIC 麦克风收音
接口与接法:

因首发开源版本MIC有硬件问题:MIC的正负搞反了。所以在这里,虽然硬件工程上是上正下负,实际却要接上负下正;
录音命令,ctrl+C 停止
arecord -c 1 -r 44100 -f S16_LE /tmp/record.wav使用 arecord 工具进行录音,并保存为一个名为 record.wav 的文件。下面是对命令中每个选项的解释:
-c 1:单声道录制。
-r 44100:表示采样率,即音频每秒的采样点数量。这里使用 44100 表示每秒采样 44100 个点,这是 CD 质量音频的标准采样率。
-f S16_LE:表示音频采样格式,这里使用 S16_LE 表示采样点以 16 位有符号的 little-endian 格式存储。
/tmp/record.wav:表示录音文件的保存路径和名称
喇叭放音测试
播放刚刚录制的音频,ctrl+c 停止播放或者等待播放结束
aplay /tmp/record.wav红外接收
使用市场上常用的红外接收头模块测试。

接口与接法:

使用以下命令启动红外接收数据输出到串口日志中:
echo 1 > sys/module/rockchip_pwm_remotectl/parameters/code_print效果:
root@RK356X:/# echo 1 > sys/module/rockchip_pwm_remotectl/parameters/code_print
root@RK356X:/#
root@RK356X:/# [ 37.337275] USERCODE=0x281
[ 37.364323] RMC_GETDATA=f8
[ 39.166781] USERCODE=0x281
[ 39.193915] RMC_GETDATA=f8
[ 40.376557] USERCODE=0x281
[ 40.403684] RMC_GETDATA=f9
[ 41.106380] USERCODE=0x281
[ 41.133511] RMC_GETDATA=fb
[ 41.686225] USERCODE=0x281
[ 41.713353] RMC_GETDATA=fc
[ 42.126082] USERCODE=0x281
[ 42.153215] RMC_GETDATA=fa
[ 42.545983] USERCODE=0x281
[ 42.573126] RMC_GETDATA=fa
^C
root@RK356X:/#2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
232 与 485 串口
接口与接法:

U4 表示串口4,U3表示串口3,以此类推。
首次发布版本中存在硬件串口冲突,同一镜像内,只能选择使用一个串口3。即串口3要用于232,那么485的串口3就无法使用;串口3要用于485,那么232的串口3就无法使用;
列举当前有什么串口可用:
ls /dev/ttyS*查看串口接收情况命令:
# 查看串口0
cat /dev/ttyS0
# 查看串口3
cat /dev/ttyS3
# 查看串口4
cat /dev/ttyS42
3
4
5
6
7
8
通过串口发送数据命令:
# 使用串口0发送字符串string test
echo "string test" > /dev/ttyS02
查看波特率命令:
# 查看串口0波特率
stty -F /dev/ttyS02
设置波特率命令(需要权限):
# 设置串口 0 波特率为 115200
stty -F /dev/ttyS0 1152002
测试情况:
232
接 232 时,另一端也必须是 232 的串口信号,需要 TX 和 RX 交叉连接,并且连接GND。

485
连接 485 时,另一端也必须是 485 的串口信号,485 的 A 和 B 无需交叉连接。

I2C 接口
接口与接法:

首发开源版本存在资源冲突,目前 SDK 中两个 I2C2 只能用 I2C_B 这个接口。
| I2C_A | I2C_B | I2C_C |
|---|---|---|
| GND - SDA2_M0 - SCL2_M0 - 3V3 | GND - SDA2_M1 - SCL2_M1 - 3V3 | GND - SDA4 - SCL4 - 3V3 |
搜索是否有 I2C 设备
ls /dev/i2c-*
# 或
i2cdetect -l2
3
效果:
root@RK356X:/# ls /dev/i2c-*
/dev/i2c-0 /dev/i2c-2 /dev/i2c-4 /dev/i2c-5 /dev/i2c-6
root@RK356X:/#
root@RK356X:/# i2cdetect -l
i2c-6 i2c DesignWare HDMI I2C adapter
i2c-4 i2c rk3x-i2c I2C adapter
i2c-2 i2c rk3x-i2c I2C adapter
i2c-0 i2c rk3x-i2c I2C adapter
i2c-5 i2c rk3x-i2c I2C adapter2
3
4
5
6
7
8
9
10
扫描对应 I2C 总线上有什么设备
例如扫描 I2C4 上是否有设备
i2cdetect -a 4效果:
我在 I2C4 接口上接入了一个 SHT20 温湿度传感器,读取到其 I2C 地址为 0x40。
root@RK356X:/# i2cdetect -a 4
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-4.
I will probe address range 0x00-0x7f.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --2
3
4
5
6
7
8
9
10
11
12
13
14
读取单个寄存器
格式:
i2cget -f -y <总线号> <设备地址> <寄存器地址> [模式]参数说明:
- -f:强制访问(忽略权限)
- -y:跳过确认提示
- 模式:b(字节)、w(字)、i(I2C块)
示例:
root@RK356X:/# i2cget -f -y 4 0x40 0xe7 b
0x3a2
描述:在 I2C4 上,向 0x40 的 I2C 设备中的 0xe7 地址发送寄存器读取命令,格式是字节。
写入单个寄存器
格式:
i2cset -f -y <总线号> <设备地址> <寄存器地址> <值> [模式]示例:
root@RK356X:/# i2cset -f -y 4 0x40 0xe6 0x01 b # 向0x40设备0xe6寄存器写入0x01
root@RK356X:/# i2cget -f -y 4 0x40 0xe7 b # 读取验证(SHT20设备特性)
0x012
3
描述:在 I2C4 上,向 0x40 的 I2C 设备中的 0xe6 地址写入 0x01 数据,格式是字节。
其中,0xe6 在 SHT20 中是用户可以写入的地址,0xe7 为读取地址,上面的示例中通过 i2cset 写入 0x01 数据,再使用 i2cget 读出来发现确实更改为了 0x01。
同时读写多个数据
格式:
i2ctransfer -f -y <总线号> w<n>@<地址> <数据> r<m>例如:
i2ctransfer -f -y 4 w2@0x40 0xe6 0x02 r1参数说明:
| 参数 | 说明 |
|---|---|
i2ctransfer | I2C 多消息传输工具,支持组合读写操作 |
-f | 强制访问设备(忽略权限或驱动占用) |
-y | 跳过交互确认(自动执行命令) |
4 | I2C 总线编号(通过 i2cdetect -l 确认) |
w2@0x40 | w表示写操作:向地址 0x40 的设备写入 2 字节数据 |
0xe6 0x02 | 写入的 2 字节数据: - 0xe6:寄存器地址- 0x02:写入值 |
r1 | r表示读操作:从设备读取 1 字节数据 |
在 sht20 传感器上的效果:
root@RK356X:/# i2ctransfer -f -y 4 w2@0x40 0xe6 0x02 r1
0x022
描述:向 I2C4 上的 0x40 地址的设备,发送 2 个命令,第一个数据是寄存器地址0xe6,第二个数据是数据0x02,然后返回出读取的 1 个数据。
GPIO 接口
在使用GPIO前,需要了解以下内容:
RK3566 的GPIO编号计算规则
RK3566 的 GPIO 采用 Bank-Group-Pin 三级结构:
- Bank:0-4(共5组,每组32引脚)
- Group:A/B/C/D(每组8个引脚,对应0-7)
- Pin:0-7(物理引脚编号)
计算公式
GPIO全局编号 = Bank × 32 + Group编号 × 8 + Pin编号(Group编号:A=0, B=1, C=2, D=3)
示例计算
例如 GPIO0_C6,则0 = Bank,C = Group,6 = Pin
接口与接法:

| 引脚名称 | Bank | Group | Pin | 计算过程 | GPIO编号 |
|---|---|---|---|---|---|
| GPIO3_A6 | 3 | 0 | 6 | 3×32 + 0×8 +6 = 102 | 102 |
| GPIO3_C6 | 3 | 2 | 6 | 3×32 + 2×8 +6 = 118 | 118 |
| GPIO3_D0 | 3 | 3 | 0 | 3×32 + 3×8 +0 = 120 | 120 |
| GPIO0_C7 | 0 | 2 | 7 | 0×32 + 2×8 +7 = 23 | 23 |
| GPIO0_C6 | 0 | 2 | 6 | 0×32 + 2×8 +6 = 22 | 22 |
基本操作(以GPIO0_C6为例)
# 导出GPIO
echo 22 > /sys/class/gpio/export
# 设置方向(输入/输出)
echo in > /sys/class/gpio/gpio22/direction # 输入模式
echo out > /sys/class/gpio/gpio22/direction # 输出模式
# 写入电平
echo 1 > /sys/class/gpio/gpio22/value # 高电平
echo 0 > /sys/class/gpio/gpio22/value # 低电平
# 读取电平
cat /sys/class/gpio/gpio22/value
# 释放资源
echo 22 > /sys/class/gpio/unexport2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
摄像头
板载了两个 MIPI CSI 摄像头接口。SDK默认使用 OV5695 作为设备驱动。接口与接法:
![]() | ![]() |
|---|---|
测试方法:
当前 SDK 默认开启的是 MIPI_CSI1 接口。
输入命令:
ctrl+c 停止摄像头输出
gst-launch-1.0 v4l2src device=/dev/video0 ! videoflip video-direction=vert ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink效果:

参数说明
gst-launch-1.0:这是GStreamer的命令行工具,用于构建和运行管道。
v4l2src(视频采集源)
| 参数 | 作用 | 典型值/范围 | 注意事项 |
|---|---|---|---|
device | 指定摄像头设备节点 | /dev/video0(默认第一个摄像头) | 多摄像头时需调整设备号(如 /dev/video1) |
num-buffers | 预取缓冲区数量(影响延迟) | 1-10(默认4) | 高实时性场景可适当调高 |
videoflip(视频翻转)
| 参数 | 作用 | 典型值 | 兼容性说明 |
|---|---|---|---|
video-direction | 设置视频方向(需配合 videoflip 元素) | vert(垂直翻转)horiz(水平翻转)180(180度旋转) | 不同GStreamer版本可能支持不同值 |
video/x-raw(视频格式定义)
| 参数 | 作用 | 典型值/范围 | 关键说明 |
|---|---|---|---|
format | 设置像素格式(影响颜色空间和存储方式) | NV12(YUV420半平面)RGB | 需与摄像头支持的格式匹配 |
width | 视频宽度(像素) | 640-4096 | 需通过 v4l2-ctl --list-formats-ext 确认摄像头支持的最大分辨率 |
height | 视频高度(像素) | 480-2160 | 同上 |
framerate | 帧率(FPS) | 30/1(30FPS) | 需满足 width×height×framerate ≤ 带宽限制 |
waylandsink(视频输出)
| 参数 | 作用 | 典型值 | 替代方案 |
|---|---|---|---|
display | 指定Wayland显示服务器(默认自动检测) | wayland-0 | X11环境下需替换为 xvimagesink |
fullscreen | 是否全屏显示 | true/false | 调试时可设为 false 查看原始输出 |
其他常用命令
# 查看摄像头支持的格式和分辨率
v4l2-ctl --list-formats-ext -d /dev/video0
# 测试原生输出(无翻转)
gst-launch-1.0 v4l2src device=/dev/video0 ! autovideosink2
3
4
5
RTC 实时时钟
板载了一个型号为 HYM8563S 的 RTC 时钟。使用时需要接入电池,底板上有两个电池接口:

测试方法:
# 查看RTC0的时间
hwclock --show --rtc=/dev/rtc0
# 查看系统时间
date
# 写入系统时间
date -s "2025-12-02 19:00:00"
# 将系统时间写入硬件时钟,并指定硬件时钟设备为 /dev/rtc0
hwclock --systohc --rtc=/dev/rtc02
3
4
5
6
7
8
9
10
11
设置时间说明
只能基于SDK编译的时间,往后设置时间,不能往前设置时间。
测试结果:
root@RK356X:/# hwclock --show --rtc=/dev/rtc0 #查看RTC时间
Tue Dec 2 19:06:11 2025 0.000000 seconds
root@RK356X:/# date #查看系统时间
Wed Dec 3 03:06:14 CST 2025
root@RK356X:/# date -s "2025-12-02 19:00:00" #设置系统时间
Tue Dec 2 19:00:00 CST 2025
root@RK356X:/# hwclock --systohc --rtc=/dev/rtc0 #将系统时间写入硬件RTC
root@RK356X:/# reboot #重启
root@RK356X:/#
PS C:\Users\win\AppData\Local\Temp\Mxt250\mx86_64b\tmp\home_win> adb shell
root@RK356X:/# hwclock --show --rtc=/dev/rtc0 #查看RTC时间
Tue Dec 2 19:00:38 2025 0.000000 seconds
root@RK356X:/# date #查看系统时间
Wed Dec 3 03:00:42 CST 2025 #CST时区为中国标准时间:China Standard Time UT+8:00,默认+8小时
root@RK356X:/#2
3
4
5
6
7
8
9
10
11
12
13
14
15
修改时区方法
# 查看当前时区
cat /etc/timezone
# 修改时区
vi /etc/timezone
将里面的内容删掉,改为 Asia/Shanghai2
3
4
5
6
7
8
所有时区可到/usr/share/zoneinfo下查看。
root@RK356X:/# cd /usr/share/zoneinfo
root@RK356X:/usr/share/zoneinfo# ls
Africa Canada Factory Iceland MST7MDT ROC Zulu
America Chile GB Indian Mexico ROK iso3166.tab
Antarctica Cuba GB-Eire Iran NZ Singapore posix
Arctic EET GMT Israel NZ-CHAT Turkey right
Asia EST GMT+0 Jamaica Navajo UCT zone.tab
Atlantic EST5EDT GMT-0 Japan PRC US zone1970.tab
Australia Egypt GMT0 Kwajalein PST8PDT UTC
Brazil Eire Greenwich Libya Pacific Universal
CET Etc HST MET Poland W-SU
CST6CDT Europe Hongkong MST Portugal WET
root@RK356X:/usr/share/zoneinfo# cd Asia/
root@RK356X:/usr/share/zoneinfo/Asia# ls
Aden Chongqing Jerusalem Novokuznetsk Tbilisi
Almaty Chungking Kabul Novosibirsk Tehran
Amman Colombo Kamchatka Omsk Tel_Aviv
Anadyr Dacca Karachi Oral Thimbu
Aqtau Damascus Kashgar Phnom_Penh Thimphu
Aqtobe Dhaka Kathmandu Pontianak Tokyo
Ashgabat Dili Katmandu Pyongyang Tomsk
Ashkhabad Dubai Khandyga Qatar Ujung_Pandang
Atyrau Dushanbe Kolkata Qyzylorda Ulaanbaatar
Baghdad Famagusta Krasnoyarsk Rangoon Ulan_Bator
Bahrain Gaza Kuala_Lumpur Riyadh Urumqi
Baku Harbin Kuching Saigon Ust-Nera
Bangkok Hebron Kuwait Sakhalin Vientiane
Barnaul Ho_Chi_Minh Macao Samarkand Vladivostok
Beirut Hong_Kong Macau Seoul Yakutsk
Bishkek Hovd Magadan Shanghai Yangon
Brunei Irkutsk Makassar Singapore Yekaterinburg
Calcutta Istanbul Manila Srednekolymsk Yerevan
Chita Jakarta Muscat Taipei
Choibalsan Jayapura Nicosia Tashkent
root@RK356X:/usr/share/zoneinfo/Asia#2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35













