这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » ELF1开发板2.Ubuntu下的串口登录和接口测试

共1条 1/1 1 跳转至

ELF1开发板2.Ubuntu下的串口登录和接口测试

高工
2025-04-21 10:52:11     打赏

串口登录

为了充分榨干电脑性能,编译速度快一些,我直接把选择在 Ubuntu 下开发。目前电脑是 Ubuntu + Windows 10 双系统的组合。像 Ubuntu 这样的系统,权限管理比较严重,要调试起来需要特别注意权限问题,这也是相较于 Windows 比较容易忽视的点。

解除 USB 占用

我们将开发板与设备连接之后,执行

ls /dev/tty*

owyrZ1.png

发现并没有查看到 USB 设备,这是怎么一回事呢? 通过查看系统日志

sudo dmesg | grep brltty

owyVLK.png

发现设备被 brltty 占用了,那简单,直接卸载 brltty 就行了

sudo apt remove brltty

owyVLK.png

重新拔插 USB 数据线,再执行

ls /dev/tty*

owyK3q.png

可以看到设备已经存在了

安装 CuteCOM

在 Ubuntu 上比较好用的一个串口调试工具 —— CuteCOM 安装方法很简单,执行

sudo apt-get install cutecom lrzsz

owyUlr.png

安装成功之后,打开  CuteCOM ,点击右边的 Settings 。这些选项按要求设置: Baudrate 115200、Data Bits 8、Flow Control None、Parity None、Open Node Read/Write、Stop Bits 1、Device /dev/ttyUSB0 。最后点击 Open 连接串口。 如果此时你也像笔者一样遇到了错误,Cannot open /dev/ttyUSB0: Permission denied 那么接着往下看吧。 图

分配权限

通过执行

ls -al /dev/ttyUSB0

我们可以看到,这里的 ttyUSB0 用户权限是 root dialout。 我们执行命令查看自己用户所在的用户组

groups ${USER}

将自己添加到 dialout 用户组

sudo gpasswd -add ${USER} dialout

owy6rc.png

回到 CuteCOM ,再次 Open 这时已经可以查看串口信息了。

owyfyo.png

我们直接直接在 Input 里面输入命令,例如查看版本号

uname -a

owyjJD.png

接口测试TF卡测试

笔者手中有一张金士顿 64GB 的 TF 卡,首先将 TF 卡格式化为 FAT32 格式。 o0FJqY.pngo0Fqwv.pngo0FxhE.png 我们将 TF 卡插入开发板背面的卡槽,在 CuteCOM 可以看到识别到了。 o0Fetu.png

列出挂载目录

ls /run/media

o0FmW9.png

查看 TF 卡内文件

ls -l /run/media/mmcblk0p1/

本来想修改一下里面的 my-sd 文件,但是 CuteCOM 对 VIM 和 NANO 命令支持都不太好,看来还是要用 SSH 登录比较方便一点。 TF 卡是支持热拔插的,但比较规范的用法还是先卸载

umount /run/media/mmcblk0p1

接着拔下 TF 卡,也会有提示的 o0FsgX.png

另外当你的路径已经切换到 TF 卡内,不要热拔插,有丢失数据风险。

网络测试有线网络

执行 ifconfig 查看网络信息

[11:32:17:943] root@ELF1:~# ifconfig␍␊
[11:32:21:683] eth0      Link encap:Ethernet  HWaddr aa:cc:dd:ee:ff:dd  ␍␊
[11:32:21:686]           inet addr:192.168.0.232  Bcast:192.168.0.255  Mask:255.255.255.0␍␊
[11:32:21:695]           inet6 addr: 240e:370:51e:6680:a8cc:ddff:feee:ffdd/64 Scope:Global␍␊
[11:32:21:701]           inet6 addr: fe80::a8cc:ddff:feee:ffdd/64 Scope:Link␍␊
[11:32:21:709]           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1␍␊
[11:32:21:714]           RX packets:11 errors:0 dropped:0 overruns:0 frame:0␍␊
[11:32:21:720]           TX packets:43 errors:0 dropped:0 overruns:0 carrier:0␍␊
[11:32:21:728]           collisions:0 txqueuelen:1000 ␍␊
[11:32:21:728]           RX bytes:1513 (1.4 KiB)  TX bytes:7119 (6.9 KiB)␍␊
[11:32:21:735] ␍␊
[11:32:21:735] lo        Link encap:Local Loopback  ␍␊
[11:32:21:735]           inet addr:127.0.0.1  Mask:255.0.0.0␍␊
[11:32:21:741]           inet6 addr: ::1/128 Scope:Host␍␊
[11:32:21:741]           UP LOOPBACK RUNNING  MTU:65536  Metric:1␍␊
[11:32:21:748]           RX packets:2 errors:0 dropped:0 overruns:0 frame:0␍␊
[11:32:21:753]           TX packets:2 errors:0 dropped:0 overruns:0 carrier:0␍␊
[11:32:21:761]           collisions:0 txqueuelen:0 ␍␊
[11:32:21:761]           RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)␍␊
[11:32:21:768] ␍␊

ELF1 有 eth0 和 eth1 两路网卡,开机默认 eth0 IP 为 192.168.0.232,eth1 未设置固定 IP eth0 是有线网卡,用网线将 ELF1 和路由器相连,执行

udhcpc -i eth0

再次查看网络配置,此时的 IP 地址已经是动态获取的了。

[12:21:07:071] root@ELF1:~# ifconfig eth0␍␊
[12:23:36:799] eth0      Link encap:Ethernet  HWaddr aa:cc:dd:ee:ff:dd  
[12:23:36:801]           inet addr:192.168.124.22  Bcast:192.168.124.255  Mask:255.255.255.0
[12:23:36:809]           inet6 addr: 240e:370:51e:6680:a8cc:ddff:feee:ffdd/64 Scope:Global
[12:23:36:815]           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
[12:23:36:824]           RX packets:1785 errors:0 dropped:5 overruns:0 frame:0
[12:23:36:830]           TX packets:159 errors:0 dropped:0 overruns:0 carrier:0
[12:23:36:836]           collisions:0 txqueuelen:1000 
[12:23:36:843]           RX bytes:225568 (220.2 KiB)  TX bytes:24400 (23.8 KiB)
[12:23:36:843]

此时的开发板已经可以联网了,试试看 wget 命令

[12:24:55:541] root@ELF1:~# wget baidu.com␍␊
[12:25:03:072] Connecting to baidu.com (110.242.68.66:80)␍␊
[12:25:03:156] index.html           100% |*******************************|    81   0:00:00 ETA

WIFI网络

除了有线连接网络,开发板还具有无线 WIFI 功能,可以执行

/usr/bin/elf1_cmd_wifi.sh -i 8723 -s SSID -p PASSWORD
[12:35:12:733] root@ELF1:~# elf1_cmd_wifi.sh -i 8723 -s SSID -p PASSWORD␍␊
[12:37:33:784] wifi 8723␍␊
[12:37:33:784] ssid SSID␍␊
[12:37:33:784] pasw PASSWORD␍␊
[12:37:34:185] usbcore: deregistering interface driver rtl8723du␍␊
[12:37:34:803] usbcore: registered new interface driver rtl8723du␍␊
[12:37:35:685] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready␍␊
[12:37:39:166] Successfully initialized wpa_supplicant␍␊
[12:37:41:242] wlan0: Trying to associate with 34:d8:56:f8:26:14 (SSID='SSID' freq=2437 MHz)␍␊
[12:37:41:714] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready␍␊
[12:37:41:724] wlan0: Associated with 34:d8:56:f8:26:14␍␊
[12:37:41:824] wlan0: WPA: Key negotiation completed with 34:d8:56:f8:26:14 [PTK=CCMP GTK=CCMP]␍␊
[12:37:41:830] wlan0: CTRL-EVENT-CONNECTED - Connection to 34:d8:56:f8:26:14 completed [id=0 id_str=]␍␊
[12:37:42:169] udhcpc (v1.24.1) started␍␊
[12:37:42:300] Sending discover...␍␊
[12:37:42:652] Sending select for 192.168.124.28...␍␊
[12:37:42:813] Lease of 192.168.124.28 obtained, lease time 86400␍␊
[12:37:42:869] RTNETLINK answers: File exists␍␊
[12:37:42:935] /etc/udhcpc.d/50default: Adding DNS 192.168.124.1␍␊
[12:37:42:962] Finshed!␍␊

路由器就在旁边,所以超强WIFI信号,查看信号强度执行

cat /proc/net/wireless | grep wlan0 | awk '{print $3}'
[12:37:42:962] root@ELF1:~# cat /proc/net/wireless | grep wlan0 | awk '{print $3}'␍␊
[12:38:44:095] 98.␍␊

关闭 WIFI

ifconfig wlan0 down

LED测试

ELF1 主板上的 LED 红灯、LED 绿灯、LED 黄灯为用户 LED 灯。 其与软件及 ELF1 丝印对应关系:

LED 灯丝印/sys/class/leds 目录下
红灯D4led1
黄灯D6led3
绿灯D5led2
我们可以通过简单的命令控制灯的亮灭

echo 1 > /sys/class/leds/led1/brightness

简单写个流水灯控制程序

#!/bin/bash

# 设置LED的路径
LED1_PATH="/sys/class/leds/led1/brightness"
LED2_PATH="/sys/class/leds/led2/brightness"
LED3_PATH="/sys/class/leds/led3/brightness"

# 定义八种组合状态
LED_STATES=("000" "100" "110" "111" "011" "001" "000")

# 循环显示八种组合状态
while true; do
    for state in "${LED_STATES[@]}"; do
        # 设置LED状态
        echo -e "${state:0:1}" > $LED1_PATH
        echo -e "${state:1:1}" > $LED3_PATH
        echo -e "${state:2:1}" > $LED2_PATH

        # 延迟200毫秒
        usleep 200000
    done
done





关键词: ELF          串口     Ubuntu    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]