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

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

3天内不再提示

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

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2026-04-21 10:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

3 Linux常用开发案例

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

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

Host# source /home/tronlong/RK3576/environment

Host# make

wKgZO2nm6JyAHYiyAAB_dMuUNrw382.png

3.1led_flash案例

3.1.1案例功能

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

程序流程如下图所示。

wKgZO2iByfqAG92FAAAwLTwQbzo760.png

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

wKgZO2nm6K2ALbe3AAAaMpzh8Ug061.png

3.1.2操作说明

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

Target# ./led_flash -help

Target# ./led_flash -n 1

wKgZO2nm8DGAbJreAAAgJ1faoCA254.png

3.1.3关键代码

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

wKgZPGnm8DiAans0AAAcZ_X9uv0458.png

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

wKgZPGnm8EGARehwAADA7LUQqvc521.png

3.2can_perf案例

3.2.1案例功能

本案例基于SocketCAN实现CAN/CAN-FD总线通信,包含数据收发测试及误码率统计。程序原理如下。

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

发送端:

(1)发送指定数量帧;

(2)帧的数据长度由参数指定;

(3)发送从0至255的递增数;

(4)每一帧的发送间隔由参数指定。

接收端:

(1)接收CAN总线上的数据包;

(2)提取数据包数据进行校验;

(3)每接收到1000个数据帧打印一次帧数;

(4)打印误码率,总接收帧数信息。

程序流程如下图。

wKgZPGnm8EuAaPvLAAELVSpVh6o884.png

3.2.2操作说明

本次测试以SBC-TL3576-BU整机的CAN FD(G1、L1、H1)接口(设备节点为:can0)为例进行演示,如需测试CAN FD(G2、L2、H2)接口,请将设备节点修改为can1。

请准备两个SBC-TL3576-BU整机,使用杜邦线将两个SBC-TL3576-BU整机的CAN FD接口H1端子、L1端子和G1端子进行直连。

单板机接口的连接关系如下表所示。

wKgZPGnm8FWAbzZcAAANqCF0zBE594.pngwKgZO2nm8F-AcJ3QAEoKOM0FU3U899.png

单板机上电启动,将本案例bin目录下的可执行程序can_perf分别拷贝至两个单板机的文件系统,进入可执行程序所在目录,执行如下命令查看程序参数信息。

Target# ./can_perf -h

wKgZPGnm8GmAJG-nAAAk-wfYK3k234.png

参数解析:

-d:CAN接口的对应节点;

-r:作为接收端读取数据;

-w:作为发送端发送数据;

-f:收发数据帧的数量;

-l:帧的数据长度;

-i:帧间隔时长,单位为us,默认为0;

-m:模式选择,默认为CAN模式,0:CAN模式,1:CAN-FD模式;

-h:帮助信息。

将单板机1和单板机2上电启动,进入单板机文件系统,分别执行如下命令配置CAN FD接口波特率为1Mbps,配置数据波特率为5Mbps,并启动CAN0总线。

Target# ip link set can0 down

Target# ip link set can0 type can bitrate 1000000dbitrate5000000fd on

Target# ip link set can0 up

wKgZO2nm8HKADh6MAAAdxGbJbpU838.png

在单板机1的终端执行如下命令,设置单板机1的CAN0总线等待接收数据。

Target# ./can_perf -d can0 -r -f 50000

wKgZPGnm8HmAV_-tAAAJu_dFP_Y927.png

在单板机2的终端窗口下,设置单板机2的CAN0总线以1000us的时间间隔发送50000帧数据至单板机1的CAN0总线。

备注:当执行的命令未设置-i参数时,默认发送数据帧间隔时长为0us,由于数据发送过快,可能导致系统资源(如缓冲区)迅速耗尽,从而触发"No buffer space available"错误,并造成数据帧丢失。

Target# ./can_perf -d can0 -w -f 50000 -i 1000

wKgZPGnm8IWAfjYrAAAcRon6trY849.pngwKgZPGnm8IWAOdWFAAAy5sdYTMc275.png

从打印信息可以得知,接收端单板机1成功接收50000帧数据,误码率为0.00%,每帧耗时为0.139s。

3.2.3关键代码

(1)解析传递参数。

wKgZPGnm8LeAVUjvAACB0GBbKNU719.png

(2)初始化CAN接口。

wKgZO2nm8MWARohvAACpFRh7ovg965.png

(3)发送端。

wKgZO2nm8N2AYUJTAAEK2w4BjAE719.png

(4)接收端。

wKgZO2nm8OiAFpsQAAC13cgmzZk740.png

(5)校验接收到的数据信息。

wKgZPGnm8POAKS__AABeJHBIUc0871.png

(6)打印接收到的数据信息。

wKgZPGnm8P6AArN7AABHSaqRdWM430.png

3.3uart_rw案例

3.3.1案例功能

本案例实现单板机串口读写功能。

备注:SBC-TL3576单板机主板未引出RS-485/RS-232接口,因此本案例仅支持使用SBC-TL3576-BU、SBC-TL3576-MU或SBC-TL3576-ME整机测试。

程序流程如下图所示。串口初始化时将设置波特率、模式、数据位、停止位等参数。通过设备文件描述符对串口进行读写操作。

wKgZPGiBylmAKKPNAABnuczvQKg777.png

本案例测试的串口对应设备节点如下表所示。

wKgZPGnm8R-APT2rAABphOyWSfk669.png

3.3.2操作说明

(1)RS-232串口测试

我司整机默认配置RS-485/RS-232接口为RS-485功能。请联系我司销售或技术服务人员,将EX-TLBaseUART扩展板的拨码开关SW7拨至RS-232档位,配置为RS-232功能。

本次以SBC-TL3576-BU整机的RS-232功能为例进行演示,请通过USB转RS-232公头串口线和杜邦线,将整机的RS-232(G1、R1、T1)串口连接至PC机的USB接口,硬件连接如下图所示。

wKgZO2nm8oGAYI8qACHFHPAQP1c395.png

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

Target# ./uart_rw -h

wKgZPGnm8oqAQcynAAAdG0UeC1c574.png

1.单板机接收

打开设备管理器,本次测试中调试串口DEBUG端口号为COM16,RS-232串口的端口号为COM18,如下图所示。

wKgZPGnm8rSAP3igAACWfGDn_2Q576.png

打开调试串口终端,COM16波特率设为115200,8N1,无校验位。COM18波特率设为115200,8N1,无校验位,并建立串口连接。单板机调试串口终端执行如下命令,单板机等待接收上位机发送的数据。

备注:单板机启动后首次执行程序uart_rw,会出现打印信息"of_dma_request_slave_channel…",不影响正常使用,请忽略。

Target# ./uart_rw -d /dev/ttyS1-r -s 8

wKgZO2nm8saAe6m7AAAP6stMBhc795.png

在RS-232串口终端点击"View->Command (Chat) Window",选中并打开"Command (Chat) Window"窗口。

wKgZPGnm8s2ANdajAAA_30nHj9w091.png

在窗口中输入数据,例如"Tronlong",再按回车键。

wKgZO2nm8taAGYFAAACXJ_OISTU847.png

单板机调试串口终端将会打印接收到的数据。

wKgZPGnm88GAC-Y8AAAg2HNZrco821.png

2.单板机发送

执行如下命令,单板机通过RS-232串口发送数据至上位机,数据已在程序中定义。

Target# ./uart_rw -d /dev/ttyS1-w -s 8

wKgZO2nm88iAPbPtAAALKl9vxH4675.png

RS-232串口终端将会打印接收到的数据,如下图所示。

wKgZPGnm89OAYfYgAAAK8U_zf68207.png

(2)RS-485串口测试

本次以SBC-TL3576-BU整机的RS-485(G1、B1、A1)串口为例进行演示,其他RS-485(Gx、Bx、Ax)串口测试同理。请使用RS-232转RS-485模块、USB转RS-232公头串口线,将整机的RS-485串口连接至PC机的USB接口,硬件连接如下图所示。

wKgZO2nm89yAFuyQACtIPst-3Tc593.png

执行如下命令,进行RS-485串口数据读写操作。RS-485串口测试步骤与现象与RS-232类似,命令中的设备节点请根据实际情况修改即可。

Target# ./uart_rw -d /dev/ttyS1-r-s 8 //读操作

Target# ./uart_rw -d /dev/ttyS1-w -s 8 //写操作

3.3.3关键代码

(1)串口初始化函数。

wKgZPGnm8-uAIicIAAD6CT9hDP8136.pngwKgZO2nm8-uALYXQAABJx1PZZ5A645.png

(2)串口读写函数。

wKgZPGnm9ASAMfyJAAA0PIkC6Rg700.pngwKgZPGnm9ASAYm2YAADXZtkDBv4825.pngwKgZO2nm9ASAfBXqAACO8YoVTTI066.pngwKgZO2nm9ASANFmUAAC60-6gDBg470.pngwKgZPGnm9BOAPfW-AADDFS2GPZU917.png

(3)回环测试。

wKgZO2nm9BOAV6GjAACgmaixm4c389.pngwKgZO2nm9BOAV6GjAACgmaixm4c389.png

(4)相关逻辑。

wKgZPGnm9CiAOzByAABwQjfSzpc324.png

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

审核编辑 黄宇

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

    关注

    1

    文章

    57

    浏览量

    18947
  • MQTT
    +关注

    关注

    5

    文章

    748

    浏览量

    25387
  • rk3576
    +关注

    关注

    1

    文章

    326

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于RK3576单板机的Modbus数据采集开发指南

    本文为创龙科技RK3576 单板机 Modbus 开发指南,基于 Modbus RTU 协议实现温湿度采集、数据打印与日志存储。包含硬件连接、参数配置、程序编译、板端运行与数据解析,支持一键采集、自动保存 CSV 文件。创龙科技
    的头像 发表于 05-16 13:52 185次阅读
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>单板机</b>的Modbus数据采集<b class='flag-5'>开发</b>指南

    RK3576单板机Docker镜像构建与容器运行手册

    本文为创龙科技RK3576 单板机 Docker 开发指南,涵盖 Docker 安装、本地仓库配置、ARM 架构镜像构建、容器拉取与运行管理。支持单 / 多镜像批量构建、本地仓库推送、容器资源监控与启停控制。创龙科技通过清晰命令
    的头像 发表于 05-16 13:50 1.5w次阅读
    ​<b class='flag-5'>RK3576</b><b class='flag-5'>单板机</b>Docker镜像构建与容器运行<b class='flag-5'>手册</b>

    RK3576单板机玩转ROS2:通信测试+编译部署全流程详解

    本文为创龙科技RK3576 单板机 ROS2 开发指南,涵盖 ROS2 Humble 环境搭建、节点通信测试、turtlesim 仿真及功能包编译部署。支持 Python/
    的头像 发表于 05-16 13:49 391次阅读
    <b class='flag-5'>RK3576</b><b class='flag-5'>单板机</b>玩转ROS2:通信测试+编译部署全流程详解

    RK3576 单板机 NPU 边缘 AI 开发手册

    本文为创龙科技RK3576 单板机 NPU 开发指南,介绍 NPU 硬件特性、RKNN 开发流程,包含 YOLOv5 目标检测与 DeepSeek LLM 大模型两大案例。覆盖模型加载
    的头像 发表于 05-09 10:50 143次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> NPU 边缘 AI <b class='flag-5'>开发</b><b class='flag-5'>手册</b>

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

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

    RK3576 单板机嵌入式 Qt 界面与多屏异显开发手册(三)

    本文为创龙科技RK3576 单板机 Qt GUI 开发指南,包含环境搭建、编译调试、GPU 加速、自启动配置及多屏显示方案。提供 Qt Creator 与命令行双开发模式,覆盖界面控制
    的头像 发表于 04-24 09:27 231次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>嵌入式 Qt 界面与多屏异显<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(三)

    RK3576 单板机嵌入式 Qt 界面与多屏异显开发手册

    本文为创龙科技RK3576 单板机 Qt GUI 开发指南,包含环境搭建、编译调试、GPU 加速、自启动配置及多屏显示方案。提供 Qt Creator 与命令行双开发模式,覆盖界面控制
    的头像 发表于 04-23 10:55 865次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>嵌入式 Qt 界面与多屏异显<b class='flag-5'>开发</b><b class='flag-5'>手册</b>(<b class='flag-5'>二</b>)

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

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

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

    本文为创龙科技RK3576 单板机 Linux 系统开发指南,涵盖 SDK 搭建、内核与引导程序开发、根文件系统修改、镜像打包、分区配置及硬件资源调优等全流程。提供命令实操、参数说明与
    的头像 发表于 04-16 15:39 1078次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> LinuxSDK <b class='flag-5'>开发</b>与系统定制<b class='flag-5'>手册</b>(<b class='flag-5'>二</b>)

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

    本文为创龙科技RK3576 单板机 Linux 系统开发指南,涵盖 SDK 搭建、内核与引导程序开发、根文件系统修改、镜像打包、分区配置及硬件资源调优等全流程。提供命令实操、参数说明与
    的头像 发表于 04-15 11:18 1086次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b> LinuxSDK <b class='flag-5'>开发</b>与系统定制<b class='flag-5'>手册</b>(一)

    RK3576 单板机系统使用手册:配置、升级与组件安装指南(三)

    本文为创龙科技RK3576 单板机系统使用指南,全面覆盖系统基础配置、升级流程与组件安装。详解内存存储分区、网络静态 IP 配置、OTA/U 盘升级操作,以及常用开发组件部署方法。创龙科技以实操为核心,提供标准化步骤与命令示例,
    的头像 发表于 04-07 11:40 276次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>系统使用<b class='flag-5'>手册</b>:配置、升级与组件安装指南(三)

    RK3576 单板机系统使用手册:配置、升级与组件安装指南(

    本文为创龙科技RK3576 单板机系统使用指南,全面覆盖系统基础配置、升级流程与组件安装。详解内存存储分区、网络静态 IP 配置、OTA/U 盘升级操作,以及常用开发组件部署方法。创龙科技以实操为核心,提供标准化步骤与命令示例,
    的头像 发表于 04-03 11:39 1319次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>系统使用<b class='flag-5'>手册</b>:配置、升级与组件安装指南(<b class='flag-5'>二</b>)

    RK3576 单板机系统使用手册:配置、升级与组件安装指南(一)

    本文为创龙科技RK3576 单板机系统使用指南,全面覆盖系统基础配置、升级流程与组件安装。详解内存存储分区、网络静态 IP 配置、OTA/U 盘升级操作,以及常用开发组件部署方法。创龙科技以实操为核心,提供标准化步骤与命令示例,
    的头像 发表于 04-02 10:46 363次阅读
    <b class='flag-5'>RK3576</b> <b class='flag-5'>单板机</b>系统使用<b class='flag-5'>手册</b>:配置、升级与组件安装指南(一)