2012-11-01 50 views
5

kết quả đọc từ cat /dev/ttyACM0 kết quả trong quá trình đóng băng bo mạch. Nó unfreezes khi tôi rút phích cắm nối tiếp usb.kết quả đọc từ/dev/ttyACM0 kết quả trong việc đóng băng bảng beagle (Công cụ nhúng)

Vì vậy, về cơ bản thiết lập của tôi là một bảng beagle được kết nối qua một usb với máy tính xách tay của tôi, giao tiếp với nó qua COM6. Chúng tôi cũng kết nối với web thông qua chia sẻ trên web. Tôi cũng có một usb kết nối với nó từ một bộ điều khiển Arduino Teensy ++. Bộ điều khiển này đang gửi dữ liệu qua cổng nối tiếp usb tới bảng beagle. Điểm của bài tập này là đọc dữ liệu từ serial usb.

Quy trình đọc tôi sử dụng là cat /dev/ttyACM0. Điều này dẫn đến việc in 2 dòng dữ liệu đầu tiên, sau đó toàn bộ bảng beagle bị đóng băng. Khi bạn rút phích cắm ra khỏi thanh thiếu niên ++, nó sẽ in ra 10-20 dòng (giả sử bất kỳ bộ đệm nào chứa). Không chắc chắn lý do tại sao điều này xảy ra.

Có ai giúp được không? Cảm ơn

+0

Ứng dụng có sử dụng một số dòng điều khiển bổ sung như CTS không? Có lẽ đó là những gì beagleboard đang chờ đợi. – Evert

+0

Không chắc chắn. Tôi sẽ kiểm tra điều đó. Nhưng một khi bảng beagle bị nhốt, tôi rút phích cắm USB và nó phun ra những gì trên bộ đệm (về cơ bản mọi thứ đã được gửi kể từ khi bị khóa. Đôi khi tôi gặp lỗi sau khi tôi rút USB ra: " [1757.210482] cdc_acm 1 -1: 1.1: acm_start_wb - usb_submit_urb (viết số lượng lớn) không thành công: -19 " –

+0

Ngoài ra, hãy kiểm tra xem thanh thiếu niên có gửi thành công dữ liệu nối tiếp hay không bằng cách kiểm tra bằng ứng dụng dựa trên cửa sổ chuẩn để đọc dữ liệu nối tiếp, ví dụ: Bên cạnh đó, tôi nghĩ rằng nó đã có một cái gì đó để làm với cách Linux nhúng của bạn là xử lý các thiết bị nối tiếp usb.Không biết những gì được nêu ra mặc dù EDIT: Tôi nghĩ rằng nó có cái gì đó với cách cổng nối tiếp đang được đọc.Tôi nghĩ rằng nó đang chờ đợi cho các ký tự dòng mới (và có thể tối thiểu byte đọc) từ teensy ++.Thiết lập cổng nối tiếp sang chế độ thô với stty: 'stty raw -F/dev/ttyACM0' – Evert

Trả lời

2

Kiểm tra tốc độ bạn đang gửi dữ liệu, tôi đã tìm thấy nếu bạn gửi dữ liệu quá nhanh đến arduino, bạn có thể lấp đầy bộ đệm arduino và dường như khóa máy. Hãy thử thêm độ trễ cho dữ liệu đầu ra, hoặc đảm bảo rằng arduino đang làm trống bộ đệm đủ nhanh.

+0

Cảm ơn. Tôi sẽ thử. –