极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15363|回复: 5

关于ProMini串口接收数据的疑问

[复制链接]
发表于 2015-1-21 00:38:10 | 显示全部楼层 |阅读模式
我在用wifi模块发送数据到promini板子上的串口上的时候,总是数据不对,后来我对数据进行检查

1、确定wifi模块是正常的 wifi模块使用的波特率是115200
2、我发送#A,promini板子是能接到#但是A不能接收到, #我使用int  val =mySerial.read();返回的数据,A应该是 int b = mySerial.peek();  但是现在b显示的是-96,不知道为什么

以下是部分代码
//声明部分SoftwareSerial mySerial(9, 8); // RX, TX  
//设置部分
Serial.begin(115200);
mySerial.begin(115200);

if(mySerial.available()){
//val是能够正常的
    val = mySerial.read();
//b是不正常的,接收到的都是-90多的数字,我发送的是#A #B这类,#能在val这里接收到,但是b始终不可以
   int b = mySerial.peek();
}

请各位大神帮帮忙看看到底是哪里出现问题了
回复

使用道具 举报

发表于 2015-1-21 11:39:11 | 显示全部楼层
software serial 超過 9600 已不穩定了, 115200 對軟串口來說, 太快了.
對軟串口來說, 安全一點由 4800 開始測試比較好.
先用低一點的速度測試程式, 沒問題才慢慢調高速度吧.  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-21 21:51:59 | 显示全部楼层
Super169 发表于 2015-1-21 11:39
software serial 超過 9600 已不穩定了, 115200 對軟串口來說, 太快了.
對軟串口來說, 安全一點由 4800 開 ...

您好:我的wifi模块固定是115200的,所以调不下去啊,但是我发送单个字符的时候使用read()返回单个的字符是可以正常的,但是发送#A,A使用peek读取就不对了
回复 支持 反对

使用道具 举报

发表于 2015-1-21 22:01:27 | 显示全部楼层
149393437 发表于 2015-1-21 21:51
您好:我的wifi模块固定是115200的,所以调不下去啊,但是我发送单个字符的时候使用read()返回单个的字符 ...

pro mini 也有硬串口的, 要試 115200 bps 就先用硬串口試吧.
如果你認為可行, 堅持要用軟串口行 115200 bps 的話, 我也沒法了, 只好說一句: 祝君好運.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-22 01:01:35 | 显示全部楼层
void loop(){
  if(Serial.available()){
   val = mySerial.read();
   int b = mySerial.peek();
   if(val=='#'){
   Serial.println("~~~~~~~~");
   
   }
  
  }
}

这个是我试验的程序,用的是硬串口 依然打印不出来~~
回复 支持 反对

使用道具 举报

发表于 2015-1-22 13:36:02 | 显示全部楼层
149393437 发表于 2015-1-22 01:01
void loop(){
  if(Serial.available()){
   val = mySerial.read();

你用硬串口是什麼意思?

check available 用 Serial, 讀 data 用 mySerial, 輸出用 Serial.

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 10:59 , Processed in 0.064478 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表