RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo

2023-09-14 09:44:32

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132869448

红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

瑞芯微开发专栏

上一篇:《RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
下一篇:《RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示


前言

  上一篇已经将Qt移植过去了,此时我们移植整体应用不是什么问题了,那么现在应用对外得接口使用了RS485接口,板载了一个RS485,于是需要调通,兼容这个开发板得RS485。


补充

  看起来很简单,弄起来不懂得就是不懂,懂得虽然懂还得花时间去研究一下开发板特性,与厂家沟通下,改下代码,得益于之前使用HI3559DV300做过类似得RS485,所以这次弄起来花费了不太麻烦。


调通RS485过程

步骤一:RS485调试设备与开发板连线

  先得有个RS485调试转USB,这样才能调试,界限,笔者得是绿联得RS422/485口,如下图:
  在这里插入图片描述

  开发板485口原理图:
  在这里插入图片描述

  于是接线,对了,这个口子是2.54mm得4dip得dip接插件,这个做硬件得一般都会备点货,属于通用接口,当年各种都备货了一点:
  在这里插入图片描述

  剪一根的一半,然后按照加插件插入的顺序接入,因为看到1和4引脚是联通的地,万用表测了对覆铜层通的(GND),直接1和4接到一起了,然后接A对应T/R+,B对应T/R-,如下图:
  在这里插入图片描述

  接入发开饭:
  在这里插入图片描述

  另外一头usb接入PC电脑,用串口打开即可(PS:485的usb模块对于pc来说就是一路串口)。

步骤二:打开开发板RS485调试工具

  这里的话,因为开发板使用的buildroot,去打开RS485这个类似于串口的设备还真没有,得益于笔者项目研发都会产出阶段性调试工具,于是便有了如下工具(PS:官方有个RS485调试Qt的demo,读者可以使用官方的):
  在这里插入图片描述

  (对了,这里还有相关工具的交叉编译移植,其实跟x86下编译类似,不赘述了,不懂得可以查看《RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试》得demo编译过程,其实是一样的。

步骤三:调试工具轮询接收测试485口

  因为调试工具是被动接收485数据的,所以pc端打开485之后,1s发送一次,每一个端口依次打开,测试485口试哪个口。
  在这里插入图片描述
  然后,结果试每个口都不行,这时候就怀疑:

  • 是否试AB的正负线接反了,可以直接交换,测一轮,也可以核对一次。
  • Rs485口是否有特殊的,需要自行拉上拉下(这里得到官方验证,默认是拉上的,只能发出不接收)
    (PS:通过客服技术支持,得到口为ttyS7,且需要上下拉,默认是上拉,只发送)

  于是加了一个按钮,直接发送出去测试一下:
  在这里插入图片描述

  PC端收到了发送过来的消息:
  在这里插入图片描述

  确认了,是需要上下拉,这时候查阅官方文档,并没有关于上下拉的描述,只能通过官方提供的RS485的Qtdemo来提取了。

步骤四:提取官方QT调试RS485的demo中的关键上下拉逻辑代码

  在这里插入图片描述

  在这里插入图片描述

  直接抠代码,一般是通过echo输入到一个设备文件、file打开设备文件,或者ioctl的方式,这三种方式稍微提一下区别(何种方式看开发板方案上是怎么提供的):

  • echo方式:cmd的方式,程序中用system,qt中可以用QProcess,这个方式效率相对有点低,不适合频发发送接收的状态
  • file方式:file方式是文件方式,兼容linux系统和qt开发最合适的方式,当作文件写入控制,很好的处理了环境问题,效率比echo高,比ioctl低,但是5ms足够几百字节的完成切换了(具体要按照实际情况发送调)。
  • ioctl方式:ioctl的方式在qt中不是很好,在某些情况下,qt根本不需要接触到sysroot下面的依赖库,直接qt交叉编译自己的库就可以,本开发板是已经融合好了  (PS:像海思这种,就只能将qt反向弄到sample里面去,因为环境都是makefile配置的)
      以上三种各有优缺点,但是其实选择权不在我们,而在主板方案提供商,所以拿过来用,能用就行了,别死磕。
      提取代码如下:
      在这里插入图片描述

  在这里插入图片描述

步骤五:改造我们的串口代码

  添加一个宏定义:
  在这里插入图片描述

  在串口设备管理模块添加相关代码.
  在打开的时候,添加代码:
  在这里插入图片描述

  在发送的时候,添加代码:
  在这里插入图片描述

  在关闭的时候,添加代码:
  在这里插入图片描述

  改在完以后,再交叉编译协议调试工具过去测试。

步骤六:调试解析成功

  在目标板上打开应用,打开对应的串口,然后实现收发成功:
  在这里插入图片描述


小结

  RS485调试通了,大项目中的调试工具也通了,那么剩下的就是移植应用了,移植应用中,遇到了新的问题(做嵌入式,轮上都是没问题,实际上问题一个又一个,运气好不麻烦,运气不好卡个一两天,麻烦的一两周都常有的事)


上一篇:《RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
下一篇:《RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132869448

更多推荐

SCConv:用于特征冗余的空间和通道重构卷积

文章目录摘要1、简介2、方法2.1、SRU用于空间冗余2.2.CRU用于通道冗余2.3、复杂性分析3、实验3.1、实验设置3.3、基于CIFAR的图像分类3.4、基于ImageNet的图像分类3.5、物体检测4、结论摘要代码链接:https://github.com/cheng-haha/ScConv论文链接:http

关于阅读《重构的时机和方法》这本书所带来的启发

前言近期,我阅读了由克里斯蒂安·克劳森(ChristianClausen)写的、由郭涛翻译的《重构的时机和方法》这本书,读完这本书的内容你会发现《重构的时机和方法》是一本经典的软件开发书籍,它能够帮助软件开发人员提高代码质量和工作效率,作为程序员的我觉得这本书对我很有帮助,有了很多收获和感悟,接下来本文就来简单分享一下

Attention is all you need 论文笔记

该论文引入Transformer,主要核心是自注意力机制,自注意力(Self-Attention)机制是一种可以考虑输入序列中所有位置信息的机制。RNN介绍引入RNN为了更好的处理序列信息,比如我吃苹果,前后的输入之间是有联系的。如图:引入Transformer的原因解决长距离依赖的问题:传统的RNN存在梯度消失和梯度

Java8 Stream 数据流,大数据量下的性能效率

Stream是JavaSE8类库中新增的关键抽象,它被定义于java.util.stream(这个包里有若干流类型:Stream<T>代表对象引用流,此外还有一系列特化流,如IntStream,LongStream,DoubleStream等),Java8引入的的Stream主要用于取代部分Collection的操作,

MapReduce & YARN 的部署

1、部署说明HadoopHDFS分布式文件系统,我们会启动:NameNode进程作为管理节点DataNode进程作为工作节点SecondaryNamenode作为辅助同理,HadoopYARN分布式资源调度,会启动:ResourceManager进程作为管理节点NodeManager进程作为工作节点ProxyServe

Python 数据分析学习路线

Python数据分析学习路线第一阶段:Python语言基础第二阶段:数据采集和持久化第三阶段:数据分析第四阶段:数据挖掘与机器学习书籍介绍参与方式第一阶段:Python语言基础在学习数据分析之前,首先需要掌握Python语言的基础知识,包括语法、常用数据结构、函数以及面向对象编程等。同时,还需要熟悉Python的标准库

MySQL索引,事务及存储引擎

目录MySQL索引创建索引的依据:索引的类型普通索引唯一索引主键索引组合索引全文索引查看索引删除索引事务事务的ACID特性原子性一致性隔离性持久性隔离级别设置隔离级别事务管理操作自动提交事务存储引擎MyISAMInnoDB的区别MyISAM表支持3种不同的存储格式静态(固定长度)表动态表压缩表如何避免死锁MySQL索引

Windows 10怎么清理磁盘空间?

现在,电脑是我们日常生活中很普遍的的一个工具,但在平常使用电脑时,我们会经常遇到磁盘空间已满的问题。而很多计算机新手都不知道电脑怎么清理磁盘空间,本将已Win10系统为例,教您如何清理电脑磁盘空间。方法1.清理储存对于磁盘已满的问题,我们经常遇到的就是C盘已满。C盘也就系统盘,它存放着大量的系统文件,当您安装软件时若是

密码学概论

1.密码学的三大历史阶段:第一阶段古典密码学依赖设备,主要特点数据安全基于算法的保密,算法不公开,只要破译算法密文就会被破解,在1883年第一次提出加密算法应该基于算法公开不影响密文和秘钥的安全;衡量加密算法的安全是所需要话费的时间,一般电脑需要300年才能破译认为强度是安全的第二阶段计算机的出现进入电子密码学阶段,加

实时车辆行人多目标检测与跟踪系统(含UI界面,Python代码)

算法架构:目标检测:yolov5目标跟踪:OCSort其中,Yolov5带有详细的训练步骤,可以根据训练文档,训练自己的数据集,及其方便。另外后续目标检测会添加yolov7、yolox,目标跟踪会添加ByteTrack、deepsort等经典算法,代码主要部分添加了详细注释,方便自己学习。一、简介本文将详细介绍如何使用

论文解读-DeepEdit:使用纳米孔直接RNA测序对A - to - I RNA编辑事件进行单分子检测和阶段划分

DOI:10.1186/s13059-023-02921-0期刊:GenomeBiology中科院分区:Q1影响因子:12.3作者LongxianChen;LiangOu;XinyunJing;YaweiKong;BingranXie;etal出版日期2023-04-17网址:https://genomebiology

热文推荐