查看: 234|回复: 9

arduino的软串口与硬件串口使用时出现随机乱码

[复制链接]

该用户从未签到

发表于 2018-12-25 10:59 | 显示全部楼层 |阅读模式
软串口波特率115200,与蓝牙模块连接。
硬件串口波特率9600,打印输出。
从arduino发送的数据是正确的,蓝牙返回的数据使用USB转TTL检测也是正确的。
但是一旦使用软串口接收数据,再把它打印到屏幕,它就会出现随机的乱码,如下图
哪个大神可以帮忙解决下,谢谢。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10,11);
String comback_info="";
void setup() {
  // put your setup code here, to run once:
mySerial.begin(115200);
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
mySerial.println("AT+NAME");
delay(1000);
while(mySerial.available())
  comback_info +=(char)mySerial.read();
Serial.println(comback_info);
comback_info="";
delay(2000);
}

串口打印.png

该用户从未签到

 楼主| 发表于 2018-12-25 11:02 | 显示全部楼层
以上正确的打印结果是“+NAME=123”
  • TA的每日心情
    开心
    2019-1-18 09:03
  • 签到天数: 585 天

    [LV.9]以坛为家II

    发表于 2018-12-25 11:09 | 显示全部楼层
    把软串口的波特率改到9600
    打赏作者鼓励一下!

    该用户从未签到

     楼主| 发表于 2018-12-25 11:10 | 显示全部楼层
    单片机菜鸟 发表于 2018-12-25 11:09
    把软串口的波特率改到9600

    蓝牙模块的波特率是115200,改这个有关系?

    该用户从未签到

     楼主| 发表于 2018-12-25 11:21 | 显示全部楼层
    单片机菜鸟 发表于 2018-12-25 11:09
    把软串口的波特率改到9600

    确实现象暂时没有了,问下这是为什么不能使用115200呢?
  • TA的每日心情
    开心
    2019-1-18 09:03
  • 签到天数: 585 天

    [LV.9]以坛为家II

    发表于 2018-12-25 11:26 | 显示全部楼层
    123521j 发表于 2018-12-25 11:21
    确实现象暂时没有了,问下这是为什么不能使用115200呢?

    软串口波特率不要高于9600
    打赏作者鼓励一下!

    该用户从未签到

     楼主| 发表于 2018-12-25 11:31 | 显示全部楼层
    单片机菜鸟 发表于 2018-12-25 11:26
    软串口波特率不要高于9600

    嗯。。。谢谢
  • TA的每日心情
    奋斗
    2018-12-6 11:03
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2018-12-25 14:15 | 显示全部楼层

    如果改波特率有效,那么要核实一下蓝牙模块的波特率上限是否支持所选速率。
  • TA的每日心情
    擦汗
    2018-9-19 20:22
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2018-12-25 14:33 | 显示全部楼层
    串口偶尔传输出错是正常
    优化办法:
    1.使用硬串口
    2.降低通信波特率
    3.使用更好更短的连接线
    如果你觉得以上内容帮到了你,你可以打赏支持作者

    该用户从未签到

    发表于 2019-1-11 18:30 | 显示全部楼层
    看了实际的代码,软中断收发是不能同时进行的。
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    游戏机和开发板脑洞一下;这个本来就是开源的。
    游戏机和开发板脑洞一下;
    这个开发板和标准UNO是1;1的;通用。做在一起是因为可以不用游戏机时可以切换回来做开
    新人求助,关于舵机和限位开关。
    新人求助,关于舵机和限位
    新人求助社区各位哥哥姐姐,具体需要用航模遥控器的3段开关控制Arduino nano控制一个3
    基于MWC开源飞控DIY关键总结分享:
    基于MWC开源飞控DIY关键总
    很早就已经很想写这么一个帖,但总是由于各种原因没能落实,但最后还是找了时
    有关函数返回值的问题
    有关函数返回值的问题
    求助大神们,这个程序中有return返回值,但为什么有这个“ warning: return-statement
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表