相关疑难解决方法(0)

C++ Linux (Ubuntu) 正确写入串行(对于 Arduino)

我想知道是否有一种标准的方式与高效的串行设备进行通信。我应该使用标准库吗?如果有,是哪一个?

现在我正在摆弄让 LED 根据数字输入以给定数量点亮。(下面的Arduino代码)。只是练习东西。

看我过于简单和低效的测试:

#include <iostream>
#include <stdio.h>
using namespace std;

int
main()
{
  FILE *file;
  //Opening device file

  int getnum;

  while (true)
    {
      file = fopen("/dev/ttyACM5", "w");
      cout << ">>" << endl;
      cin >> getnum;
      fprintf(file, "%d", getnum); //Writing to the file
      fclose(file);
    }

}
Run Code Online (Sandbox Code Playgroud)

while 循环很可爱,但如果允许在不等待用户的情况下运行,则效率很低。我怀疑多余的fopen fclose使用是愚蠢的。

微控制器将感应设备的状态并向计算机发送信号。计算机将对所有这些值进行“处理”,并将消息发送回以改变 arduino 的行为。除了需要人工键盘输入之外,基本上繁重的思考都被委托给了计算机。

当然,这一切都是为了好玩,但正如您所看到的,我需要“学习 C++ 中串行交互的规则”!非常感谢任何帮助或指导。


Arduino代码:

char incomingByte = 0;   // for incoming serial data
int led = 11;
int bright;
void
setup()
{
  Serial.begin(9600);     // …
Run Code Online (Sandbox Code Playgroud)

c++ linux ubuntu serial-port arduino

5
推荐指数
1
解决办法
8086
查看次数

标签 统计

arduino ×1

c++ ×1

linux ×1

serial-port ×1

ubuntu ×1