Esp32尝试串口接收都失败-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 544|回复: 5

[未解决] Esp32尝试串口接收都失败

[复制链接]
发表于 2022-6-7 14:11 | 显示全部楼层 |阅读模式
Arduino代码如下:
int incomedate =0;
void setup()
{
  Serial.begin(115200);
}
void loop()
{
  if (Serial.available() > 0)//串口接收到数据
  {
    incomedate = Serial.read();//获取串口接收到的数据
    if (incomedate ==’A’)
    {
      Serial.println("Good Job!");
    }
  }
  delay(1);
}
结果:串口永远不会打印Good Job。


000.jpg
发表于 2022-6-7 16:50 | 显示全部楼层
多了个空格
 楼主| 发表于 2022-6-8 07:54 | 显示全部楼层

那是一个中文单引号,已经修改成英文单引号了。但还是不行,我修改了程序,让串口收到的字符再打印出来,结果根本就不是我发送的字符,且发送一个字符,esp32会反馈多个字符,用16进制发送数据也一样。
下面是修改后的程序:
char incomedate =0;
void setup()
{
  Serial.begin(115200);
}
void loop()
{
  if (Serial.available() > 0)
  {
    incomedate = Serial.read();//获取串口接收到的数据
    Serial.println(incomedate);
    if (incomedate =='A')
    {
      Serial.println("Good Job!");
    }
  }
  delay(1);
}
发送1,串口返回的是几个数据:
000.jpg
十六进制发送1,反馈的也是几个数据:
001.jpg
并且发送相同的数据,每次反馈的数据不尽相同。
发表于 2022-6-8 15:58 | 显示全部楼层
楼主我正好写过 而且是正常的
utf8 A在16进制里是x41
难道你也要是写群特301的数据包发送嘛?

  if (Serial.available() > 0) {
    IncomingByte = uint8_t(Serial.read());//串口读取输入的字符,转换为字符,并赋值给IncomingByte
    if (IncomingByte == 0x41) {
      Serial.write(Center301Data, 8);
    }
    IncomingByte = 0x00;//重置串口待接收数据
  }
 楼主| 发表于 2022-6-8 17:03 | 显示全部楼层
snyjw 发表于 2022-6-8 15:58
楼主我正好写过 而且是正常的
utf8 A在16进制里是x41
难道你也要是写群特301的数据包发送嘛?

Center301Data定义?要不你贴个完整的代码给我,谢谢。
我觉得我上面的思路应该没有错,只是在哪个环节出错,发送一个字符,居然收到几个字符。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2025-1-1 20:26 , Processed in 0.081733 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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