gpt4 book ai didi

c++ - xcode,带有arduino的c++串口

转载 作者:太空狗 更新时间:2023-10-29 21:41:58 25 4
gpt4 key购买 nike

我正在制作一个非常简单的 c++ 程序,它通过串行端口向 arduino 发送一个角度,然后 arduino 将该角度应用于伺服电机。我知道 Unix 把串口设备看成一个文件,实际上这是 c++ 代码:

#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
int angole;
FILE * arduino;

do
{
arduino = fopen("/dev/tty.usbmodem3a21","w");

cout<<"\n\give me the angle\n\n";
cin>>angole;

fprintf(arduino,"%d",angole);
sleep(1);

}while(angole>=0 && angole<=179);

}

这是 arduino 的:

#include <Servo.h>

Servo servo;
const int pinServo = 2;
int angle;

void setup()
{
Serial.begin(9600);
servo.attach(pinServo);
servo.write(0);

}

void loop()
{
if(Serial.available()>0)
{
angle = Serial.read();
servo.write(angle);
}
}

我还检查了 arduino 应用程序,在工具>串行端口>/div/tty.usbmodem3a21 中,它是正确的端口。

问题是程序停在 arduino = fopen("/dev/tty.usbmodem3a21","w");因为它甚至不写消息“给我角度”。

例如,当我在打开函数中写入错误的端口时,它会写入消息。

最佳答案

确实,“Linux 中的一切都是文件”,但不是字面意思 --> 本质是文件的类型 - 在您的情况下,您将端口视为普通文件(即类似于txt 文件),而您需要将其视为设备 文件,所以没有fopen 但是:

fd = open("/dev/tty.usbmodem3a21", O_RDWR | O_NOCTTY | O_NDELAY);

following很好的引用串口文件接口(interface)还有这个one甚至是面向arduino的

关于c++ - xcode,带有arduino的c++串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com