• 关于java串口通信 接受显示 乱码的字符转换问题解决方案


       最近在做关于一个rs232通信的问题,下位机的处理器采用飞思卡尔的aw32 8位MCU  ,下位机和上位机编写完毕后 出现了让人头疼的乱码问题,经过多方面的查询,了解到是字符类型的问题,单片机的传输一般默认都是ascall码的方式传输的,我在下位机程序直接用了整型传输所以出现了乱码现象,查询资料终于找到解决方案,就是用字符串的方式传输,C语言里面有itoa函数可以很好的解决方案,当然如果单片机的资源紧张或者没有这个函数,我们也可以自己编写转换函数解决这个问题下面是实现代码:

         

    typedef unsigned char BYTE;
    BYTE * ByteToStr(BYTE n)
    {
     BYTE str[4];
     BYTE * pStr;
     pStr = str;
     if (n>99)
     {
       *pStr = n/100;
       n %= 100;
       *pStr += '0';
       pStr ++ ;
       *pStr = n/10;
       n %= 10;
       *pStr += '0';
       pStr ++ ;
     }
     if (n>9)
     {
      *pStr = n/10;
      n %= 10;
      *pStr += '0';
      pStr ++ ;
     }
     if (n<10)
     {
      *pStr = n + '0';
      pStr ++;
     }
     *pStr = 0;
     return str;
    }

    上位机采用java编写,有2种实现包,我采用了rxtx的外部拓展包,后期的细节还有很多问题需要解决,继续前进把。

  • 相关阅读:
    Netty(2):EventLoop
    Neo4j:Admin管理员操作
    Netty(1):入门HelloWorld程序
    Netty(4):Future、Promise
    Neo4j:相关概念和安装
    Netty(7):粘包与半包
    SpringBoot:整合Neo4j
    Neo4j:CQL
    Spring Data Jpa:打印可执行Sql
    响应式编程介绍
  • 原文地址:https://www.cnblogs.com/zhang747725388/p/2957185.html
Copyright © 2020-2023  润新知