![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#11 |
Đệ tử 3 túi
Tham gia ngày: Dec 2006
Bài gửi: 60
: |
Mình viết class đảm nhận việc đọc ghi từ PC tới cổng COM bằng các win32 API : ReadFile, WriteFile.
Và đang gặp một số trục trặc sau: - Do không biết số byte mà thiết bị gửi trả về (response message) là bao nhiêu, tùy theo câu lệnh mình gửi đi đúng hay sai, mà độ dài của response message có thể thay đổi. Cho nên làm sao để đọc hết được buffer trong thời gian ngắn nhất, nghĩa là vừa hết dữ liệu được gửi về thì ngay lập tức quay về chương trình chính để xử lý. - Khi debug, mình để ý thấy mỗi lần đọc thì lệnh ReadFile đọc được 7 byte một và mình cứ phải quay vòng để đọc nhiều lần mới hết được. Đây có phải là do setting cho com port chưa đúng, hay là do thiết bị nó trả về theo kiểu như thế? Thiết bị thì mình cũng chưa nắm hết được vì đó là thiết bị bảo mật, cho nên không có tài liệu để tham khảo tường tận mà chỉ có được input, output. Mục đích là mỗi lần đọc thì lệnh ReadFile sẽ đọc được hết response message, có chiều dài thay đổi trong khoảng từ 6 bytes đến 64 bytes. Không phải đọc nhiều lần mà chỉ cần đọc một lần. Để làm điều này thì cần dùng timeout hay là loop lệnh ReadFile nhiều lần ? Xin cảm ơn. |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Cho hỏi về giao tiếp RS232 của PIC16F877A | enti | Giao tiếp cổng COM và LPT | 31 | 25-03-2016 10:14 PM |
Giao tiếp RS232 trên PC qua Matlab | ngohaibac | Giao tiếp cổng COM và LPT | 47 | 18-11-2015 03:51 PM |
giao tiep RS232 voi C | dangngoc | Giao tiếp cổng COM và LPT | 9 | 26-02-2012 02:25 AM |
cần mua bộ thu GPS có giao tiếp RS232 | kienvq | Tìm mua sản phẩm | 15 | 17-03-2011 11:25 PM |
Help! Dùng C để giao tiếp RS232 | dandiennang | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 6 | 15-03-2009 06:41 PM |