0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3562 单板机 Linux 应用开发实战手册:LED/CAN/TCP/UART 案例与 Python 开发(二)

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2026-02-25 11:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

3 Linux常用开发案例

我司提供的Linux常用开发案例位于产品资料“4-软件资料Demo”路径下的base-demos目录下。案例bin目录存放可执行文件,src目录存放源码。

如需重新编译Linux常用开发案例,请将对应案例src目录拷贝至Ubuntu工作目录下,进入src目录执行如下命令配置交叉编译工具链,并执行make命令进行案例编译。编译完成后,将在当前目录下生成可执行文件。

Host# source /home/tronlong/RK3562/environment

Host# make

wKgZPGmebESAVM-PAACxzUZcjgE556.png图34

3.1led_flash案例

3.1.1案例功能

本案例通过向单板机用户可编程指示灯LED1设备节点反复交替写入1、0数值,实现LED1闪烁效果。LED1点亮与熄灭时间均为0.5s。

程序流程如下图所示。

wKgZO2mebJmAadqpAAPQA5tUVJQ211.png图35

LED设备节点为"/sys/class/leds/ledX/"目录下的brightness。

wKgZPGmebKCAKI3MAAAinF0adqI352.png图36

3.1.2操作说明

将本案例bin目录下的可执行程序led_flash拷贝至单板机系统,并在可执行程序所在目录执行如下命令运行程序,即可看到单板机LED1以0.5s的时间间隔进行闪烁。同时,串口终端打印系统全部LED设备信息和程序当前控制的LED1设备信息。

Target# ./led_flash -help

Target# ./led_flash -n 1

wKgZPGmebLGAG8mkAAAteqelTi8677.png图37

3.1.3关键代码

(1)预定义LED数组。程序由此数组获取LED信息,数组信息必须为系统已有LED信息,否则程序运行报错。

wKgZPGmebLuAC7r9AAAidZNsywk657.png图38

(2)LED亮灭操作和时间间隔。

wKgZO2mebMSAb7z4AADco8kn6ts125.png图39

3.2can_echo案例

3.2.1案例功能

本案例实现通过绑定一个CAN总线接口用于接收数据,当CAN端口接收到数据后,将数据重新发送到CAN总线接口。

备注:SBC-TL3562单板机主板未引出CAN接口,因此本案例仅支持SBC-TL3562-BU、SBC-TL3562-MU或SBC-TL3562-ME整机测试。

程序流程如下图所示。

wKgZPGmebM6AW-JqABJ5uMV-3lI588.png图40

3.2.2操作说明

本次以SBC-TL3562-BU整机的CAN功能为例进行演示。使用USB-CAN分析仪(型号:广成科技USBCAN-II FD)连接整机的CAN1或CAN2任一接口至PC机USB接口,硬件连接如下图所示。本次测试以CAN1接口(设备节点为:can0)进行演示。如需测试CAN2接口,请将设备节点修改为can1。

wKgZPGmebNqAbPqhAQsaZ2383NI956.png图41

EX-TLBaseUART扩展板CAN1接口与USB-CAN分析仪的连接关系如下表所示。

wKgZPGmebOKAfLG-AAAPJrumAQg445.png

请参照《开发环境搭建》文档安装GCAN Tools调试软件。在PC端打开GCANTools软件,选择设备类型,然后点击“打开设备”。根据USB-CAN分析仪实际硬件连接,选择CAN1或CAN2。等待软件检测到设备后,设置波特率为"1000K",然后点击“确定”,如下图所示。

wKgZO2mebOmAKrTLAABHR8QqMQc739.png图42

进入GCANTools软件发送界面,取消"CAN FD"选项,USB-CAN分析仪连接成功后将会显示Connected状态,如下图所示。

wKgZO2mebPGAUWUlAAEmx-hepAA801.png图43

单板机启动进入系统,执行如下命令配置can0比特率为1Mbps,并启动。

Target# ip link set can0 down

Target# ip link set can0 type can bitrate 1000000

Target# ip link set can0 up

wKgZPGmebSKAIOHPAAAd9vpz8ZM979.png图44

将本案例bin目录下的可执行程序can_echo拷贝至单板机系统,进入可执行程序所在目录,执行如下命令查看程序参数信息。

Target# ./can_echo --help

wKgZO2mebSmAL_kbAAA2SiXdTco803.png图45

执行如下命令绑定CAN0接口,并接收由GCANTools发出的数据,然后将接收到的数据重新发送出去。在GCANTools中输入数据并点击发送按钮,可看到有两帧数据,一帧是发送数据,另一帧是接收数据。

Target# ./can_echo -v can0

wKgZPGmebTmARcO2AAAL6x3r0p0906.png图46

wKgZO2mebVqAP7MqAAEofLnGPxg013.png图47

wKgZO2mebTmAdZpvAAAPxzNA-JM097.png图48

wKgZO2mebTmAGqirAAEyQIY3fA4653.png图49

可按"Crtl + Z"暂停程序,并执行如下命令退出程序。

Target# killall -9 can_echo

wKgZO2mebXqAIX3-AAAgPjnsbII541.png图50

3.2.3关键代码

(1)使用socket监听CAN接口。

wKgZPGmebZWAZpHeAABy_gBcmUQ395.png图51

(2)将从CAN接口接收到的数据重新发送出去。

wKgZO2mebZ6AKY3FAACWItVBMLo600.png图52

3.3tcp_udp案例

3.3.1案例功能

本案例主要实现客户端(client)与服务端(server)的文本数据相互收发功能。本案例包含4个程序:

(1)tcp_server:TCP服务端测试程序。

(2)tcp_client:TCP客户端测试程序。

(3)udp_server:UDP服务端测试程序。

(4)udp_client:UDP客户端测试程序。

程序流程如下图所示。

wKgZPGmebamAE8YiABYNr3Ugsbs532.png图53 TCP通信

wKgZO2mebamAX3AtABX6zqgbq6Q420.png图54 UDP通信

服务端和客户端程序均可在单板机、PC机Ubuntu系统上运行。本章节采用单板机本地回环测试,即服务端与客户端程序均在单板机上运行,通过127.0.0.1进行本地回环测试,无需经过路由器。案例bin目录下的4个文件均为ARM端可执行程序。

3.3.2操作说明

将本案例bin目录下的4个可执行程序拷贝至单板机系统。

在Ubuntu中执行如下命令使用OpenSSH登录单板机系统,如下图所示。

Host# sudossh root@192.168.13.16 //192.168.13.16为单板机IP地址,请根据实际情况修改

wKgZPGmebbiAQaukAAC0Sr_44pU897.png图55

(1)TCP通信测试

在可执行程序所在目录执行如下命令,分别在单板机运行TCP服务端和客户端程序。2233为服务端程序指定的端口号,客户端程序端口号参数需与服务端程序一致。

Target# ./tcp_server 2233 //TCP服务端命令

Host# ./tcp_client 127.0.0.12233 //TCP客户端命令

程序执行后,客户端将会连接服务端。在服务端(Target)输入字符串"Tronlong",按下回车键即可在客户端显示对应内容。在客户端(Host)输入字符串"Hello Tronlong",按下回车键即可在服务端显示对应内容,如下图所示。

wKgZPGmebc2AU-EZAAASN8l8GcA768.png图56 TCP服务端 wKgZO2mebd6AO4qzAAAmwyKRR4k955.png图57 TCP客户端

(2)UDP通信测试

在可执行程序所在目录执行如下命令,分别在单板机运行UDP服务端和客户端程序。2233为服务端程序指定的端口号,客户端程序端口号参数需与服务端程序一致。

Target# ./udp_server 2233 //UDP服务端命令

Host# ./udp_client 127.0.0.12233 //UDP客户端命令

程序执行后,客户端将不会自动连接服务端。服务端在收到客户端信息前无法得知客户端的存在,因此需要客户端先向服务端发送信息。

在客户端(Host)输入字符串"Tronlong",按下回车键即可在服务端显示对应内容。在服务端(Target)输入字符串"Hello Tronlong",按下回车键即可在客户端显示对应内容,如下图所示。

wKgZPGmebe-AbB3xAAAk4zcekzI412.png图58 UDP客户端

wKgZPGmebe-ALQxwAAAPW9vKWgY077.png图59 UDP服务端

如需在PC机Ubuntu系统运行服务端或客户端程序,请将案例src源码目录拷贝至Ubuntu工作目录。进入源码目录后执行make命令,即可在当前目录下生成x86端可执行程序。在不同终端运行服务端或客户端程序的命令类似,但127.0.0.1需使用服务器IP地址替代。

Host# make

wKgZPGmebf-Af6IyAAFZ789Ux7U937.png图60

3.3.3关键代码

以TCP通信程序为例。

(1)tcp_client.c

注意源码中的struct sockaddr_in、socket、connect、fgets、send、recv等数据结构和系统调用的使用。

(2)tcp_server.c

注意源码中的struct sockaddr_in、socket、connect、fgets、send、recv、bind、listen、accept等数据结构和系统调用的使用。

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11861

    浏览量

    219849
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90426
  • RK3562
    +关注

    关注

    0

    文章

    111

    浏览量

    781
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3576 单板机高清视频图像处理开发实战手册(三)

    本文为创龙科技RK3576 单板机视频图像处理开发指南,详解视频输入输出、编解码、RGA2.5、GPU、NPU 等硬件架构。包含 GStreamer 硬解码 / 编码、RTSP 网络流、GigE
    的头像 发表于 04-29 09:49 300次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>单板机</b>高清视频图像处理<b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>手册</b>(三)

    RK3576 单板机高清视频图像处理开发实战手册

    本文为创龙科技RK3576 单板机视频图像处理开发指南,详解视频输入输出、编解码、RGA2.5、GPU、NPU 等硬件架构。包含 GStreamer 硬解码 / 编码、RTSP 网络流、GigE
    的头像 发表于 04-28 10:33 157次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>单板机</b>高清视频图像处理<b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>手册</b>(<b class='flag-5'>二</b>)

    RK3576 单板机高清视频图像处理开发实战手册(一)

    本文为创龙科技RK3576 单板机视频图像处理开发指南,详解视频输入输出、编解码、RGA2.5、GPU、NPU 等硬件架构。包含 GStreamer 硬解码 / 编码、RTSP 网络流、GigE
    的头像 发表于 04-27 09:36 176次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>单板机</b>高清视频图像处理<b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>手册</b>(一)

    RK3576 单板机 C/Python/MQTT 应用开发手册

    本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN
    的头像 发表于 04-21 10:43 194次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>单板机</b> C/<b class='flag-5'>Python</b>/MQTT 应用<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(<b class='flag-5'>二</b>)

    RK3576 单板机 C/Python/MQTT 应用开发手册(一)

    本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN
    的头像 发表于 04-20 13:55 751次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>单板机</b> C/<b class='flag-5'>Python</b>/MQTT 应用<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(一)

    RK3576 单板机 LinuxSDK 开发与系统定制手册

    本文为创龙科技RK3576 单板机 Linux 系统开发指南,涵盖 SDK 搭建、内核与引导程序开发、根文件系统修改、镜像打包、分区配置及硬
    的头像 发表于 04-16 15:39 991次阅读
    <b class='flag-5'>RK</b>3576 <b class='flag-5'>单板机</b> LinuxSDK <b class='flag-5'>开发</b>与系统定制<b class='flag-5'>手册</b>(<b class='flag-5'>二</b>)

    RK3562 单板机嵌入式 eMMC 健康监测开发指南:数据采集与状态分析

    本文为创龙科技RK3562 单板机 eMMC 健康管理开发指南,围绕 emmc_get_info 案例,详解 eMMC 的 EXT_CSD 寄存器查询、多品牌寿命评估(擦写次数、坏块、寿命消耗
    的头像 发表于 03-31 15:07 239次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b>嵌入式 eMMC 健康监测<b class='flag-5'>开发</b>指南:数据采集与状态分析

    RK3562 单板机嵌入式 ROS2 开发指南:环境搭建与工程编译

    本文为创龙科技RK3562 单板机 ROS2 Foxy 开发指南,涵盖系统测试与开发全流程。详细说明 Python/C++ 节点通信、tur
    的头像 发表于 03-27 11:26 7555次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b>嵌入式 ROS2 <b class='flag-5'>开发</b>指南:环境搭建与工程编译

    RK3562 单板机多媒体开发完全手册:视频输入输出与 GStreamer 案例详解(

    本节为创龙科技RK3562 单板机视频处理核心指南,涵盖两大核心内容:一是视频图像处理框架,含输入输出接口、编解码及算法加速模块;是 gst_dec_display 案例,实现
    的头像 发表于 03-17 09:49 243次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b>多媒体<b class='flag-5'>开发</b>完全<b class='flag-5'>手册</b>:视频输入输出与 GStreamer 案例详解(<b class='flag-5'>二</b>)

    RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(

    本节为创龙科技RK3562 单板机 Qt 开发指南,核心包含开发环境配置、工程编译、网络调试及实战案例。详细说明 Qt Creator 交叉
    的头像 发表于 02-27 10:42 7031次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b>图形用户界面<b class='flag-5'>开发</b>完全<b class='flag-5'>手册</b>:Qt Creator 配置与 LVGL 案例详解(<b class='flag-5'>二</b>)

    RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(一)

    本节为创龙科技RK3562 单板机 Qt 开发指南,核心包含开发环境配置、工程编译、网络调试及实战案例。详细说明 Qt Creator 交叉
    的头像 发表于 02-26 11:41 2237次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b>图形用户界面<b class='flag-5'>开发</b>完全<b class='flag-5'>手册</b>:Qt Creator 配置与 LVGL 案例详解(一)

    RK3562 单板机 Linux-RT 系统开发指南:内核配置、实时性优化与案例详解

    本文为创龙科技RK3562 单板机 Linux-RT 开发指南,核心聚焦实时内核的性能测试与开发应用。内容包括
    的头像 发表于 02-10 11:49 1.9w次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b> <b class='flag-5'>Linux</b>-RT 系统<b class='flag-5'>开发</b>指南:内核配置、实时性优化与案例详解

    RK3562 单板机系统开发完全手册:U-Boot/Kernel/Rootfs 开发与性能优化

    本文为创龙科技RK3562 单板机 Linux 系统开发指南,核心包含 SDK 配置、内核与文件系统开发、分区配置及 CPU/GPU/NPU
    的头像 发表于 02-05 17:20 645次阅读
    <b class='flag-5'>RK3562</b> <b class='flag-5'>单板机</b>系统<b class='flag-5'>开发</b>完全<b class='flag-5'>手册</b>:U-Boot/Kernel/Rootfs <b class='flag-5'>开发</b>与性能优化

    RK3562单板机系统使用与开发手册:基础操作、升级部署与工具链配置(一)

    本文为创龙科技RK3562 单板机 Linux 系统使用指南,核心包含系统配置、升级部署与组件安装三大模块。内容涉及静态 IP 配置、恢复出厂设置、OTA/U 盘升级,以及 Python
    的头像 发表于 01-27 15:05 448次阅读
    <b class='flag-5'>RK3562</b><b class='flag-5'>单板机</b>系统使用与<b class='flag-5'>开发</b><b class='flag-5'>手册</b>:基础操作、升级部署与工具链配置(一)

    触觉智能RK3562开发板新版强势亮相

    /RK3562J),都支持NPU和CAN功能了,为此触觉智能RK3562开发板进行了迭代升级,全新型号为EVB3562-V2。为了庆祝触觉智
    的头像 发表于 05-30 11:32 1539次阅读
    触觉智能<b class='flag-5'>RK3562</b><b class='flag-5'>开发</b>板新版强势亮相