2012-08-17 46 views
8

Tôi đang cố gắng tuyệt vọng để có được một dongle Bluetooth làm việc với Arduino của tôi nhưng tôi không thể gửi một lệnh mà nó cần. Tôi có thể sử dụng nó khi tôi cắm nó vào máy tính của tôi thông qua một chip USB để UART và gửi lệnh (C) từ PuTTY và sau đó nhấn Enter.PuTTY gửi gì khi tôi nhấn phím Enter?

Bluetooth dongle command sheet nói rằng lệnh tôi đang cố gắng gửi nó C<cr> nhưng tôi không thể tìm ra cách gửi ký tự trả về thích hợp từ mã Arduino. Tôi đã thử sử dụng chức năng Serial.println() cũng như thêm ký tự \r vào số Serial.write("C\r") hiện tại của tôi nhưng không phải ai trong số đó đang hoạt động.

Tôi làm cách nào để đạt được điều này? -- cảm ơn bạn.

+1

Kiểm tra cài đặt thiết bị đầu cuối Putty của bạn để xem những gì nó thiết lập để gửi; bạn có thể cấu hình nó để gửi bất kỳ kết thúc dòng nào bạn muốn. – geoffspear

+1

@Wooble "Cấu hình lại PuTTY" ở đâu tôi có thể tìm thấy? –

Trả lời

0

Tôi gần như chắc chắn rằng bạn đang tìm kiếm ký tự dòng mới \n.

0

Hôm qua tôi đã cố gắng với điều này bởi vấn đề khác. Trong cấu hình tiêu chuẩn (trên Windows và Linux) nếu bạn gõ "giúp đỡ" và sau đó nhấn enter trên cổng nối tiếp sẽ xuất hiện chuỗi theo bit (kiểm tra với thiết bị đầu cuối kết nối với bên ngoài thông qua RS232, và phân tích logic):

0x68 (h) 0x65 (e) 0x6c (l) 0x70 (p) 0x0d (CR: Vận chuyển Return U + 000A)

nên có vẻ như PUTTY đặt CR trên ENTER (không có vấn đề nếu Bạn đang trên Linux hoặc Windows)

+1

0x0d không giống với U + 000A, phải không? – thorn

+0

@thorn Có, tôi đã viết 0x0d (LF: Nguồn cấp dữ liệu dòng, U + 000A) để lần cuối cùng là 0x0d hoặc U + 000A :) – Mazeryt

+3

0x0a == U + 000A == LF, 0x0d == U + 000D == CR – thorn

6

Thật thú vị, tôi có thể báo cáo ngược lại trên Win 7: PuTTY cho tôi và dự án nhúng của tôi là gửi ONLY '\ r' trên cổng COM. Tò mò, đọc: khó chịu không thể giải thích, nhưng tôi chỉ đơn giản là tìm kiếm một trong hai ký tự ở đầu kia của kết nối nối tiếp.

Sau đó, nếu bạn bật 'Ngưỡng LF ngầm định trong mọi CR' trong Tùy chọn đầu cuối, nó sẽ gửi cả '\ r \ n'. Mặc định hành vi có vẻ là giống như một Commodore máy: D (http://en.wikipedia.org/wiki/Newline) ... ai biết ...

+0

Chỉ cần chạy vào điều này, cảm ơn đã đề cập đến các thiết lập LF ngầm. –

+1

Tôi cũng gặp phải điều này. Tôi thực sự vui vì tôi đã kiểm tra trước khi gắn nó vào PIC của tôi; như bài của người khác cho thấy, điều này là khá bất ngờ. Phạm vi của tôi cho thấy rõ ràng rằng mặc định của Putty chỉ gửi \ r. Đây không phải là tài liệu. – carveone

+0

@carveone, tôi tìm thấy tài liệu [tại đây] (http://the.earth.li/~sgtatham/putty/0.63/htmldoc/Chapter4.html#config-telnet), xem giây. 4.6.14:
Theo mặc định, PuTTY gửi mã đường dây Telnet mới khi bạn nhấn Return, thay vì ** gửi Control-M như trong hầu hết các giao thức khác. ** – tsul

2

Mở chương trình Arduino, chỉ cần sử dụng Serial.write và cả hai ký tự mã:

Serial.write(13); // CR 
Serial.write(10); // LF 

Và Tránh Serial.print như nó được dự định là con người có thể đọc được, được định dạng như vậy.

tham khảo: writeprint

+0

Tôi hy vọng bạn tìm thấy câu trả lời của mình theo một cách nào đó. =) –

0

Tôi đã thử mã rất đơn giản này (cr = carriage return)

Serial.write(13); 

Và vì caracters "in" tiếp theo sẽ ăn các văn bản còn lại, đó là ok.

2

PuTTY mô phỏng xterm mô phỏng vt100. Để có putty gửi CR/LF khi nhấn enter, gõ ESC [20h trong putty sau khi kết nối với thiết bị nối tiếp. Điều này đặt VT100 LNM đúng.

http://vt100.net/docs/vt100-ug/chapter3.html

Dòng thức ăn/dòng mới New dòng ESC [thức ăn 20h Dòng ESC [20l

Các vấn đề liên quan