求助各位大佬,关于Arduino IDE串口通信问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2115|回复: 2

[已解决] 求助各位大佬,关于Arduino IDE串口通信问题

[复制链接]
发表于 2021-3-1 23:03 | 显示全部楼层 |阅读模式
本帖最后由 whiteraven 于 2021-3-2 15:17 编辑

刚接触Arduino的小白,在做一个串口通信的实验,就是在电脑Arduino IDE软件的串口监视器上输入ascii码形式的报文给Arduino Uno board,然后板子可以返回对应报文的二进制形式显示在串口监视器上。例如我在串口监视器上发送报文“hello",则UNO board返回“[size=14.6994px]01101000 [size=14.6994px]01100101 [size=14.6994px]01101100 [size=14.6994px]01101100 [size=14.6994px]01101111”二进制形式显示在serial monitor上,但是现在我的代码只能实现发送“hello”然后原样返回“hello”,求助各位大佬能帮我看一下代码应该怎么改吗,谢谢啦~

[size=14.6994px]String comdata = "";



[size=14.6994px]void setup()

[size=14.6994px]{

[size=14.6994px]  Serial.begin(9600);      

[size=14.6994px]}



[size=14.6994px]void loop()

[size=14.6994px]{

[size=14.6994px]   while (Serial.available() > 0)  

[size=14.6994px]    {

[size=14.6994px]        comdata += char(Serial.read());

[size=14.6994px]        delay(2);

[size=14.6994px]    }



[size=14.6994px]   if (comdata.length() > 0)

[size=14.6994px]    {

[size=14.6994px]       Serial.print(comdata);

[size=14.6994px]       comdata = "";

[size=14.6994px]    }

[size=14.6994px]}

发表于 2021-3-2 07:18 | 显示全部楼层
本帖最后由 XlinliY.Zhang 于 2021-3-2 07:22 编辑
  1. void setup() {
  2.   Serial.begin(9600);
  3. }

  4. void loop() {
  5.   if (Serial.available())
  6.   {
  7.     char payload = Serial.read();
  8.     for (int i = 7; i >= 0; i--)
  9.       Serial.print(bitRead(payload, i) ? 1 : 0);
  10.     Serial.println();
  11.   }
  12. }
复制代码
串口监视器需勾选无结束符
 楼主| 发表于 2021-3-2 15:15 | 显示全部楼层
XlinliY.Zhang 发表于 2021-3-2 07:18
串口监视器需勾选无结束符

哇谢谢大佬,问题解决了哈哈~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 13:47 , Processed in 0.070758 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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