使用2560读取显示屏数据与显示屏直连电脑数据不一致-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 375|回复: 0

[已解决] 使用2560读取显示屏数据与显示屏直连电脑数据不一致

[复制链接]
发表于 2022-9-20 10:44 | 显示全部楼层 |阅读模式
本帖最后由 风醒吹梦忱 于 2022-9-22 13:42 编辑

想实现的功能:

1.显示屏对Arduino MEGA2560发送指令;
2.Arduino MEGA2560将指令显示到电脑上.

出现的问题:

显示屏发送的数据为16进制:按钮开时发送 '4E' ,关发送'46'.对应字符为'N' 和'F'.

显示屏直连电脑,输出没问题,字符串显示为"N"和"F",十六进制显示为'4E'和'46'.

显示屏发送给Arduino后,Arduino通过如下代码发送至电脑显示,变为','和'.'十六进制显示为'2C'和'2E'.

Arduino代码如下:
  1. const int bufferLength = 10;    // 定义缓存大小为10个字节
  2. char serialBuffer[bufferLength];// 建立字符数组用于缓存

  3. void setup() {
  4.   // 启动串口通讯
  5.   Serial.begin(115200);
  6.   Serial1.begin(115200);
  7.   Serial.println();
  8. }

  9. void loop() {

  10.   if (Serial1.available()) {                  // 当串口接收到信息后
  11.     Serial1.readBytes(serialBuffer, bufferLength);// 将接收到的信息使用readBytes读取
  12.     for (int i = 0; i < bufferLength; i++) { // 然后通过串口监视器输出readBytes
  13.       Serial.print(serialBuffer[i]);          // 函数所读取的信息
  14.     }
  15.   }
  16. }
复制代码

测试结果如下:
1.png

请问这个是什么原因?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-1 01:41 , Processed in 0.170538 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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