zigbee串口打印无法显示或乱码解决方法

2023-11-18

zigbee串口打印问题

在终端节点向协调器发数据时,在数据流中伴有该节点的网络地址,而有时通过PC端无法打印出来。

1.可能是串口软件的问题:

  用过好几个串口软件,有时会出现停止,或乱码行为,在经过多次换用软件,发现**SecureCRT**这个软件还不错,解决的大部分问题

2.发过来的数据没有转换:

  一般的在终端发送数据的函数中,加入'0'转换就行了。
    SendBuf[0]='$';
    SendBuf[1]='@'; 
    SendBuf[2] = HI_UINT16( EndDeviceID );
    SendBuf[3] = LO_UINT16( EndDeviceID );
    SendBuf[4] = ZIGBEE_FUN_CODE_RFID_Conflict; //fc
    SendBuf[5]=5;   //data len
    SendBuf[6]=(RevBuffer[1]==0)?1:0;   //成功
    SendBuf[7]=RevBuffer[2];  //data
    SendBuf[8]=RevBuffer[3];  //data
    SendBuf[9]=RevBuffer[4];  //data
    SendBuf[10]=RevBuffer[5];  //data
    SendBuf[11] = XorCheckSum(&SendBuf[2], 9);
    SendBuf[12] = '\r';
    SendBuf[13] = '\n';

在data部分加入’0’,就行了

    SendBuf[8]=RevBuffer[3] + '0';  //data
    SendBuf[9]=RevBuffer[4] + '0';  //data
    SendBuf[10]=RevBuffer[5] + '0';  //data

3.还不能解决的话可以试试ZIGBBE中的数据转换的函数_ltoa(unsigned long l, unsigned char *buf, unsigned char radix)

在OSAL.c文件中:

unsigned char * _ltoa(unsigned long l, unsigned char *buf, unsigned char radix)
{
#if defined( __GNUC__ )
  return ( (char*)ltoa( l, buf, radix ) );
#else
  unsigned char tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";
  unsigned short num1, num2, num3;
  unsigned char i;

  buf[0] = '\0';

  if ( radix == 10 )
  {
    num1 = l % 10000;
    num2 = (l / 10000) % 10000;
    num3 = (unsigned short)(l / 100000000);

    if (num3) _itoa(num3, tmp3, 10);
    if (num2) _itoa(num2, tmp2, 10);
    if (num1) _itoa(num1, tmp1, 10);

    if (num3)
    {
      strcpy((char*)buf, (char const*)tmp3);
      for (i = 0; i < 4 - strlen((char const*)tmp2); i++)
        strcat((char*)buf, "0");
    }
    strcat((char*)buf, (char const*)tmp2);
    if (num3 || num2)
    {
      for (i = 0; i < 4 - strlen((char const*)tmp1); i++)
        strcat((char*)buf, "0");
    }
    strcat((char*)buf, (char const*)tmp1);
    if (!num3 && !num2 && !num1)
      strcpy((char*)buf, "0");
  }
  else if ( radix == 16 )
  {
    num1 = l & 0x0000FFFF;
    num2 = l >> 16;

    if (num2) _itoa(num2, tmp2, 16);
    if (num1) _itoa(num1, tmp1, 16);

    if (num2)
    {
      strcpy((char*)buf,(char const*)tmp2);
      for (i = 0; i < 4 - strlen((char const*)tmp1); i++)
        strcat((char*)buf, "0");
    }
    strcat((char*)buf, (char const*)tmp1);
    if (!num2 && !num1)
      strcpy((char*)buf, "0");
  }
  else
    return NULL;

  return buf;
#endif
}

l代表的是要转换的数组
buf代表的是转换后的数组的指针
radix代表的是几进制,10或16

这是我自己写的转换函数(自己开了双串口):

//端口打印函数转化  UART:0->UART0,1->UART1;data目的数组;len长度;Slen从第几位开始;Elen倒数第几位结束
static void UART_printf(uint8 UART,uint8 *data,uint8 len,uint8 Slen,uint8 Elen)
{    
     uint8 i;
     uint8 DATA[30]={0};
     uint8 *ltoas;
     ltoas=DATA;
     for(i=Slen;i<len-Elen;i++)
     {
       _ltoa(data[i],ltoas,16);
       ltoas+=2;
       *ltoas++=' ';
     }
    *ltoas++='\0';
    if(UART==0)
      HalUARTWrite(UART0,DATA,len-Slen);
    else
      HalUARTWrite(UART1,DATA,len-Slen);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zigbee串口打印无法显示或乱码解决方法 的相关文章

  • Android 数据的保存,检索,删除之Cursor

    今天遇到的一个问题是如何将数据删除后 将原来的id也相应的做改变呢 如果说对其id值进行逐个修改这也是可以的 但是当数据增多的时候 我们这么做就会很大程度上的降低程序的性能 所以我们想到的就是不要根据id的检索来获取数据库中的值 因为这样做
  • #QGIS源码官方编译指南

    QGIS源码官方编译指南 将QGIS官方的编译指南windows部分翻译一下 供大家参考 这个版本是QGIS源代码工程中2017年4月30日最后修改的版本 对应QGIS 2 99 也就是即将发布为QGIS 3 0的版本 翻译 Jacory
  • Pandas学习笔记

    1 Pandas作用 一个提供快速 可扩展和展现数据结构的Python库 目标是成为使用Python处理时间和实际数据分析的模块 有两种数据结构 Series和DataFrame 1 Series是一种类似于NumPy数组的对象 由一组数据
  • SecureCRT9.1高亮配色设置

    参考 http zh cjh com qita 1623 html https download csdn net download qq 45698138 88310255 spm 1001 2014 3001 5503 1 创建文件co
  • 如何强制解锁或删除被占用的文件或文件夹 - ForceDelete绿色强制文件删除工具

    你可能时常遇到无法删除Windows上的文件和文件夹的情况 并且会收到 无法删除文件 访问被拒绝 或 该文件已被其他程序打开 诸如此类的错误消息 这意味着这些文件和文件夹在Windows中被锁定 无法以常规方式删除 你可以试试ForceDe
  • json数组如何转换成string类型(超级好用)

    先上代码 下面解释 这个jar包地址之后更新的时候再给出来的 包的地址 JSONObject job ace text a 此时job里面的数据格式为 logid 2075 words result words acb words and
  • 微信小程序API——向服务器发送请求

    在微信小程序中 我们可以通过微信的API与服务器进行数据传递 接下来我会详细介绍一下wx request的用法 首先给出前端代码 我们定义一个按钮 绑定点击事件 用于给服务器发送请求 当服务器返回数据后 通过wx for循环出数组中的数据
  • 对于前端开发在vs code中编写后出现的Cannot find module 'crypto-js/hmac-sha256.js'.报错

    移植了老师的代码 出现了该问题 应该是js加密的问题 而本机中并没有使用过js加密 所以并没有该包的原因 遵循没有就安装的方式进行解决 1 直接安装该包 网上大多数都是这个方法 命令行代码如下 npm install crypto js 跟
  • Linux入门篇-01 台式机安装Linux系统

    材料 台式机 U盘 内存大于8G CentOs7 下载地址 点击跳转 步骤一 U盘启动电脑 启动成功画面 选择第一个 按E 或者 Tab键 进行编辑 vmlinuz initrd initrd img inst stage2 hd LABE
  • Ubuntu 安装 anaconda

    文章目录 写在前面 一 官网下载安装包 二 安装 参考链接 写在前面 Ubuntu安装 anaconda 比较简单 去官网下载 anaconda 安装包 然后安装即可 自己的安装环境 Ubuntu18 04 anaconda3 博客撰写日期
  • qq键盘快捷键大全

    qq键盘快捷键大全 Ctrl A 全选 Ctrl B 整理收藏夹 Ctrl C 复制 Ctrl D 删除 添加收藏 在Word中是修改选定字符格式 在IE及傲游 中是保存为收藏 Ctrl E 搜索助理 在Word中是段落居中 Ctrl F
  • VSCODE 系列(三)Settings Sync插件,多人开发同步配置。

    文章目录 前言 一 安装 二 配置 下载 上传 个人应用 团队应用 共享配置 令牌token失效处理 引用 借鉴文章 前言 该插件已被VSCODE弃用 下载在VSCODE上已经无法下载该插件 可以通过在vscode上登录github或微软账
  • 3dmax 保存慢 卡死

    解决3DMAX保存慢的方法 方法一 在MAX环境中 按F11会弹出一个编辑框 然后输入 t trackviewnodes n t Max MotionClip Manager deleteTrackViewController t n co
  • centos安装配置hadoop超详细过程(含故障排除)

    1 集群部署介绍 1 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台 以Hadoop分布式文件系统 HDFS Hadoop Distributed Filesystem 和MapReduce Goog
  • 在双精度和字节数组之间进行转换,以便通过 ZigBee API 传输?

    我正在尝试获取两个双精度数 GPS 坐标 并通过 ZigBee API 将它们发送到另一个 ZigBee 接收器单元 但我不知道如何将双精度数分解为字节数组 然后将它们重新组合回原始形式一旦他们被转移 基本上 我需要将每个双精度数转换为八个
  • Adobe Reader等停止工作的原因不少,但可修复性很强

    这种情况是随机发生的 比如如果你在正常的状态下关闭了电脑 第二天打开Adobe Reader时可能就会出现这个错误 但别担心 在这篇文章中 我们将解释为什么Adobe Reader或Acrobat DC停止工作 以及我们如何解决这个问题 是
  • Python 元组完全指南 1

    元组用于在单个变量中存储多个项目 mytuple apple banana cherry 元组是 Python 中的 4 种内置数据类型之一 用于存储数据集合 另外还有列表 集合和字典 它们都具有不同的特性和用途 元组是有序且不可更改的集合
  • 在XBee ZigBee中,如何从协调器获取所有终端设备的RSSI

    获取每个终端设备的 RSSI 的正确方法是什么 场景 在 XBee 系列 2 无线电模块上使用 ZigBee 固件 API 模式 我有一个协调器和多个终端设备 每隔几秒钟 每个终端设备都会向协调器发送一个数据包 其中包含传感器信息 例如温度
  • Python写入csv乱码

    把encoding utf 8 改成 encoding utf 8 sig 代码 import os csv with open result file mode a encoding utf 8 sig newline as f writ
  • XBee3 协调器在网络发现期间找不到 End_Device

    目前 我正在运行 XBee3 International Mesh Kit 并尝试按照文档中给定的示例进行操作 我尝试使用 Micropython REPL 为三个设备实现网络发现 以下是我的 3 个 XBee 设备的配置 3 个 XBee

随机推荐

  • nginx系统学习5--常用配置6--网络限速配置

    6 6 网络限速配置 6 6 1 操作 01 修改配置文件 worker processes 1 events worker connections 1024 http include mime types default type app
  • SpringBoot自动配置原理,一文搞懂

    阅读收获 1 type 1 2 理解SpringBoot自动配置原理 SpringBoot是什么 SpringBoot 的诞生就是为了简化 Spring 中繁琐的 XML 配置 其本质依然还是Spring框架 使用SpringBoot之后可
  • Win11的Linux子系统WSL2安装Ubuntu的关键步骤

    安装Ubuntu 主要参考 官网教程 注意WSL2的重启时机与WSL有所不同 在Ubuntu 22中 配置用户名和子系统分区的界面已经与官网教程有所不同 用户名不能有大写 分区可以采用默认设置 若卡在Ubuntu安装页面 在Windows设
  • 面试宝典:从MobileNetV1到V3,一文全面梳理移动端深度学习模型

    面试宝典 MobileNetV1 V3 MobileNet的设计及实现 MobileNet是一种适用于移动设备的通用计算机视觉神经网络 可用于分类 目标检测和语义分割等多种任务 为了在移动设备上实现高效的计算和减小模型大小 我们可以采用以下
  • DEBUG:Generate Bitstream失败

    问题 约束失败 解决 确保IO初始化引脚正确 和选择合适的电平
  • node socket 简易聊天室

    服务端 const net require net const server net createServer 用户列表 let clients 监听连接 server on connection client gt client on d
  • 解决vscode git push不成功,总是弹出“...reset”或“...Timeout”错误问题?

    问题 解决vscode git push不成功 总是弹出 reset 或 Timeout 错误问题 解决方法 cmd刷新一下ip缓存 ipconfig flushdns 第二种 git push报错 OpenSSL SSL read Con
  • Unity中将3D模型显示在UI上或者显示在UI前面

    标题 Unity中将3D模型显示在UI上或者显示在UI前面 一 将3D模型显示在UI上 使用RawImage和Render Texture组合实现效果 1 创建一个RawImage控件 2 创建一个Render Texture 然后可以调节
  • 记录SpringBoot+Mybatis+PageHelper分页踩坑:Pages总页数查出来始终为1,Total数有误

    记录Mybatis使用PageHelper遇到的坑 使用PageHelper时 PageHelper startPage page limit List
  • 枚举常量

    2011 04 28 12 20 31 分类 C C 语言 标签 c枚举变量 字号大中小订阅 1 枚举常量的定义 enum 枚举类型名 常量1 常量2 常量3 例如定义一个星期的枚举常量 enum Week Mon Tue Wed 这就定义
  • 0-OpenWrt前菜

    前言 接触 op 已达四年 今年开始梳理整体所学 具体还参考了佐大的视频 对 op 缺乏系统知识的可以尝试 总体而言官方文档和源码是最好的教程 文章目录 OpenWrt Study uboot下升级固件 进入uboot 安装串口工具 安装t
  • 猿如意

    目录 一 什么是猿如意 二 借助猿如意安装Visual Studio Code 1 安装猿如意 2 安装Visual Studio Code 三 总结 一 什么是猿如意 猿如意是CSDN推出来的一款面向开发者的工具 他能够帮助开发者 找到自
  • GEE学习笔记 六十七:【GEE之Python版教程一】GEE学习背景介绍

    相信很多人都对GEE已经比较熟悉了 只是不熟悉GEE的Python的API而已 这里只是做一个简单的总结概括一下GEE相关内容 1 GEE学习基本要求 目前市面上无论出现什么新的技术 总会出现一种课程或者资料 xxx天零基础精通xxx 其实
  • 系统分析与设计——lesson16

    使用 ECB 实现 make reservation 用例的详细设计 包含用例简介 顺序图 类图 用例简介 make reservation这个用例包括 根据location和入住时间查询旅馆 可按照某种属性排序显示旅馆 选择房间 填写入住
  • struts验证框架

    关于validation xml 在validator xml中使用了validation rules xml的验证规则注意一定要加其已经定义好的出错消息考到你的资源包里去 否则出错的时候 显示错误对话框里面却什么错误消息都没有 不允许发生
  • MySQL自动重新连接

    最近部署一个系统 后台用线程池来处理请求 而每个线程有一个mysql连接 当系统运行一阶段后 有些请求会出现操作 Internal error 而操作一次可能又会成功 经过多方调试 发现是MySQL连接超时 如果使用了长连接而长期没有对数据
  • Qt程序Release版出现 类似 QEventLoop: Cannot be used without QApplication 问题的终极解决方案

    Qt程序Release版出现 类似 QEventLoop Cannot be used without QApplication 问题的终极解决方案 参考文章 1 Qt程序Release版出现 类似 QEventLoop Cannot be
  • 初学者学习安装Vmware正版软件

    目录 一 获取下载安装 二 安装图文步骤 三 可能出现问题 2分钟无脑 快速安装Vmware 一 获取下载安装 首先说明 官网下载需要登入账号 最新版可以下载试用版 不需要账号 下述为官网的下载路径图示 仅供参考 注意 目前下载都需要账号了
  • Linux系统Could not connect to '192.168.128.XXX' (port 22): Connection failed.

    网上查找了方法 都是 查看防火墙 service iptables status 关闭防火墙 service iptables stop 打开防火墙 service iptables start 打开sshd service sshd st
  • zigbee串口打印无法显示或乱码解决方法

    zigbee串口打印问题 在终端节点向协调器发数据时 在数据流中伴有该节点的网络地址 而有时通过PC端无法打印出来 1 可能是串口软件的问题 用过好几个串口软件 有时会出现停止 或乱码行为 在经过多次换用软件 发现 SecureCRT 这个