查看: 832|回复: 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-6-27 01:49
  • 签到天数: 704 天

    [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-6-27 01:49
  • 签到天数: 704 天

    [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 | 显示全部楼层
    看了实际的代码,软中断收发是不能同时进行的。
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    做了一个定时喂鱼的装置
    做了一个定时喂鱼的装置
    快放假了,怕鱼饿瘦了做了这么个控制,每天定时投鱼粮。用ESP8266编写,web设定参数,
    【项目】基于Arduino Nano的多功能桌面感应垃圾桶
    【项目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
    arduino +MPU6050控制云台相机匀速转动(接受付费)!
    arduino +MPU6050控制云台
    最近在调试云台(用的有刷直流减速电机挂大相机的那种),发现相机在往下移动时往往速
    光敏电阻检测环境光实验
    光敏电阻检测环境光实验
    本文节选自《Arduino程序设计基础》 一些简单的电子元件就可以做传感器使用,例如我
    基于Esp8266的点阵时钟
    基于Esp8266的点阵时钟
    芯片是ESP8266 12F 配合点阵单元板(64*32,单色),实现自动对时,天气预报,农历,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表