|
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 |
|
04-11-2009, 06:59 PM | #1 |
Đệ tử 3 túi
Tham gia ngày: Jul 2008
Bài gửi: 58
: |
uah!
bạn làm được từ PIC lên máy tính! thì chiều ngượic lại cũng như vậy thôi! cái này tôi làm lâu rồi, hơi thủ công! trên PC bạn truyền theo khung dữ liệu của bạn giả sử data của bạn là: buffer = s2500 bạn tách data ra thành từng byte truyền xuống VDK cụ thể ở đây là 5 byte. Ở VDK khi bạn nhận lần lượt hết 5 byte dữ liệu (buffer). Sau đó bạn kiểm tra byte đầu tiên buffer[0] xem đó là tín hiệu điều khiển gì là start hay stop, hay tín hiệu đảo chiều! thì mới quyết định điều khiển DC. còn lại buffer[1 - 4] là giá trị bạn cần điều khiển, lúc này buffer[1 - 4] là dạng kí tự, bạn convert sang dạng integer để điều khiển! còn việc truyền lên PC thì tương tự! chuc vui! |
06-11-2009, 10:49 PM | #2 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Bài gửi: 27
: |
Mình hiểu ý bạn rồi, thực ra đây là vấn đề cũng hay gặp phải. Đầu tiên là bạn xác định frame truyền. Ví dụ như cách bạn đã làm, mình bổ sung thêm byte cuối:
+ byte mở đầu xác định mã lệnh + 2 byte data (bạn có thể tách ra từ số 16 bit vô tư) + byte kết thúc (vd 255) Theo mình byte kết thúc này là cực kỳ quan trọng, kể cả khi truyền từ vi điều khiển lên hoặc nhận data từ máy tính. Sau khi nhận cả gói data, bạn kiểm tra byte cuối có phải 255 không, sau đó kiểm tra byte đầu xác định mã lệnh và data là 2 byte giữa, bạn nên đưa vào mảng để dễ dàng xử lý. Mình xin lưu ý một điểm mà khi truyền nhận giữa vi điều khiển và máy tính hay gặp là kiểu data giữa bên truyền và bên nhận không giống nhau, bạn nên check kĩ điều này để tránh những sai sót không đáng có. Chúc bạn thành công, |
|
|