|
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 |
|
13-01-2007, 11:34 PM | #1 |
Đệ tử 9 túi
|
Giao tiếp RS232 trên PC bằng Visual Basic.
Chào các bạn.
Mình mở luồng này để hướng dẫn các bạn lập trình giao tiếp RS232 bằng phần mềm Visual Basic 6.0 của Microsoft. Do site tailieuvietnam.net đang có vấn đề về nhỏ nên mình không upload file lên đó được. Tuy nhiên mình vẫn upload chương trình viết bằng VB để các bạn tham khảo. Giao diện của chương trình như sau: Hình 1: Giao diện chương trình đơn giản thứ 1 dùng VB. Chương trình này là một ví dụ nhỏ bạn truyền một loạt byte rùi nhận về (mình nối 2 chân 2 và 3 để test chương trình). Các bạn có thể ứng dụng nó trong mạng truyền thông dùng các giao thức truyền khác nhau. Trong ví dụ của mình truyền đi 11 byte gồm 1 byte start, 8 byte dữ liệu, 1 byte CRC, 1 byte stop. Chúc các bạn thành công. |
17-01-2007, 03:34 PM | #2 |
Nhập môn đệ tử
Tham gia ngày: Jan 2007
Bài gửi: 1
: |
Bạn có thể nói rõ hơn một chút về cách tính CRC trong VB cho tớ được không? Thanks.
|
18-01-2007, 10:48 AM | #3 |
Nhập môn đệ tử
Tham gia ngày: Dec 2006
Bài gửi: 3
: |
Luồng mới hay wa. Tớ muốn hỏi về truyền, nhận theo khung truyền dùng giao thức Modbus? Tức là cần tính mã kiểm lỗi của khung nhận được và so sánh mã kiểm lỗi của khung truyền. Nếu giống thì truyền tiếp, còn ko thì gửi yêu cầu truyền lại. Thanks.
|
20-01-2007, 01:26 AM | #4 | ||
Đệ tử 9 túi
|
Trích:
Rất cảm ơn sự quan tâm của bạn đến chủ đề này. Việc lập trình truyền nhận theo một giao thức nhất định rất có ích cho các dự án về Mạng truyền thông công nghiệp hay tự động hoá toà nhà,... Tuy nhiên, mình chưa lập trình xử lý kiểm soát lỗi CRC trong VB. Mình sẽ xem xét help MSDN rùi trao đổi với các bạn sau. Bạn nào nghiên cứu trong VB rùi xin post lên để cho mọi người cùng tham khảo học tập. Mình xin đưa ra một vài thông tin về mã kiểm lỗi CRC: Đầu tiên các bạn chọn một đa thức phát G được qui ước dưới dạng nhị phân tức các hệ số của nó chỉ có giá tri 1 hoặc 0 tương ứng với các chữ số trong một dãy bit. Ví dụ: Dạng đa thức: G = x^7 + x^6 + x^5 + (0x^4 + 0*x^3) + x^2 + (0*x^1) + 1 Dạng nhị phân: G = 1 1 1 0 0 1 0 1 Nguyên tắc cơ bản của phương pháp mã hoá CRC: Trích:
Dựa trên nguyên tắc này các bạn có thể tạo ra ý tưởng cho việc lập trình của mình đó. Chúc các bạn thành công. |
||
29-01-2007, 03:13 AM | #5 |
Nhập môn đệ tử
Tham gia ngày: Dec 2006
Bài gửi: 3
: |
Crc
Theo như một bài tớ được bít thì mã kiểm lỗi CRC có thể dùng bảng để tra giá trị thay vì phải tính toán. Bảng CRC thì có rất nhiều trên mạng. Đây là một ví dụ về cách dùng bảng CRC trong VB. Bạn nào có ý kiến hay thì đưa lên nhé.Thanks.
|
19-12-2008, 10:33 PM | #6 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 2
: |
Chào anh Bac!
Thật mừng là PIC việt nam có một thành viên như anh.Càng mừng hơn khi anh lại là sinh viên DHBKHN.Em thấy anh tham gia rất nhiều diễn đàn trên mạng phục anh quá.Anh có phương pháp học nào học hiệu quả chỉ giúp cho em với. Nhất là học lập trình thực sự em rất ngại động vào nó ,mặc dù ngành chúng em rất cần đến nó. Thú thực với anh em học về nó rất nhiều nhưng kết quả thì trái ngược với những j mà em dành cho nó. Rất mong nhận được sự chỉ bảo của anh.Chúc anh học tốt ,Cảm ơn anh |
13-04-2011, 12:08 AM | #7 |
Đệ tử 6 túi
|
anh Bắc cho em hỏi thời gian để pic truyền xong 1 byte dữ liệu là bao nhiêu..nếu tốc độ baud=9600 và công thức tính như thế nào ạ...Vì em đang làm truyền thông qua RS-485 nên phải tính kỹ thời gian này để đổi hướng MAX-485..nếu không thì đang truyền mà mình đổi hướng sang nhận thì sẽ xảy ra tình trạng mất data.
|
20-04-2007, 10:03 PM | #8 |
Nhập môn đệ tử
Tham gia ngày: Apr 2007
Bài gửi: 6
: |
Crc
Gởi Anh Hải Bắc!
Em Muốn dùng phương pháp kiểm tra lỗi CRC, Em có hiểu phương pháp này nhưng thực sự không biết cách chọn đa thức sinh, Anh có thể chỉ không? em muốn dùng 1 byte cho CRC |
21-04-2007, 12:08 PM | #9 |
Đệ tử 9 túi
|
Chào em.
Đa thức sinh em có thể chọn tùy ý mà em. Quan trọng là 2 bên truyền và nhận phải cùng kiểu mã hóa CRC để việc kiểm lỗi là đúng em ạ. Em dùng CRC 1 byte thì chọn G là đa thức bậc 8. Chúc em thành công. |
14-05-2007, 06:37 PM | #10 |
Nhập môn đệ tử
Tham gia ngày: Apr 2007
Bài gửi: 6
: |
Mấy hôm nay Em thi nên không lên mạng được, Cảm ơn Anh Hải Bắc nhiều!
|
18-05-2007, 01:31 AM | #11 |
Đệ tử 4 túi
Tham gia ngày: Mar 2007
Bài gửi: 62
: |
may dai ca! em dang lam do an dieu khien dco buoc co giao tiep may tinh xai VB, co su phu nao lam rui chi giup em voi! Hix, em dang gap lam. co file up len cho em thi cang tot. Xin da ta!!!!
|
29-05-2007, 08:09 PM | #12 |
Nhập môn đệ tử
Tham gia ngày: Aug 2006
Bài gửi: 9
: |
Cac anh co kinh nghiem lam viec voi ca 2 phan mem VB 6 va Visual C++ roi co the chi cho toi biet giua 2 phan mem co diem gi khac nhau, uu nhuoc diem trong dieu khien? Nen hoc phan mem nao de co the dap ung khi di lam ngoai thuc te? Thanks
|
02-07-2007, 05:26 PM | #13 |
Nhập môn đệ tử
Tham gia ngày: Apr 2007
Bài gửi: 4
: |
1 ứng dụng access cần giúp đỡ 1 đoạn vb giao tiếp rs232
các bạn thân :
cả tháng qua tui theo dõi cái mục này rùi áp dụng vào cái chương trình của tui mà sao giờ này nó vẫn chưa chạy oải wá trời đành phải nhờ các bạn code dùm thui chư mò chắc tới tết nguyên đán wá ... tui viết code vb trong access ...sử dụng mscomm32.ocx đã đăng ký ổn cáp từ thiết bị ngoại vi xuất từ com 25 pins vào máy ở com 9pins các bạn code dùm mình đưa số liệu vào ô "chisocan" trong form "nhap" nhé .. mình thực sự đắp chiếu .com rùi sau đây là cái đoạn code dở hơi của mình : Code:
Option Compare Database Dim inputstring As String Private Sub chiso_Click() MSComm1.Settings = "9600,N,8,1" MSComm1.CommPort = 1 MSComm1.PortOpen = True inputstring = MSComm1.Input MSComm1.Handshaking = 3 Forms!nhap!chisocan = MSComm1.Input MSComm1.PortOpen = False End Sub xin chân thành cám ơn tiger bể đã tài trợ chương trình này hihihihhiiiiii thay đổi nội dung bởi: ngohaibac, 09-07-2007 lúc 09:23 AM. Lý do: code viết chưa đúng qui cách |
02-07-2007, 05:55 PM | #14 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 146
: |
thực sự là một chuyên mục rất thú vị của bác ngohaibac
|
09-07-2007, 09:31 AM | #15 |
Đệ tử 9 túi
|
Chào bạn controlufo.
Chương trình của bạn như thế là hoàn toàn không ổn rùi. Các thông số thiết lập cho MSCOMM thì bạn phải thiết lập ngay từ đầu chứ. Còn dữ liệu nhận từ RS232 bạn nên viết trong hàm ngắt. Chứ tự nhiên bạn inputstring = MSComm1.Input thì dữ liệu ở đâu mà nhận nhỉ . Với lại setting cho đối tượng mscomm đó cũng không đúng. Chương trình đơn giản khác bạn xem tại đây: http://dientuvietnam.net/forums/showthread.php?t=5281 Chúc bạn thành công. |
Tags |
forms!nhap!vao = x |
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Giao tiếp RS232 trên PC | ngohaibac | Giao tiếp cổng COM và LPT | 189 | 08-05-2024 08:10 PM |
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 |
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 |