极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12466|回复: 7

如何让arduino串口接收到,拼音dakai之后D13的LED亮

[复制链接]
发表于 2014-9-27 19:14:04 | 显示全部楼层 |阅读模式
最近买了一块串口的LD3320,不知道怎么让arduino读取字符,
回复

使用道具 举报

 楼主| 发表于 2014-9-27 19:15:17 | 显示全部楼层
希望好心人,帮一下
回复 支持 反对

使用道具 举报

发表于 2014-9-27 20:03:29 | 显示全部楼层
卖家没有例程么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-27 20:30:48 | 显示全部楼层
没有,您能帮写个程序吗?
回复 支持 反对

使用道具 举报

发表于 2014-9-28 12:50:15 | 显示全部楼层
本帖最后由 i7456 于 2014-9-28 12:52 编辑


  1. // pins for the LEDs:
  2. const int ledPin = 13;
  3. String inStr;
  4. char c;

  5. void setup() {
  6.   // initialize serial:
  7.   Serial.begin(9600);
  8.   // make the pins outputs:
  9.   pinMode(ledPin, OUTPUT);
  10. }

  11. void loop() {
  12.   // if there's any serial available, read it:
  13.   while (Serial.available() > 0) {
  14.     c = Serial.read();
  15.     inStr += c;
  16.   }

  17.   if(inStr.indexOf("dakai")>=0)
  18.   {
  19.      digitalWrite(ledPin, HIGH);
  20.      inStr = "";
  21.   }  
  22.   else if(inStr.indexOf("guanbi")>=0)
  23.   {
  24.      digitalWrite(ledPin, LOW);  
  25.      inStr = "";
  26.   }
  27. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2014-9-29 21:39:45 | 显示全部楼层
看楼上代码,习惯性的加上2毫秒延时,会提高稳定性,ard的串口时序精度太差了

// if there's any serial available, read it:
  while (Serial.available() > 0) {
    c = Serial.read();
    inStr += c;
delay(2);
  }
回复 支持 反对

使用道具 举报

发表于 2014-9-30 15:19:47 | 显示全部楼层
Ansifa 发表于 2014-9-29 21:39
看楼上代码,习惯性的加上2毫秒延时,会提高稳定性,ard的串口时序精度太差了

// if there's any seria ...

这个不是arduino的问题吧?

串口缓冲区的中的内容增加1个字符,Serial.available() 的值增加1
Serial.read()执行一次,Serial.available() 的值减小1
本论坛中有人计算过,9600的波特率下,串口接收一个字符的时间大概是1.3ms,
但Serial.read()的执行速度可要快得多。如果不加延时,串口传输字符较多的情况下,可能会发生字符没有传输完,但Serial.available()为0的情况。导致每次读取的字符串不完整。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-1 16:30:13 | 显示全部楼层
i7456 发表于 2014-9-28 12:50

谢谢了,我回去试试
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 03:28 , Processed in 0.045215 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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