【正点原子STM32MP257开发板试用】板载资源测试
本文介绍了正点原子 STM32MP257 开发板外设资源测试的相关流程,包括 LED 、按键、LCD 、以太网、CAN、USB、RTC、音频、蓝牙、TF卡、ADC、DHT11、OTG、CPU 等。
介绍
作为开发项目的基础,开发者对板载资源的充分了解和掌握是十分重要的,为后续资源重整和 DIY 设计开发提供必需的前期经验和积累。
本文结合正点原子 STM32MP257 开发板官方资料(快速体验手册)对板载资源及外设进行了充分测试和展示,包括 LED 输出、按键输入、LCD 触摸输入及背光控制、以太网连接、CAN总线通信、USB、RTC、音频、蓝牙、TF卡、ADC、DHT11传感器、CPU 等。
测试
LED
依次输入指令
cat /sys/class/leds/red:heartbeat/trigger //查看 LED 的当前触发方式及支持的触发方式
echo none > /sys/class/leds/red:heartbeat/trigger //改变 LED 的触发方式,设置为 none
echo 1 > /sys/class/leds/red:heartbeat/brightness //点亮 LED
echo 0 > /sys/class/leds/red:heartbeat/brightness //熄灭 LED
echo heartbeat > /sys/class/leds/red:heartbeat/trigger //LED 的触发方式设置为心跳 heartbeat
实现对应的效果

效果
点亮和熄灭控制板载红色 LED

心跳效果见顶部视频
按键
终端输入指令
cat /proc/bus/input/devices
查看按键输入设备对应的事件

当接入触摸屏时,event0
为触摸屏事件,event1
为按键 KEY 事件。
通过指令
od -x /dev/input/event1
或指令
hexdump /dev/input/event1
查询按键输入信息,Ctrl + C 结束指令。


MIPI LCD 屏幕
与按键输入测试的方案相似,通过指令
od -x /dev/input/event0
或指令
hexdump /dev/input/event0
获取触摸输入信息,Ctrl + C 结束指令。

背光测试
LCD 屏幕背光支持 255 级 PWM 调节,亮度范围 0-100,默认为100,数值越大,屏幕越亮。
终端输入如下指令实现背光亮度查询与控制
cat /sys/class/backlight/panel-dsi-backlight/max_brightness //查看背光最大亮度等级
cat /sys/class/backlight/panel-dsi-backlight/brightness //查看当前亮度等级
echo 50 > /sys/class/backlight/panel-dsi-backlight/brightness //修改当前亮度等级
cat /sys/class/backlight/panel-dsi-backlight/brightness //再查看当前亮度等级
指令反馈

效果

以太网接口
ATK-DLMP257 板载 3 路 千兆 以太网,自适应 10/100/1000M 速率。

ETH2 是常规的以太网功能,ETH1 和 ETH3 是以太网交换机功能。
注意 STM32MP257 芯片有两个 GMAC,ETH2 是一路 GMAC 出来的,另外一路 GMAC 内置了以太网交换机功能,分出了 ETH1 和 ETH3 .
ETH2 联网
通过指令 ifconfig
查询已连接的网络

从查询结果可知,开发板已连接 ETH2 (对应 end0
)和 wlan1 (对应 WiFi) 网络。
或者通过指令 ifconfig end0
仅查询 ETH2 连接。
通过 ping
指令检查网络能否上网
ping www.baidu.com -I end0
有信息回复,表明可以联网

Ctrl + C 终止指令。
RS232 串口
使用 USB 转 RS232 串口数据线连接开发板和电脑;
终端输入指令 minicom -s
打开串口配置选项

将默认的串口设备名称改为 /dev/ttySTM2
回车确认

选择 Exit
退出当前界面,进入数据收发窗口;
Ctrl + A
打开配置界面,输入 E
开启数据回显功能

电脑端运行串口调试助手软件,打开 USB-SERIAL CH340
串口,波特率 115200
,8N1
,即可通过 RS232 串口和开发板进行数据收发。
串口发送消息,minicom 终端便显示对应的字符串。
测试结束后,Ctrl + A
再按 Z
键打开 minicom 界面,按 X
键退出,回车确认离开 Minicom .
同样方法可测试 RS485 串口通信,端口命名为 /dev/ttySTM1
即可。
CAN 总线通信
ATK-DLMP257B 板载三路 CAN 且均支持CAN FD

测试 CAN 通信需要使用 CAN 分析仪,或另一块支持 CAN 通信的开发板(或其他 CAN 设备)。
板载 CAN 的主要特性有
- 支持 CAN FD,即升级版 CAN 协议,物理层未改变。
- CAN 与 CAN FD 的主要区别:传输速率不同、数据长度不同、帧格式不同、ID 长度不同。
- 数据比特率最高 5Mbps
测试前将 CAN 分析仪或测试 CAN 的设备连接到 ATK-DLMP257B 开发板的 CAN 接口,二者的 CANH 端与 CANL 端对应连接。
CAN
使用 FDCAN1 接口,配置 can0 数据比特率为 500kBit/s
ip link set can0 up type can bitrate 500000
使用 cansend
指令发送数据
cansend can0 123

使用 candump
指令接收数据
candump -ta can0
CAN FD
设置不同速率时,需要先关闭 CAN 设备,再设置 CAN 的速率
ifconfig can0 down
配置 CAN FD 速率
ip link set can0 up type can bitrate 1000000 dbitrate 5000000 fd on
设置波特率为 1000 kBit/s,数据波特率为 5000 kBit/s 进行测试。

同样使用 candump -ta can0
指令接收数据。
USB
USB Host
将 FAT32 格式的 U 盘或 TF 卡设备插入开发板的 USB HOST 接口,

输入指令 df -h
查看设备识别情况

当前 U 盘挂载路径为 /run/media/sda1
USB 鼠标测试
将有线 USB 鼠标接入板载 USB Host 接口,此时设备自动识别出USB设备接入,并在屏幕显示鼠标箭头

可执行点击、拖拽等操作实现应用控制。
RTC 时钟
ATK-DLMP257 开发板有两个硬件时钟,一个是核心板上的处理器内部的 RTC 时钟(/sys/class/rtc/rtc0
)。另外一个是底板上 RTC 时钟芯片 AT8563,属于芯片外部 RTC 时钟(/sys/class/rtc/rtc1
),由 RTC 纽扣电池供电,开发板掉电仍保存时间和计时。
Linux 系统分两个时钟,一个是 system time(软件时钟),一个是 hardware clock(硬件时钟)。使用 date 和 hwclock 命令可分别查看和设定系统时间和硬件时间。系统时钟掉电即会消失,RTC 时钟在有电池的情况下会长期运行。系统时钟会在系统重启时与 RTC 时钟同步。
RTC0 (内部 RTC 时钟) 修改
QT 界面的时间和内核默认的指定时钟都是使用的 rtc0。
先关闭 deptp 服务,再设置时间进行测试;
systemctl stop deptp.service
date
给内部 rtc 写入时间:
date -s "2025-08-04 11:58:00"
hwclock --systohc --rtc=/dev/rtc0 --localtime
此时查看 Qt 界面,可见 Qt 显示的时间已同步。

查询内部 rtc 时间:
cat /sys/class/rtc/rtc0/time
cat /sys/class/rtc/rtc0/date
date

RTC1 (外部时钟) 修改
RTC1 对应外部时钟 AT8563 模块,在内部时钟修正的基础上,将本地时间同步至 AT8563 芯片
hwclock --systohc --rtc=/dev/rtc1 --localtime
查询 PCF8563 时间:
cat /sys/class/rtc/rtc1/time
cat /sys/class/rtc/rtc1/date
date
启动 deptp 服务,执行指令
systemctl start deptp.service
EEPROM
ATK-DLMP257B 板载 EEPROM 芯片,型号 AT24C64
,它通过 I2C 总线进行读写访问,具备 8KB 存储空间。
出厂系统提供一个读写测试工具 eeprom-rw
,执行指令
cd shell/eeprom
./eeprom-rw
返回如下信息,读写正常。

SPI FLASH
ATK-DLMP257B 板载 SPI NOR FLASH
芯片,型号为 W25Q128
,通过 SPI 总线进行读写访问,具备 16MB 存储空间。
内核启动时会自动加载 W25Q128 驱动,芯片正常工作时,内核会驱动加载信息。出厂系统将 SPI Flash 注册成 MTD 设备,可通过 MTD 子系统对其进行文件读写操作。
首次使用,需格式化 /dev/mtdblock0
分区
mkfs.vfat /dev/mtdblock0
创建自定义挂载目录,并将 /dev/mtdblock0
分区以 VFAT 格式挂载到此目录;
mkdir /home/root/w25q128
mount -t vfat /dev/mtdblock0 /home/root/w25q128
进入挂载目录,进行写文件测试
cd /home/root/w25q128
echo "W25Q128 TEST!" > file.txt
sync
读文件,确认是否写入成功
cat file.txt
退出挂载目录,并取消 /dev/mtdblock0
分区挂载
cd ../
umount /dev/mtdblock0
此时,写入的文件数据已经存储在 SPI FLASH 芯片中,可通过再次挂载目录重新挂载,进行文件的读写。

音频
ATK-DLMP257B 板载一颗高性能音频编解码芯片 ES8388,板载麦克风可录音,底板背面有小功率扬声器,便于音频测试。
通过 Qt 界面的音乐 APP 可进行音乐播放,插入 3.55mm 实现耳机播放,此时扬声器关闭。

开发板出厂系统里有音频配置和测试文件,按照如下指令执行音频测试脚本。
cd shell/audio
./atk_audio.sh
初始化完音频设备后,输入数字 2 并确认即可播放音频测试。期间板载扬声器会播放音频,如果使用的是耳机则也会在耳机端播放。
USB WiFi
ATK-DLMP257B 开发板采用 WiFi 蓝牙二合一模组,芯片为 RTL8733BU。进行 WIFI 测试之前,请确保开发板上安装好天线,否则无法扫描和连接 WiFi,进入文件系统后,输入下面命令进行 WiFi 测试。
connmanctl
connmanctl> enable wifi
connmanctl> scan wifi
connmanctl> agent on
connmanctl> services
运行结果如下

从扫描到的 WiFi 列表中,使用命令 connect XXX
进行连接,再输入密码按回车确认。
- 使用
ifconfig
指令查看 wlan1
所获取的 ip 地址;
- 使用指令
ping www.baidu.com -I wlan1
测试网络连通性。
蓝牙
ATK-DLMP257B 开发板采用 WiFi 蓝牙二合一模组,进行蓝牙测试之前,请确保开发板上安装好天线,否则无法扫描和连接蓝牙。
蓝牙配对需要用到 bluetoothd
服务,bluetoothd 作为系统服务在后台运行,负责管理蓝牙适配器和处理蓝牙设备的连接、配对和通信。它是 Linux 系统中与蓝牙相关的核心组件之一。
bluetoothd
存放在 /usr/libexec/bluetooth
目录下,默认系统运行时已开启,如果需要手动开启可以执行下面命令在后台开启服务。
/usr/libexec/bluetooth/bluetoothd -C &
输入下面指令,进入 bluetoothctl 交互模式。
rfkill unblock bluetooth
hciconfig hci0 up
bluetoothctl
依次执行下面指令。
power on
agent on
discoverable on
scan on
devices

当扫描到目标蓝牙设备后,执行 scan off
停止扫描。
输入以下指令进行配对,在手机端找到 ATK-DLMP257
设备点击连接,同时手机端选择配对。
pair XX:XX:XX:XX:XX:XX
输入 exit
退出交互模式。
TF 卡
使用 FAT32 格式的 TF 卡,接入开发板底板对应的 TF 卡槽。

执行指令 df -h
获取当前存储设备信息

可以看到 /dev/mmcblk0
为 TF 卡的设备节点,/dev/mmcblk0p1
是 TF 卡的默认分区。
ADC
板载 ADC 的采集电压绝对值最大是 1.8V,请勿超过 1.8V。ATK-DLMP257B 底板上配有可调电位器,便于 ADC 测试。
使用以下指令获取 ADC1 的采样数据,读出的值是原始值 raw_value
cat /sys/bus/iio/devices/iio:device0/in_voltage15_raw
实际电压计算表达式
V_real (mV) = in_voltage1_raw * in_voltage_scale
其中 in_voltage_scale
为 ADC 比例文件 (分辨率),单位为 mV,与参考电压有关,可以通过以下指令获取
cat /sys/bus/iio/devices/iio:device0/in_voltage_scale

此时 ADC1 实际电压值为 2094 * 0.439453125 ≈ 920.2 mV
。调节电位计 RP_ADC 可以调节 ADC 电压。
DHT11 测试
ATK-DLMP257B 开发板的左上角预留了一个单排圆孔母座 4Pin 母座,可连接 DHT11 温湿度传感器。
根据丝印可知 DHT11 正面有孔的一面朝向开发板外侧。

板载 DS18B20 与 DHT11 驱动加载可能有先后顺序,在驱动注册时申请同一个管脚会有一个驱动加载失败。因此需重新加载对应的驱动。
rmmod ds18b20 //卸载 DS18B20 的驱动
rmmod dht11 //卸载 DHT11 的驱动
modprobe dht11 //安装 DHT11 的驱动
使用下面的指令获取 DHT11 模块的数据
cat /sys/class/misc/dht11/value
前两位数字是湿度数据,后面两位是温度数据

读出的数据是湿度 69%RH,温度 29℃
WK_UP 按键
ATK-DLMP257B 板载一个 WK_UP 按键,默认配置为休眠唤醒功能,执行如下指令,令开发板进入休眠模式
echo mem > /sys/power/state
此时屏幕熄灭,短按 WK_UP 键唤醒设备。

USB_OTG 接口
ATK-DLMP257B 板载一个 USB_OTG接口,此接口可以用于上位机 USB 模式烧写,可以接一个 OTG 转 USB 线来外接 USB 设备

同样可通过 df -h
查询获取移动存储器的挂载路径

CPU 温度和主频
使用下面指令查看 CPU 温度,温度的高低与环境温度及 CPU 运行状况有关
cat /sys/class/hwmon/hwmon0/temp1_input
使用 cpufreq-info 指令查看 CPU 主频。
cpufreq-info

由系统反馈结果可知,CPU0 和 CPU1 工作在 1.20GHz 到 1.50GHz 之间,当前的 CPU 频率为 1.50 GHz,调频模式为 userspace
,频率由用户空间的应用程序手动设置,并非自动调整。
总结
本文介绍了正点原子 STM32MP257 开发板外设资源测试的相关流程,包括 LED 、按键、LCD 、以太网、CAN、USB、RTC、音频、蓝牙、TF卡、ADC、DHT11、OTG、CPU 等,为开发者对板载资源的认识和了解提供了便利,也为后续资源重整和 DIY 设计开发提供了基础和参考。