簡體   English   中英

xcode,帶有arduino的c ++串口

[英]xcode, c++ serial port with arduino

我正在制作一個非常簡單的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”); 因為它甚至沒有寫出“給我角度”的信息。

例如,當我在open函數中寫入錯誤的端口時,它會寫入消息。

實際上,“ Linux中的所有內容都是文件 ”,但不是字面意思 - >本質上是哪種類型的文件 - 在您的情況下,您將端口視為普通的文件(即類似txt文件),而您需要將其視為設備文件,所以沒有fopen但是:

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

下面是關於串口的文件接口一個很好的借鑒和這一個甚至Arduino的導向

我得到了這段代碼的連接:

arduino = open("/dev/tty.usbmodemfa131", O_RDWR | O_NOCTTY | O_NDELAY);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM