PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 08-01-2007, 10:08 PM   #1
motconmeo
Nhập môn đệ tử
 
Tham gia ngày: Jan 2007
Bài gửi: 3
:
Anh Bắc ơi, em down ct của anh theo lk sau:http://www.picvietnam.com/forum//att...0&d=1136379519
Sau khi F5 thì nó xuất hiện lỗi :
--------------------Configuration: RS232TUTDlg - Win32 Debug--------------------
Linking...
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall CMSComm::GetRuntimeClass(void)const " (?GetRuntimeClass@CMSComm@@UBEPAUCRuntimeClass@@XZ )
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetOutBufferSize(short)" (?SetOutBufferSize@CMSComm@@QAEXF@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetInputMode(long)" (?SetInputMode@CMSComm@@QAEXJ@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetInBufferSize(short)" (?SetInBufferSize@CMSComm@@QAEXF@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetInputLen(short)" (?SetInputLen@CMSComm@@QAEXF@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetRThreshold(short)" (?SetRThreshold@CMSComm@@QAEXF@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetSettings(char const *)" (?SetSettings@CMSComm@@QAEXPBD@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetHandshaking(long)" (?SetHandshaking@CMSComm@@QAEXJ@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetCommPort(short)" (?SetCommPort@CMSComm@@QAEXF@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetPortOpen(int)" (?SetPortOpen@CMSComm@@QAEXH@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: int __thiscall CMSComm::GetPortOpen(void)" (?GetPortOpen@CMSComm@@QAEHXZ)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMSComm::SetOutput(struct tagVARIANT const &)" (?SetOutput@CMSComm@@QAEXABUtagVARIANT@@@Z)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: struct tagVARIANT __thiscall CMSComm::GetInput(void)" (?GetInput@CMSComm@@QAE?AUtagVARIANT@@XZ)
RS232TUTDlg.obj : error LNK2001: unresolved external symbol "public: short __thiscall CMSComm::GetCommEvent(void)" (?GetCommEvent@CMSComm@@QAEFXZ)
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/RS232TUTDlg.exe : fatal error LNK1120: 17 unresolved externals
Error executing link.exe.

RS232TUTDlg.exe - 18 error(s), 0 warning(s)
Chắc do VC nhà em có vấn đề rồi , anh có thể dịch ra file .exe rồi post lại đc không ạ? Thanks anh nhiều
motconmeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-01-2007, 09:45 PM   #2
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Chào em.

Vậy là Visual C++ của em có vấn đề rùi đó. Đĩa VC++ trên thị trường hiện nay hình như có 2 loại thì phải. Một loại cài vào thì khi dịch có lỗi ngay.

Em hãy viết một chương trình đơn giản rùi dịch xem nhé. Nếu mà không dịch được thì em mua đĩa VC hoặc mượn đĩa khác nhé em. Anh gửi kèm file .exe cho em rùi đó. File RS232TUT.zip đó (vì diễn đàn k cho up file .exe).

Chúc em thành công.
Hình Kèm Theo
File Type: gif PVN_0109.gif (6.8 KB, 44 lần tải)
File Kèm Theo
File Type: zip utf-8''TUT01.02.PVN.NOHB.030206.zip (39.1 KB, 757 lần tải)
File Type: zip RS232TUT.zip (120.2 KB, 1359 lần tải)
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2007, 09:43 AM   #3
hp_dk1
Nhập môn đệ tử
 
hp_dk1's Avatar
 
Tham gia ngày: Dec 2006
Bài gửi: 3
:
Talking

Tôi thấy luồng này rất hay và đã theo dõi từ khi luồng này mới bắt đầu. Tuy nhiên tôi thấy thế này, vì diễn đàn của mình phần nhiều là dân điều điện tử nên làm thiên về điện tử hơn, phần lập trình tạo giao diện tuy quan trọng nhưng theo tôi thì lập trình bằng VB khá đơn giản mà hiệu quả cũng không quá kém. Nếu tôi không nhầm thì bạn NHB đã có bài viết về lập trình truyền thông dùng VB rồi ở bên dientuvietnam rồi thì phải nhưng tôi cũng mạnh dạn đề nghị bạn mở một luồng giao tiếp RS232 dùng VB ở đây vì theo ý kiến chủ quan của tôi thôi: VB tương đối đơn giản và dễ dùng, hiệu quả cũng khá cao nếu khai thác tốt cũng rất mạnh và hợp với dân điện tử, người học sẽ nhanh chóng hơn, còn bạn nào đã học C++ thì cứ tiếp tục trao đổi; chắc là bạn NHB sẽ không mất quá nhiều thời gian cho luồng VB đâu.

Tôi thấy một chương trình bạn NHB viết bằng C++ chỉ có một vài chức năng nhỏ với giao diện đơn giản ( tôi nhìn tổng quan thôi chứ không có ý gì đâu nhé, tôi không biết VC++ ) mà cũng mất khá nhiều công phu, trao đổi, cả lỗi nữa còn một chương trình tương tự viết bằng VB thì đơn giản hơn nhiều bạn chỉ cần gọi một vài hàm và chương trình là OK. Tôi biết là chương trình nhỏ viết bằng VB thì không có vấn đề gì lắm nhưng trong quá trình làm thì cũng nảy sinh những vướng mắc cần phải giải đáp. Mới lại tôi cũng muốn làm PIC lập trình VB thì có thể trao đổi luôn ở đây chứ không cần cứ chạy qua chạy lại các diễn đàn.

Tôi cứ đề nghị bạn NHB như vậy nếu bạn có thời gian thì có thể xem xét ý kiến đề xuất của tôi còn nếu không thì bạn cứ coi như bài viết của tôi là một sự động viên khích lệ bạn thôi. Nếu bạn mở luồng mới dạy làm bằng VB thì cũng là điều may mắn cho các thành viên LT bằng VB như tôi chẳng hạn. Nếu bạn nào lo ngại VB chưa đủ mạnh thì sài VB NET hoặc C# lúc đó có gì thắc mắc cứ post lên, tôi biết thì sẽ giúp đỡ và ngược lại không biết thì tôi hỏi thôi. Thân ái chào và cảm ơn bác Ngô Hải Bắc!
hp_dk1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2007, 12:44 PM   #4
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Cảm ơn bạn đã góp ý với mình.

Mình chọn viết bằng Visual C++ đơn giản vì nó dùng lập trình cấp thấp rất là tốt. Chúng ta hoàn toàn có thể can thiệp vào các phân cứng bên dưới của PC. Điều này rất là có ích. Ngoài ra, các website và những người làm về C rất là nhiều. Nhiều người đạt đến mức công phu rùi.

C xuất hiện trước khi có Visual Basic do đó nên các đồ án, nghiên cứu từ ngày xưa đều dựa trên chuẩn C. Khi mình dùng C thì chắc chắn là kế thừa được các project này.

Viết bằng Visual Basic thì không có gì khó khăn bằng VC++. Để mình suy nghĩ đã nhé.

Mình đã mở thêm thread lập trình giao tiếp bằng Matlab và đã thành công, đã có bạn test rùi, và cho ý kiến ở luồng:
http://www.picvietnam.com/forum//showthread.php?t=752

Còn trong thời gian tới mình sẽ hướng dẫn viết giao tiếp bằng Labview - một công cụ khá mạnh. Các bạn có thể khám phá Labview qua luồng:
http://www.picvietnam.com/forum//showthread.php?t=851

Chúc mọi người thành công.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2007, 09:39 PM   #5
motconmeo
Nhập môn đệ tử
 
Tham gia ngày: Jan 2007
Bài gửi: 3
:
Anh Bắc ơi, đúng là VC nhà em có vấn đề
Sau khi chỉnh sửa lại thì chạy ngon lành rồi anh ạ . Cám ơn anh nhiều
motconmeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-10-2009, 11:46 AM   #6
thanhhuyen87
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 1
:
Trích:
Nguyên văn bởi motconmeo View Post
Anh Bắc ơi, đúng là VC nhà em có vấn đề
Sau khi chỉnh sửa lại thì chạy ngon lành rồi anh ạ . Cám ơn anh nhiều
bạn ơi! bạn sửa kiểu gì vậy. máy của mình cũng bị lỗi như thế. chạy các bài vc++ khác thì ngon ơ. riêng bài này lại bị lỗi như thế
thanhhuyen87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-02-2007, 02:04 AM   #7
fight
Nhập môn đệ tử
 
Tham gia ngày: Jun 2005
Bài gửi: 4
:
Tôi dùng code của Ramon de Klein( viết riêng cho lớp CSerial) khi chạy chương thử chương trình Hello world thì bị lỗi(lỗi là Unable to open COM-port(error code 5)). Có bác giúp tôi được không (link download code này là http://www.codeproject.com/system/Serial.asp)
fight vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-02-2007, 09:48 PM   #8
fight
Nhập môn đệ tử
 
Tham gia ngày: Jun 2005
Bài gửi: 4
:
Sao không có bác nào trả lời hết vậy.Ai đã thử dùng code này của Ramon de Klein( viết riêng cho lớp CSerial) chưa
fight vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-02-2007, 02:03 AM   #9
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Chào bạn. Xin lỗi vì sự trả lởi chậm trễ. Mình mới về quê nghỉ tết bi giờ mới lên.

Mình có xem chương trình này rùi. Chương trình viết trên nền Win32 (dùng các hàm API - lập trình Windows) chứ không phải MFC.

Mình chạy thấy bình thường, tuy nhiên file demo là một ứng dụng đơn giản để test thử khi truyền đi một kí tự đặc biệt rùi nhận về ngay. Do đó nó dùng để test khi cổng RS232 được nối tắt.

Lập trỉnh Win32 tức là lập trình theo đáp ứng các thông điệp, bạn đọc kĩ chương trình sẽ có hàm API waitcomevent hàm này sẽ chờ để xảy ra sự kiện nào đó ở cổng RS232 nên khi không có dữ liệu về hay có lỗi gì thì máy treo ngay.PC dùng toàn bộ 100%, bó tay.

Mình đã thử cho trễ khoảng 1s vào hàm phục vụ thông điệp thì chạy ổn nhưng có điều là khi truyền tốc độ cao sẽ mất dữ liệu.

Chúc các bạn thành công.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-03-2007, 05:22 PM   #10
kiethnt
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 7
:
Có bác nào biết kết nối cổng COM RS232 qua 3964R Siemens protocol không làm ơn chỉ dùm mình nhá. Bởi vì hiên nay minh đang làm đề tài kết nối PC với PLC Siemens dùng protocol 3964R. Mình có source code viết bằng Bỏland C++3.1 nhưng không thể sử dụng được vi nó chỉ chạy tren Win 98. Các bạn tham khảo toaàn bộ source minh upload rồi giúp minh nhá. Cám ơn trước nha.
kiethnt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-03-2007, 05:59 PM   #11
kiethnt
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 7
:
Serial RS23 với 3964R Siemen protocol

Bạn nào biết chương trình gửi data từ PC đến controller Siemens có 3964R protocol làm ơn chỉ dùm. Mình có chưong trình này nhưng viết bằng Borland C++3.1 chỉ chạy trên Win 98 mà đế tài minh phai sử dụng Win XP, mình không biết lam sao để có thể chạy chương trình này trên Win XP. Bạn nào có thể viết chương trình này bằng VC++ chi dùm mình nhá. Minh có gửi kèm theo toaàn bộ source code cua nó đây.
kiethnt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-03-2007, 06:04 PM   #12
kiethnt
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Bài gửi: 7
:
file đính kèm

mình quên upload file đính kèm. Xin lổi nha
File Kèm Theo
File Type: zip ser_sim_en.zip (21.0 KB, 258 lần tải)
kiethnt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-03-2007, 07:17 PM   #13
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn nên tìm hiểu thuật toán hiện thực giao thức trong mã nguồn (không quá khó khăn với mã nguồn C), sau đó tìm hiểu cách thực hiện những công việc liên quan đến cổng RS-232 (serial port) cho Windows NT/2000/XP, vì những hệ điều hành này không cho phép truy xuất trực tiếp phần cứng theo cách mà chương trình mẫu đã sử dụng. Về giao tiếp RS-232 trên Windows thì box này chính là nơi bạn có thể tìm thông tin, ngohaibac đã giới thiệu cho một số ngôn ngữ rồi.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-03-2007, 11:36 PM   #14
vdt
Đệ tử 1 túi
 
Tham gia ngày: Sep 2005
Bài gửi: 15
:
Delphi

Có ai lập trình điều khiển bằng Delphi không? Do lịch sử để lại, thời mình đi học chỉ đựoc dạy Pascal, thế nên sau này cũng vẫn theo con đường cũ mà dùng Delphi.
Mình thấy viết chương trình điều khiển bằng VB thì đơn giản thật, nhưng khi dân kỹ thuật dùng thì vẫn thấy thế nào ấy. Dùng VC thì là Pro nhất, nhưng với mình thì sẽ mất rất nhiều thời gian để học. Thế nên mình phải sử dụng Delphi.
Hiện mình có một số thư viện để viết cho cổng RS232 bằng Delphi, đây cũng là những thư viện free và mình download trên net cả thôi, nhưng mình thấy dùng khá ổn định và dễ dàng. Mình xin đóng góp lên đây để mọi ngừoi tham khảo nhé.
Chúc mọi người vui vẻ
File Kèm Theo
File Type: zip cport-3.10.zip (201.7 KB, 768 lần tải)
vdt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-04-2008, 09:53 AM   #15
hochoi2006
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 1
:
Thumbs up Thank!

Trích:
Nguyên văn bởi vdt View Post
Có ai lập trình điều khiển bằng Delphi không? Do lịch sử để lại, thời mình đi học chỉ đựoc dạy Pascal, thế nên sau này cũng vẫn theo con đường cũ mà dùng Delphi.
Mình thấy viết chương trình điều khiển bằng VB thì đơn giản thật, nhưng khi dân kỹ thuật dùng thì vẫn thấy thế nào ấy. Dùng VC thì là Pro nhất, nhưng với mình thì sẽ mất rất nhiều thời gian để học. Thế nên mình phải sử dụng Delphi.
Hiện mình có một số thư viện để viết cho cổng RS232 bằng Delphi, đây cũng là những thư viện free và mình download trên net cả thôi, nhưng mình thấy dùng khá ổn định và dễ dàng. Mình xin đóng góp lên đây để mọi ngừoi tham khảo nhé.
Chúc mọi người vui vẻ

Thank! Thank! Thank!
hochoi2006 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề 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


Múi giờ GMT. Hiện tại là 08:05 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam