【问题标题】:Arduino char *name from stringArduino char *name 来自字符串
【发布时间】:2013-07-19 14:34:12
【问题描述】:

好的,我正在制作一个小歌曲播放器,它使用 RTTTL "char*"s 播放

char *song = "smb:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,8p,8g,8p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,16p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16c7,16p,16c7,16c7,p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16d#6,8p,16d6,8p,16c6";

这首歌例如播放马里奥的主题曲。我要做的是获取我收到的字符串,然后将其存储在像这样的 char* 中,这样它就可以播放了。我将如何进行这种转换?

【问题讨论】:

  • 你是什么意思,to get a string that i receive?你是怎么收到的?
  • 我通过串口接收String serial_str() { String content =""; char character; while(Serial.available()) { character = Serial.read(); content.concat(character); delay(10); } if (content != "") { return(content); } }
  • 那(你的评论)不是 C 代码……那是什么语言?
  • 它叫 Wiring,在 Arduino IDE 上使用了改编版本,虽然 arduino.cc/en/Reference/HomePage 与 C 有很大的相似之处
  • 为什么不直接使用String.toCharArray()

标签: c string char arduino


【解决方案1】:

在很长一段时间后查看我的代码时发生这种情况,我发现问题出在我的解析函数中,该解析函数应用于从串行接收的数据。有来自串行通信的垃圾,我没有过滤,因此炸毁了东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多