6.12物联网RK3399项目开发实录-驱动开发之UART 串口的使用(wulianjishu666)

嵌入式实战开发例程【珍贵收藏,开发必备】:

链接:https://pan.baidu.com/s/1tkDBNH9R3iAaHOG1Zj9q1Q?pwd=t41u
======================================================================

UART 使用

简介

AIO-3399J 支持 SPI 桥接/扩展 4 个增强功能串口(UART)的功能,分别为 UART1,UART2,RS232,RS485。每个 UART 都拥有 256 字节的 FIFO 缓冲区,用于数据接收和发送。其中:

  • UART1,UART2 为 TTL 电平接口,RS232 为 RS232 电平接口,RS485 为 RS485 电平接口

  • 每个子通道 UART 的波特率、字长、校验格式可以独立设置,最高可以提供 2Mbps 的通信速率

  • 每个子通道具备收/发独立的 256 BYTE FIFO,FIFO 的中断可按用户需求进行编程触发点

  • 具备子串口接收 FIFO 超时中断

  • 支持起始位错误检测

AIO-3399J 开发板的串口接口图如下:

_images/uart_interface.jpg

DTS 配置

文件 kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-port.dtsi 有 SPI 转 UART 相关节点的定义:

&spi1 {spi_wk2xxx: spi_wk2xxx@00{status = "disabled";compatible = "firefly,spi-wk2xxx";reg = <0x00>;spi-max-frequency = <10000000>;power-gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;reset-gpio = <&gpio1 17 3 GPIO_ACTIVE_HIGH>;irq-gpio = <&gpio1 2 IRQ_TYPE_EDGE_FALLING>;cs-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;/* rk3399 driver support SPI_CPOL | SPI_CPHA | 			SPI_CS_HIGH *///spi-cpha;     /* SPI mode: CPHA=1 *///spi-cpol;     /* SPI mode: CPOL=1 *///spi-cs-high;};
}

可以看到,在 kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-aio.dts 文件中使能该节点即可使用。另外,由于我们板子使用的 SPI 转 UART 串口模块挂到 SPI1 上,所以还要使能 SPI1 节点。如下:

&spi1 {status = "okay";
};&spi_wk2xxx {status = "okay";
};

注意:由于 spi1_rxd 和 spi1_txd 两个脚可复用为 uart4_rx 和 uart4_tx,所以要留意关闭掉 uart4 的使用,如下:

&uart4 {status = "disabled";
};

调试方法

配置好串口后,硬件接口对应软件上的节点分别为:

RS485:/dev/ttysWK0
RS232:/dev/ttysWK1
UART2:/dev/ttysWK2
UART1:/dev/ttysWK3

用户可以根据不同的接口使用不同的主机的 USB 转串口适配器向开发板的串口收发数据,例如 RS485 的调试步骤如下:

(1) 连接硬件

将开发板RS485 的A、B、GND 引脚分别和主机串口适配器(USB 转 485 转串口模块)的 A、B、GND 引脚相连。

(2) 打开主机的串口终端

在终端打开 kermit,并设置波特率:

$ sudo kermit
C-Kermit> set line /dev/ttyUSB0
C-Kermit> set speed 9600
C-Kermit> set flow-control none
C-Kermit> connect
  • /dev/ttyUSB0 为 USB 转串口适配器的设备文件

(3) 发送数据

RS485 的设备文件为 /dev/ttysWK0。在设备上运行下列命令:

echo firefly RS485 test... > /dev/ttysWK0

主机中的串口终端即可接收到字符串 “firefly RS485 test…”

(4) 接收数据

首先在设备上运行下列命令:

cat /dev/ttysWK0

然后在主机的串口终端输入字符串 “Firefly RS485 test…”,设备端即可见到相同的字符串。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在群晖本地搭建在线PS工具Potopea并实现无公网IP远程编辑图片

文章目录 1. 部署Photopea2. 运行Photopea3. 群晖安装Cpolar4. 配置公网地址5. 公网访问测试6. 固定公网地址 本文主要介绍如何在群晖NAS使用Docker部署Potopea在线图片编辑工具&#xff0c;并结合cpolar内网穿透实现公网环境可以远程访问本地部署的Potopea. Photopea是一款强大…

[通俗易懂]《动手学强化学习》学习笔记2-第2、3、4章

文章目录 前言小总结&#xff08;前文回顾&#xff09;第二章 多臂老虎机2.2.2形式化描述 第三章 马尔可夫决策过程3.6 占用度量 代码3.6 占用度量 定理2 第四章 动态规划算法4.3.3 策略迭代算法 代码 总结 前言 参考&#xff1a; 《动手学强化学习》作者&#xff1a;张伟楠&a…

爬取豆瓣(线程、Session)优化版本

爬取豆瓣&#xff08;线程、Session&#xff09;优化版本 该文章只是为了精进基础&#xff0c;对Session、threading、网站请求解析的理解。 此版本没有爬取详情页。还在学习阶段的读者可以尝试一下。 适用于基础刚开始学习爬虫的&#xff01; 1.改进点&#xff1a; 将普通的r…

利用alibaba.item_get API接口,跨境电商如何快速获取商品详情?

利用alibaba.item_get API接口&#xff0c;跨境电商可以快速获取商品详情&#xff0c;为业务的开展提供有力支持。alibaba.item_get API接口是阿里巴巴开放平台提供的一项服务&#xff0c;它允许开发者通过调用API接口&#xff0c;获取阿里巴巴平台上商品的详细信息。以下是如何…

Android8.1 代码编译报错

注&#xff1a; 本文只是博主学习记录分享&#xff0c;仅供参考。如有错误肯定是博主理解有问题&#xff0c;谢谢&#xff01; 1. Android8.1 编译报 java 环境错误 1.1. 具休描述 Android8.1 代码编译报 Failed to run java: exce: "java": excutable file not fo…

【全网独家】oceanbase容器重启时报obshell failed错误,无法正常启动的问题处理

正常运行的oceanbase容器&#xff0c;重新启动该容器却启动不了&#xff0c;重启服务器也无法恢复&#xff0c;报obshell failed错误&#xff0c;无法正常启动&#xff0c;本文记录了问题处理过程。 一、问题现象 1、正常运行的oceanbase容器&#xff0c;重启却启动不了 2、运…

使用Charles断点修改接口返回数据

问题&#xff1a;数量/金额原来接口是用一个字段返回&#xff0c;由于业务需要换行展示&#xff0c;后端便拆分成了两个字段&#xff0c;前端则需要用新拆分的字段去取值&#xff0c;导致目前发现有个字段的金额也取成了件数&#xff08;红框部分&#xff09;&#xff1b;需求&…

Java-变量和常量

变量是什么&#xff1a;就是可以变化的量&#xff01;Java是一种强类型语言&#xff0c;每个变量必须声明声明其类型Java变量是程序中最基础的存储单元&#xff0c;其要素包括变量名&#xff0c;变量类型和作用域 type varName [value][{,varName[value]}]; //数据类型 变量…

五种主流数据库:连接查询

关系型数据库通常将不同的实体对象和它们之间的联系存储在多个表中&#xff0c;例如电商系统中使用的产品表、用户表、订单表以及订单明细表等。当我们查看某个订单信息时&#xff0c;需要同时从这几个表中查找关于该订单的相关数据。 本文比较五种主流数据库实现的多表连接查…

第3章 数据链路层(3)

3.6 局域网 采用广播信道 3.6.1 局域网的基本概念和体系结构 特点: ①覆盖范围小②专门通信介质【双绞线,同轴电缆】③通信延时短,误码率低,可靠性高。④通信质量好。因此采用无确认,无连接的服务。⑤关系平等,共享信道⑥分布式控制,广播信道,广播,组播 决定因素: ①拓扑结构:…

MuJoCo 入门教程(八)Model仓库

系列文章目录 前言 一、MuJoCo 动物园 一个物理仿真器的好坏取决于它所仿真的模型&#xff0c;而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中&#xff0c;很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用…

【学习笔记】R语言入门与数据分析1

数据分析 数据分析的过程&#xff1a; 数据采集 数据存储 数据分析 数据挖掘 数据可视化 进行决策 数据挖掘 数据量大 复杂度高&#xff0c;容忍一定的误差限 追求相关性而非因果性 数据可视化 直观明了 R语言介绍 R是免费的&#xff08;开源软件、扩展性好&#xff09;…

家居颜色搭配6大法则,奶油风配色指南。福州中宅装饰,福州装修

奶油风装修的配色主要以奶油色系为主&#xff0c;搭配其他低饱和度的色彩&#xff0c;营造出一种温馨、柔和的氛围。以下是一些常见的奶油风装修配色法则&#xff1a; 1. 主色&#xff1a;奶油色 奶油色是奶油风装修的主色调&#xff0c;通常使用在墙面、地面、家具等大面积的…

如何从0开始构建GPT模型?

OpenAI 推出强大的生成式预训练转换器 &#xff08;GPT&#xff09; 语言模型&#xff0c;为自然语言处理 &#xff08;NLP&#xff09; 开辟了新的领域。将 GPT 模型集成到虚拟助手和聊天机器人中可以增强它们的能力&#xff0c;这导致对 GPT 模型的需求激增。根据 Allied Mar…

软考122-上午题-【软件工程】-需求分析

一、软件需求 在进行需求获取之前&#xff0c;首先要明确需要获取什么&#xff0c;也就是需求包含哪些内容。 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常&#xff0c;这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需…

Android开发之移除权限

Android开发之移除权限 在Android开发结束后&#xff0c;我们将build好的App Bundle上传至Google Play。这时Google可能会提示一些需要解决的错误&#xff0c;比如xx权限需要限制&#xff0c;需要解释为什么需要这些权限&#xff0c;需要添加文字描述和视频链接&#xff0c;但…

SOCKS代理是如何提高网络性能和兼容性的?

SOCKS代理作为一种网络协议中间件&#xff0c;不仅在提升网络隐私和安全性方面发挥着重要作用&#xff0c;也在提高网络性能和兼容性方面有着不容忽视的影响&#x1f680;。本文将深入探讨SOCKS代理如何通过减少网络延迟&#x1f680;、优化数据传输&#x1f504;、提高跨平台兼…

【智能算法应用】灰狼算法求解TSP问题

目录 1.算法原理2.TSP数学模型3.结果展示4.参考文献 1.算法原理 【智能算法】灰狼算法&#xff08;GWO&#xff09;原理及实现 2.TSP数学模型 旅行商问题&#xff08;TSP&#xff09;是一种著名的组合优化问题&#xff0c;它涉及寻找给定一组城市及其之间的距离或成本&#…

查询卖家已卖出的交易数据

要获取淘宝订单详情数据&#xff0c;你需要使用淘宝开放平台的API来获取数据。以下是获取淘宝订单详情数据的步骤&#xff1a; 在淘宝开放平台上创建一个应用&#xff0c;获取到AppKey和AppSecret。 使用OAuth 2.0授权方式&#xff0c;获取到授权码。 第三方公司授权 使用授…

kaggle 泰坦尼克号1(根据男女性存活率)

kaggle竞赛 泰坦尼克号 流程 下载kaggle数据集导入所要使用的包引入kaggle的数据集csv文件查看数据集的大小和长度去除冗余数据建立特征工程导出结果csv文件 1.下载kaggle数据集 2.导入所要使用的包 import pandas as pd import numpy as np import matplotlib.pyplot as …