查看: 1535|回复: 13

[已解决] arduino串口输出,调试工具乱码

[复制链接]
  • TA的每日心情
    开心
    2018-7-9 17:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-6-14 15:47 | 显示全部楼层 |阅读模式
    本帖最后由 basicbird 于 2018-6-16 16:06 编辑

    程序:
    void setup() {

      Serial.begin(115200);
    }

    void loop() {  

       Serial.printf("123456");
    }

    -------------------
    结果:
           我用arduino串口监视器看输出正常
    问题:
           我用串口调试助手输出的是---Vg硋V6V
    1.png
    该乱码怎么解决?


  • TA的每日心情
    慵懒
    2018-6-27 16:02
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2018-6-15 16:33 | 显示全部楼层
    我可以肯定你把 RS232 的线(RS232电平)直接接在 Arduino.RXD/TXD(TTL电平)上,原因如下:

    "g硋V6V" 字串在 GBK 编码(win32应用程序默认的字符集)下数据为 67 B3 76 56 36 56,
    你可以试试用十六进制显示接收,应该也是每包这个东西。

    PC端显示这个东西,代表着PC.UART收到了如下格式的 TTL 电平信号(8n1串行数据包):
    L HHHL LHHL H
    L HHLL HHLH H
    ......

    在 RS232 电平下,可以简单认为取反(PC.RS232线上的信号):
    H LLLH HLLH L
    H LLHH LLHL L
    ......

    在单片机端,你发送 "123456",对应的 TXD(TTL电平) 信号应该是:
    L HLLL HHLL H
    L LHLL HHLL H
    ......

    按照单片机发送的数据,逐位找过去,每个 H 后的 8-bit 均与PC端反算出来的 RS232 电平一样。
    例如单片机第二比特的 H 后有 LLL HHLL H,这与 RS232 第一行是相通的。
    出现这种情况,很明显你把RS232 的线(RS232电平)直接接在 Arduino.RXD/TXD(TTL电平)上。
    USB 转 232 是不错,但是你得看好电平标准啊,TTL直接干232不怕烧东西啊。

    至于为什么 IDE 里显示的没错,我很怀疑你的 printf 函数是什么。
    我查了手册,Serial 类里并没有 printf 函数,目测是被重载了,
    其特性是否加入了什么多余的东西(例如直接在IDE显示)就不得而知了。
    C++最疯狂的BUG非重载莫属。
  • TA的每日心情
    开心
    2018-9-20 15:06
  • 签到天数: 279 天

    [LV.8]以坛为家I

    发表于 2018-6-14 18:39 | 显示全部楼层
    看下波特率是不是一样~
    打赏一点,努力一点
  • TA的每日心情
    开心
    2018-7-9 17:17
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2018-6-15 07:58 | 显示全部楼层
    sun910231 发表于 2018-6-14 18:39
    看下波特率是不是一样~

    看过了,,,都一样的!
  • TA的每日心情
    开心
    2018-9-20 15:06
  • 签到天数: 279 天

    [LV.8]以坛为家I

    发表于 2018-6-15 08:39 | 显示全部楼层
    basicbird 发表于 2018-6-15 07:58
    看过了,,,都一样的!

    改低一些波特率试一下,都改成9600或者38400~~
    打赏一点,努力一点
  • TA的每日心情
    开心
    2018-7-9 17:17
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2018-6-15 09:14 | 显示全部楼层
    sun910231 发表于 2018-6-15 08:39
    改低一些波特率试一下,都改成9600或者38400~~

    我用9600和38400都试过了还是乱码,,,我电脑是通过USB-232接到arduino的0,1脚和GND三角做接收,程序中print打印,电脑接收都是乱码!arduino是独立供电器供电
  • TA的每日心情
    奋斗
    2018-10-15 17:46
  • 签到天数: 204 天

    [LV.7]常住居民III

    发表于 2018-6-15 10:02 | 显示全部楼层
    你把串口助手的整个界面截屏下来给大家看看
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2018-7-9 17:17
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2018-6-15 10:22 | 显示全部楼层
    mostblack 发表于 2018-6-15 10:02
    你把串口助手的整个界面截屏下来给大家看看

    补上图片
    3.png 2.png

  • TA的每日心情
    开心
    2018-11-14 00:00
  • 签到天数: 593 天

    [LV.9]以坛为家II

    发表于 2018-6-15 10:39 | 显示全部楼层
    问题解决了吗?乱码一般是协议不对。
    看你画面,是“串口转网络调试助手”,查一下协议是否选对。
  • TA的每日心情
    开心
    2018-7-9 17:17
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2018-6-15 10:42 | 显示全部楼层
    上海老王 发表于 2018-6-15 10:39
    问题解决了吗?乱码一般是协议不对。
    看你画面,是“串口转网络调试助手”,查一下协议是否选对。 ...

    没有解决,,,左半是串口调试,,,右边的网络没用,,谢谢!
  • TA的每日心情
    开心
    2018-11-14 00:00
  • 签到天数: 593 天

    [LV.9]以坛为家II

    发表于 2018-6-15 10:53 | 显示全部楼层
    https://blog.csdn.net/Grand910616/article/details/52069002
    不知道你用的是不是这个帖子里的硬件,如果是,这个硬件应该是RS232接口的,不能直接连arduino的TTL口的,这方面在研究一下吧
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Uno A4988驱动42步进电机若干问题?求高手进
    Uno A4988驱动42步进电机
    上代码: void setup() { pinMode(8, OUTPUT); //8引脚为使能引脚
    arduino可以控制cw250驱动器吗
    arduino可以控制cw250驱动
    我想用arduino来控制cw250步进电机驱动器,实现步进电机的运转,求大神给解释一下如何
    Arduino的一个小问题。
    Arduino的一个小问题。
    像这种,第一个划线处定义了变量tepTimer ,,后面根本没有赋初值就直接用了,,为什么
    原创 drawbot平面关节机械臂 教程直播贴
    原创 drawbot平面关节机械
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    DS18B20代码编译出错
    DS18B20代码编译出错
    这个是DallsTemperature的示例,但是报了一个错,不知是为何
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表