Tôi dường như không thể nhận dữ liệu đến màn hình nối tiếp ArduinoStudio trên Ubuntu 14.04 [đã đóng]


11

Tôi đang sử dụng Bộ khởi động Arduino vì vậy tôi có Uno R3 và xem qua các ví dụ Tôi đang cố đọc dữ liệu nhiệt độ từ bộ điều khiển của mình trong Arduino Studio.

Về bản chất, vấn đề của tôi có thể giảm xuống

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.print("stuff");
}

Mà tôi mong đợi để tiếp tục in "công cụ" trên màn hình nối tiếp.

(Trên thực tế tôi đang chạy này mã chính xác nhưng tất cả nhiệt độ đọc đi vào cảm thấy không liên quan đến vấn đề của tôi, tôi chỉ đề cập đến nó bởi vì tôi có thể quan sát thấy đèn LED mye sáng lên khi nhiệt độ tăng vì vậy tôi biết mã được tải lên và chạy trên Duo).

Tôi không thấy bất kỳ lỗi nào trong bảng điều khiển phòng thu và nếu tôi kết nối bằng cách sử dụng gtktermhoặc screentôi có thể thấy dữ liệu được gửi để vấn đề dường như bị cô lập với chính màn hình nối tiếp AndroidStudio.

Tôi đang chạy Ubuntu 14.04 và tôi đã kết nối qua USB /dev/ttyACM3.

Tôi đã thử chạy

stty -F / dev / ttyACM3 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh

như được đề xuất ở đây và tôi cũng đã thử với baud 115200, chú ý thay đổi giá trị trong setuphàm của tôi .

Tôi cũng đã chạy

chmod a + rw / dev / ttyACM3

Nhưng tôi vẫn không thấy bất kỳ lỗi hoặc đầu ra. Làm thế nào để tôi tiến hành gỡ lỗi vấn đề này?

Chạy ls -l /dev/ttyACM*cho

crw-rw ---- 1 gốc quay số 166, 0 feb. 20 14:22 / dev / ttyACM0

crw-rw ---- 1 gốc quay số 166, 1 feb. 20 14:22 / dev / ttyACM1

crw-rw ---- 1 gốc quay số 166, 2 feb. 20 14:22 / dev / ttyACM2

crw-rw-rw- 1 gốc quay số 166, 3 feb. 20 14:30 / dev / ttyACM3


1
Kiểm tra GtkTerm hoặc PuTTY.
Mikael Patel

@MikaelPatel Cảm ơn, điều đó sẽ giúp tôi cách ly vấn đề ít nhất :)
ivarni

1
Đầu ra của "ls -l / dev / ttyACM *" là gì?
Avamander

2
Hãy thử đặt "công cụ" chuỗi thành dấu ngoặc kép thay vì dấu ngoặc đơn.
Avamander

1
Tôi đang bỏ phiếu để đóng câu hỏi cũ chưa được giải quyết này bởi vì người hỏi báo cáo trong các bình luận rằng "Tôi không sở hữu chính arduino hoặc máy tính mà tôi đang sử dụng nữa" , điều đó có nghĩa là sẽ không thể giải quyết vấn đề này một cách thuyết phục.
Chris Stratton

Câu trả lời:


0

Theo mặc định, trên hệ thống linux không có quy tắc ràng buộc udev cụ thể để đổi tên thiết bị thành một thứ gì đó không chuẩn, trình điều khiển FTDI nên ánh xạ usb sang cổng nối tiếp trên / dev / ttyUSB * và không thành / dev / ttbACM *. Tôi nghi ngờ rằng bạn chỉ đang nhìn sai chỗ. Tôi nghĩ rằng nó mặc định là / dev / ttyUSB * cho bất kỳ usb nào sang dongle nối tiếp:

usb-serial.c:   usb_serial_tty_driver->name = "ttyUSB";

Để đảm bảo rằng bạn đang tìm kiếm trong tập tin thiết bị chính xác, hãy chạy "sudo dmesg -C" để cắm vào Arduino và sau đó chỉ cần 'sudo dmesg "để xem nơi gắn usb vào bộ chuyển đổi nối tiếp. Bạn nên xem thông báo rất giống thế này: bộ chuyển đổi ch341-uart hiện được gắn vào ttyUSB0 trong đó ch341-uart được thay thế bằng những gì arduino của bạn có (rất có thể là FT 232'ish)
louigi600

Điều này có lẽ không được áp dụng. Bài đăng tuyên bố đang sử dụng Uno R3, không có FTDI mà chỉ có triển khai nối tiếp USB tùy chỉnh trong ATmega16u2, sẽ ánh xạ như một thiết bị ttyACM không phải là ttyUSB - điều này chỉ xảy ra trên các bo mạch sử dụng các giải pháp nối tiếp USB khác, như Arduinos cũ và các bản sao và đồng hương.
Chris Stratton

Ok nhưng vẫn làm điều dmesg sẽ cho bạn biết đâu là thiết bị chính xác mà linux đang gán cho arduino .... nó sẽ không hiển thị ch340 hoặc FT * .... nhưng nó sẽ vẫn báo cáo tập tin đặc biệt của nhân vật được gán trong / nhà phát triển
louigi600
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.