มันเป็นความคิดเห็นของไดรเวอร์เหล็กที่แก้ไขได้
sudo apt-get install libwiringpi-dev
มีปัญหาบางอย่างกับ libwiringpi-dev
คุณไม่ต้องการเรียก wirePiSetup(); คุณอาจจะได้
อ๊ะ: ไม่สามารถระบุการแก้ไขบอร์ดจาก /proc/device-tree/system/linux,revision
หรือจาก /proc/cpuinfo
 -> ไม่มีบรรทัด "ฮาร์ดแวร์"
 -> คุณควร google ข้อผิดพลาดเพื่อหาสาเหตุ
ซึ่งเหตุผลก็คือคุณใช้ CPU ที่ไม่ใช่แบบ arm และไฟล์ที่กำลังดูอยู่นั้นไม่ได้จัดรูปแบบตามที่คาดไว้ โชคดีที่ฉันไม่ต้องการสิ่งนั้น ฉันแค่ต้องการใช้ไลบรารีพอร์ตอนุกรมแบบธรรมดา
ฉันยังมีปัญหาในการส่งข้อมูลผ่าน serialPuts() แต่ฉันไม่จำเป็นต้องจับมือกัน .. ฉันเดา
นี่เป็นโครงการเล็ก ๆ ที่อ่าน Arduino uno ด้วยโพเทนชิออมิเตอร์ 2 ตัวและปุ่ม เป้าหมายคือการใช้หม้อเพื่อวาดภาพบนหน้าจอหรือในรูปภาพ...
#รวมถึง <iostream>
#รวม <stdio.h>
#include <unistd.h> //อ่านฟังก์ชัน
#รวม <string.h>
#include <wiringSerial.h> // ไลบรารีพอร์ตอนุกรมอย่างง่าย
ใช้เนมสเปซ std;
// คอมไพล์ด้วย g++ -Wall -o readSerial readSerial.cpp -lwiringPi
int หลัก (int argc, ถ่าน ** argv)
{
    ถ่าน const *SensorPort = "/dev/ttyACM0"; // ที่อยู่อุปกรณ์ซีเรียล
     
    int levelSensor = serialOpen (เซนเซอร์พอร์ต, 9600);
    //serialPuts(เซ็นเซอร์ระดับ, "1"); // ส่งคำสั่งไปยังอุปกรณ์อนุกรม
    ในขณะที่ (1){
        ถ่านบัฟเฟอร์ [100];
        ssize_t ความยาว = อ่าน (เซ็นเซอร์ระดับ, &บัฟเฟอร์, ขนาดของ (บัฟเฟอร์));
        ถ้า (ความยาว == -1){
            cerr << "ข้อผิดพลาดในการอ่านจากพอร์ตอนุกรม" << endl;
            หยุดพัก;
        }
        อื่นถ้า (ความยาว == 0){
            cerr << "ไม่มีข้อมูลเพิ่มเติม" << endl;
            หยุดพัก;
        }อื่น{
            บัฟเฟอร์ [ความยาว] = '\0';
            ศาล << บัฟเฟอร์; // อ่านข้อมูลอนุกรม
        }
    }
    กลับ 0;
}
ข้อมูลที่ส่งผ่าน Arduino นั้นผ่านรหัสนี้:
    /*EtchaSketch
     * 2 พอท, X,Y, เพิ่มขึ้น
     * 
     * เพิ่มปุ่มเพื่อลบ shtuff นี้
     * โปรแกรมนี้สื่อสารบนพอร์ตอนุกรมไปยังโปรแกรมแยกต่างหากที่จัดการการวาดพิกัดที่ได้รับ (ค่าหม้อ)  
    */
    
    int potX = A0;    
    int potY = A1;    
    int sensorValX = 0;  
    เซ็นเซอร์ intValY = 0;  
    int เดล = 1; // ปุ่มบนพิน 1 สำหรับลบเนื้อหาที่วาด 
    int delbutton = 0;
    การตั้งค่าเป็นโมฆะ () {
        Serial.begin(9600);
        โหมดพิน (เดล, อินพุต);
    }
   โมฆะวน () {
      // อ่านค่าจากหม้อ:
      ถ้า (digitalRead (เดล) == สูง ){
          ปุ่มเดล = 1;
          }อื่น{
              ปุ่มเดล = 0;
          }   
      sensorValX = อะนาล็อกอ่าน (potX);
      sensorValY = อะนาล็อกอ่าน (potY);
      Serial.print (sensorValX);
      Serial.print(",");
      Serial.print(sensorValY);
      Serial.print(",");
      Serial.println (ปุ่มเดล);
      ล่าช้า (1,000);
      }
และที่นี่มันทำงานได้ดีพอที่จะเข้าสู่โปรแกรมแยกวิเคราะห์ / วาด
