我想知道是否有一种标准的方式与高效的串行设备进行通信。我应该使用标准库吗?如果有,是哪一个?
现在我正在摆弄让 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)