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

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

3天内不再提示

瑞芯微(EASY EAI)RV1126B UART使用

广州灵眸科技有限公司 2026-01-02 10:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. Uart介绍

1.1 串口资源介绍

EASY EAI Nano-TB开发板的串口资源被划分为两类。一类是已被特定功能所占用的【不可用串口】,另外一个类可由用户自由使用的【可用串口】。

【不可直接使用的串口】分布情况如下所示。

串口号设备节点描述
串口0/dev/ttyFIQ0调试串口占用,不作为普通串口使用
串口1串口所关联的引脚,已被复用成其他功能
串口3~5串口所关联的引脚,已被复用成其他功能

硬件分布情况如下所示。

wKgZPGlUyq-AZdSuABI97kh7dD4016.jpg

【可用串口】分布情况如下所示。

串口号设备节点描述
串口2/dev/ttyS2TTL电平。
串口6/dev/ttyS6TTL电平。
串口7/dev/ttyS7TTL电平。

硬件分布情况如下所示。

wKgZPGlUyq-AcJ1dABPmh_6BKhc935.jpg

1.2 硬件接线

wKgZO2lUw7qAYD_5AADYb7LhCcw830.jpg

常规接线,设备与设备进行通信

wKgZO2lUyq6ABqDtAALC968coTg060.jpg

本单例测试接线,利用跳线帽把Rxd引脚与Txd引脚短接,进行自发自收。

wKgZO2lUyq6AcMMlAAATgddSq3s537.jpg

2. 快速上手

2.1 开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh

wKgZPGkmcrqAUDHhAAGt1XOkqw8819.jpg

2.2 源码下载以及例程编译

首先,在虚拟机后台终端,执行以下命令,创建外设单例源码管理目录:

cd /opt mkdir -p EASY-EAI-Nano-TB/demo

首先,到【百度网盘】上下载相关的单例程序:

链接:https://pan.baidu.com/s/1Br608Hiff2Xs65PzWO_qWQ?pwd=1234

提取码:1234

比如把单例程序下载到:此电脑\D:\BaiduNetdisk (无规定,用户可自主选择),如下图所示。

wKgZPGlUyq6AD6bpAAClvlKJuTw895.jpg

再将下载好的单例复制进入虚拟机的文件系统,过程如下图所示。

wKgZO2lUyq-AdOWSAAEmnH1yGJQ109.jpgwKgZO2kmcruAekwKAAEv5Q2aAtI194.jpgwKgZPGlUyq-AdzfSAAD7MDB2XQ4662.jpg

最后,进入到对应的例程目录执行编译操作,具体命令如下所示:

cd EASY-EAI-Nano-TB/demo/06_UART ./build.sh

注:

* 由于依赖库部署在板卡上,因此交叉编译过程中必须保持/mnt挂载。

wKgZO2lUyq-AOovpAAFmOTWFg_g041.jpg

编译成功后,会生成2个叫可执行程序在Release目录,并会自动部署到开发板的/userdata/目录中。它们分别是发送端demo:test-Send,接收端demo:test-Recv。

2.3 例程运行

通过串口调试或ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata

图片

先执行下方命令以【后台运行】【接收端】demo,如下所示。

sudo ./test-Recv /dev/ttyS2 &

执行效果如下所示,此时接收端会等待发送端发来数据。

图片

再执行下方命令以运行【发送端】demo,如下所示。

sudo ./test-Send /dev/ttyS2

图片

3. C语言使用案例

串口的C语言使用案例,接收端代码地址为06_UART/test-uart/Recv.c,供用户编码参考。以下代码展示了对串口接收端操作流程:

int main(int argc, char **argv) { if(2 != argc){ printf("Usage:\n"); printf(" sudo %s %s\n", argv[0], "/dev/ttyS<2/6/7>"); return -1; } int fd = UART_Open(argv[1]); if(fd < 0){ printf("\033[33m【Open ERROR!】%s\n", DEBUG_COLOR_TAIL); return -1; } if(false == UART_Set(fd, 115200, 0, 8, 1, 'N')){ printf("\033[33m【Init ERROR!】%s\n", DEBUG_COLOR_TAIL); return -1; } const char *strReceiver = "I am uart Receiver"; printf("\033[36m【Init OK \"%s\"】%s\n", strReceiver, DEBUG_COLOR_TAIL); char recvBuf[128]={0}; while(1){ if(UART_Recv(fd, recvBuf, sizeof(recvBuf)) <= 0){ continue; }else{ printf("\033[36m【Recv Msg from Sender】:%s", DEBUG_COLOR_TAIL); printf(" %s\n", recvBuf); break; } } UART_Close(fd); printf("\033[42m【Recv date OK. BYE BYE!】%s\n", DEBUG_COLOR_TAIL); return 0; }

发送端代码地址为06_UART/test-uart/Send.c,供用户编码参考。以下代码展示了对串口发送端操作流程:

int main(int argc, char **argv) { if(2 != argc){ printf("Usage:\n"); printf(" sudo %s %s\n", argv[0], "/dev/ttyS<2/6/7>"); return -1; } int fd = UART_Open(argv[1]); if(fd < 0){ printf("\033[33m【Open ERROR!】%s\n", DEBUG_COLOR_TAIL); return -1; } if(false == UART_Set(fd, 115200, 0, 8, 1, 'N')){ printf("\033[33m【Init ERROR!】%s\n", DEBUG_COLOR_TAIL); return -1; } char *strSender = "I am uart Sender"; printf("\033[36m【Init OK \"%s\"】%s\n", strSender, DEBUG_COLOR_TAIL); int len = UART_Send(fd, strSender, strlen(strSender)); if(len <= 0){ printf("\033[41m【Send data ERROR!】%s\n", DEBUG_COLOR_TAIL); return -1; } UART_Close(fd); printf("\033[42m【Send date OK. BYE BYE!】%s\n", DEBUG_COLOR_TAIL); return 0; }

其中UART_Open(),UART_Set(),UART_Send(),UART_Recv()是对系统调用的易用化封装。具体实现于06_UART/commonApi/uart.c

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

    关注

    88

    文章

    11868

    浏览量

    219894
  • 瑞芯微
    +关注

    关注

    27

    文章

    909

    浏览量

    54744
  • EASY-EAI灵眸科技

    关注

    4

    文章

    140

    浏览量

    3755
  • RV1126B
    +关注

    关注

    0

    文章

    135

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    (EASY EAI)RV1126B 音频输入

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 12-18 13:41 2714次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输入

    (EASY EAI)RV1126B PWM使用

    1.PWM简介1.1开发板PWM资源1.2查找PWM节点rv1126b的pwm资源表如下:【PWM1CH0】对应的是pwm1_4ch_0,寄存地址为20700000。【PWM1CH1】对应
    的头像 发表于 01-06 10:49 9041次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> PWM使用

    (EASY EAI)RV1126B 音频输出

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 04-01 17:13 8739次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输出

    EASY EAI Nano-TB(RV1126B)开发板试用】+初识篇

    Nano-TB是灵眸科技研发的一款应用于AIoT领域的开发板,它基于RV1126B处理器,集成了4个Cortex-A53及独立的NEON协处理器,它支持4K@30fps的H.
    发表于 10-25 22:06

    EASY EAI Nano-TB(RV1126B)开发板试用】介绍、系统安装

    ,并介绍了系统镜像安装部署的相关流程。 介绍 EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。 核心板基于
    发表于 12-23 18:05

    RV1126系列选型指南:从RV1126RV1126B,一文看懂升级差异

    2025年7月,正式发布新一代AI视觉芯片RV1126B。作为其金牌方案商,EASYEAI灵眸科技同步推出搭载该芯片的AIoT核心板EAI11
    的头像 发表于 09-04 10:50 5498次阅读
    <b class='flag-5'>RV1126</b>系列选型指南:从<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126B</b>,一文看懂升级差异

    【免费试用】EASY EAI Nano-TB(RV1126B)开发套件评测

    EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。核心板基于RV1126B处理器设计,并引入了新
    的头像 发表于 09-23 08:09 1413次阅读
    【免费试用】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Nano-TB(<b class='flag-5'>RV1126B</b>)开发套件评测

    RV1126B特性概述

    RV1126BRockchip在2025年第二季度全新推出的Arm架构AI视觉芯片,搭载4核Cortex-A53与自研3Tops算力NPU。全面替代上一代的
    的头像 发表于 10-09 11:22 2423次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>特性概述

    替代升级实锤!实测RV1126B,CPU性能吊打RV1126

    AI智能芯片迭代提速,推出了全新的Arm架构AI视觉芯片RV1126B,是否替换RV1126,CPU性能是挤牙膏还是大突破。带着这些核
    的头像 发表于 12-11 17:13 2766次阅读
    替代升级实锤!实测<b class='flag-5'>RV1126B</b>,CPU性能吊打<b class='flag-5'>RV1126</b>

    (EASY EAI)RV1126B 人体关键点识别

    的特点。本人员检测算法在数据集表现如下所示:基于EASY-EAI-Nano-TB(RV1126B)硬件主板的运行效率:17个人体关键点索引定义:2.快速上手2.1开发
    的头像 发表于 01-23 10:13 4253次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 人体关键点识别

    (EASY EAI)RV1126B rknn-toolkit-lite2使用方法

    1.rknn-toolkit-lite2介绍RKNN-Toolkit-Lite2是(Rockchip)专为旗下RK系列芯片(如RV1126B、RK3576、RK3588等)打造的
    的头像 发表于 04-22 17:38 1113次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> rknn-toolkit-lite2使用方法

    (EASY EAI)RV1126B yolov11训练部署教程

    、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。本教程针对目标检测算法yolo11的训练和部署到EASY-EAI-Nano-TB(RV1126B)进行
    的头像 发表于 05-09 16:59 947次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> yolov11训练部署教程

    RV1126B 方案特性

    RV1126B是面向边缘视觉场景的专用处理芯片,凭借低功耗、内置AI-ISP、双路MIPI-CSI接口以及端侧AI算力,可支撑常规监控、双光谱、多目视觉等多类相机产品开发,配合定
    的头像 发表于 05-11 14:27 1644次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b> 方案特性

    (EASY EAI)RV1126B ubuntu系统SDK源码获取

    1.源代码获取RV1126B的ubuntu系统SDK基于ubuntu22.04进行适配移植,所以建议同样在ubuntu22.04的环境(如EASY-EAI编译环境)下编译开发,并且源码部署在服务器
    的头像 发表于 05-23 16:32 85次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> ubuntu系统SDK源码获取

    (EASY EAI)RV1126B kernel

    把烧录工具放进虚拟机任意位置(以~/rv1126b_sdk为例)。如下图所示。然后定位到工具的位置(以~/rv1126b_sdk为例),并修改可执行权限:cd~/rv1126b_sdk
    的头像 发表于 05-25 10:26 94次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> kernel