码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo


    若该文为原创文章,转载请注明原文出处
    本文章博客地址: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

  • 相关阅读:
    Java 多线程共享模型之管程(下)
    在 Spring Boot2.7.1 中如何使用 Swagger3 指南
    web3 dapp React项目引入 antd 对 balance 用户token信息组件进行样式改造
    【音视频流媒体】WebRTC 直播超详细介绍
    零基础学Java第二十七天之前端-HTML5详解
    【双指针】复写0
    Mybatis-Plus的CURD实操
    重温 JavaScript 系列(2):数组去重、类数组转换数组
    PyQt5学习笔记--多线程处理、数据交互
    经常忘记网址?将Vue项目一键打包为桌面客户端 十分钟让你解决烦恼
  • 原文地址:https://blog.csdn.net/qq21497936/article/details/132869448
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号