![]() |
|
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 |
|
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Nov 2005
Bài gửi: 1
: |
Lựa chọn cổng còn trống...
Chào Hải Bắc và mọi người!
Các bài viết của bạn rất hay. Mình cũng đang nghiên cứu về truyền dữ liệu qua cổng COM bằng VB, mọi thứ OK, nhưng mình còn một rắt rối nhỏ, mong Bắc chỉ giúp! Trong các bài viết, có một bài Bắc nói về việc kết nối sẽ bị lỗi nếu cổng đó đang bị sử dụng bởi một ứng dụng khác. Nếu nhận ra cổng nào đang bị chiếm dụng và set qua cổng khác bằng tay thì không có gì đáng nói. nhưng ở đây, mình muốn chương trình tự động lựa chọn cổng còn trống mà thiết lập kết nối với nó. mò mẫm trong các thuộc tính của MSCOMM thì chẳng thấy. mình muốn công việc này thực hiện tự động bằng cách kiểm tra thuộc tính nào đó của MSCOMM (nếu có) trước khi thực hiện .PortOpen = True. Bắc và các bạn biết vấn đề này thì chỉ giúp tớ nhé! Cám ơn nhiều lắm... |
![]() |
![]() |
![]() |
#2 |
Đệ tử 2 túi
|
Muốn đọc dữ liệu từ đầu cân thì không đơn giản đâu. Bởi vì mình đâu có biết được format dữ liệu của đầu cân. Để debug format dữ liệu này bạn cần phải có thiết bị đầu cân thật và dùng Hyper terminal mà debug.
Chúc thành công. |
![]() |
![]() |
![]() |
#3 |
Đệ tử 9 túi
|
Chào bạn.
Vấn đề này mình đã làm good rùi. Mình đã làm với VC++.net hay VC++ 6.0 cũng thế. Để mình xem lại code và upload lên đây cho bạn sau nhé. Code này dùng hàm API chứ không có trong thuộc tính nào của MSCOMM đâu. Bạn có thể qua bên luồng về lập trình bằng VC++.Net Chúc bạn thành công. |
![]() |
![]() |
![]() |
#4 |
Đệ tử 9 túi
|
Chào bạn.
Đây là code để test xem một port có tồn tại hay là không tồn tại hoặc đang bị ứng dụng khác chiếm giữ bằng cách dùng hàm API là CreatFile. Bạn dễ dàng tra đối số của nó trong MSDN.
Visual C++ hoặc Visual C++.Net Code:
bool CRS232Dlg::COMAvailable(int COMNum) { HANDLE hCOM; CString portName; portName.Format(_T("COM%d "),COMNum); hCOM = CreateFile(portName, // Specify port device: default "COM1" GENERIC_READ | GENERIC_WRITE, // Specify mode that open device. 0, // the devide isn't shared. NULL, // the object gets a default security. OPEN_EXISTING, // Specify which action to take on file. FILE_ATTRIBUTE_NORMAL, // default. NULL); // default. if (hCOM == INVALID_HANDLE_VALUE){ return false; } else{ BOOL ret = CloseHandle(hCOM); return true; }; } Code:
'// Return TRUE if the COM exists, FALSE if the COM does not exist Public Function COMAvailable(COMNum As Integer) As Boolean Dim hCOM As Long Dim ret As Long Dim sec As SECURITY_ATTRIBUTES '// try to open the COM port hCOM = CreateFile("\.\COM" & COMNum & "", 0, FILE_SHARE_READ + _ FILE_SHARE_WRITE, sec, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) If hCOM = -1 Then COMAvailable = False Else COMAvailable = True '// close the COM port ret = CloseHandle(hCOM) End If End Function Chúc bạn thành công. |
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Apr 2007
Bài gửi: 20
: |
sao luồng này dừng luôn vậy các bác, em đang theo dõi và học về lập trình giao tiếp qua cổng com, bác nào có chương trình gì hay up lên cho mọi người tham khảo trap đổi nhé
|
![]() |
![]() |
![]() |
#6 |
Nhập môn đệ tử
Tham gia ngày: Dec 2007
Bài gửi: 3
: |
![]() Cho mình hỏi thêm chút:
Nếu như mình sử dụng bắt tay bằng phần mềm (dùng 2 tín hiệu Xon & Xoff) thì chỉ cần thiết lập chế độ này( MSComm1.Handshaking = comXOnXoff) là các thiết bị tự động thực hiện hay có cần điều khiển thêm gì ko? |
![]() |
![]() |
![]() |
#7 |
Nhập môn đệ tử
Tham gia ngày: Dec 2007
Bài gửi: 7
: |
Anh Bac xem lai gium. Chuong trinh Rs232.exe khong chay duoc.
|
![]() |
![]() |
![]() |
#8 |
Nhập môn đệ tử
Tham gia ngày: Mar 2008
Bài gửi: 1
: |
Xin chào ! cho em hỏi cách truyền file qua cổng com như thế nào nhỉ? em đang làm đề tài này ! mấy anh giúp em với ! Dùng bằng VB.
|
![]() |
![]() |
![]() |
#9 |
Đệ tử 1 túi
|
tôi cũng đang làm đồ án vi xử lý liên wan đến giao tiếp PC va VB va vi xử lý.bác nào cho tôi biết nguyên lý để PC nhận dữ liệu từ VXL lên PC rồi lại hiện wa giao dien VB như thế nào?và nếu có mã nguồn thì cho tôi với. VXL tôi dùng PIC
|
![]() |
![]() |
![]() |
#10 |
Nhập môn đệ tử
Tham gia ngày: Jan 2008
Bài gửi: 3
: |
các bác ơi! cho em hỏi một tý...
em đang lập trình giao tiếp giữa pc và pic 16f877a, em muon truyen một chuổi từ máy tính bằng vb6 đến pic thi nên viết code trên VB như thế nào và viết hàm nhận trong ccs như thế nào........ |
![]() |
![]() |
![]() |
#11 |
Nhập môn đệ tử
Tham gia ngày: Mar 2008
Bài gửi: 1
: |
chào bác ngohaibac bác có thể giúp mình 1 số tài liệu về lập trình vb giao tiếp bằng cổng com với plc s7200 và mình dùng phần mềm pc acess để upload từ plc lên máy tính để giám sát mong bạn giúp mình
|
![]() |
![]() |
![]() |
#12 |
Nhập môn đệ tử
Tham gia ngày: Dec 2010
Bài gửi: 1
: |
Mình bị lỗi thế này khi mỡ file của anh hải có bạn nào bit cách hướng dẫn giúp mình thiết lập với. cám ơn nhiều lắm.
![]() |
![]() |
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Sep 2007
Bài gửi: 3
: |
anh Bắc ơi ,giúp em đổi data dạng C ( 0x00,0xAF, 0xFF,...) lưu trong 1 file font ra dạng mã hex tương ứng mà VB6 có thể truyền qua cổng com được ấy (&H00,&HAF,&HFF,...),em muốn load nó để gửi xuống bảng điện tử ! cảm ơn anh trước nha ( cái này em bó tay.com lun )
|
![]() |
![]() |
![]() |
#14 | |
Trưởng lão PIC bang
|
Trích:
Tôi cho là các ngôn ngữ lập trình cấp cao đều có sẵn công cụ để bạn làm các việc trên. Nếu bạn chỉ muốn chuyển dạng 0x00 thành &H00 thì chỉ cần Notepad và lệnh Replace. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#15 |
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 1
: |
![]() pic-------------------pc
__________________
ngày mai mặt trời vẫn mọc... |
![]() |
![]() |
![]() |
Tags |
forms!nhap!vao = x |
|
|
![]() |
||||
Ðề 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 | 193 | 18-02-2025 09:11 AM |
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 |