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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc 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 09-07-2007, 09:13 AM   #1
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 các bạn.

Tài liệu Serial Port Complete ,TUT01 và các file có liên quan mình đều upload tại đây:
http://www.esnips.com/web/UARTBac

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 19-08-2007, 10:07 PM   #2
nofre
Nhập môn đệ tử
 
Tham gia ngày: Jun 2007
Bài gửi: 8
:
thú vị thật đấy .
Đa tạ các đại ca đã chỉ dẫn cụ thể.
nofre vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-09-2007, 06:28 PM   #3
dung424
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 1
:
cảm ơn các bác, em là thành viên mới đang làm đề tài giao tiềp máy tính bằng VB đang trong quá trình tự nghiên cứu nên nhận được tài liệu của các bác em rất hay mong các bác post lến giúp em. cảm ơn các bác
dung424 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2008, 10:37 AM   #4
svn
Đệ tử 1 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 24
:
Theo mình, phần giao tiếp rs232 nếu viết trên máy tính thì có lẽ ko có gì bàn nữa Nếu gửi nhận string thì lại càng khỏe
Nhưng khi giao tiếp cần tốc độ nhanh, và gửi nhiều giá trị trong 1 lần truyền, thì ít ai truyền cả string đi cả. Thông thường là truyền kiểu binary. Khi truyền nhận giá trị binary, mình thấy nên chú ý những cái sau:
- Ở máy tính, nên bỏ chọn phần discard null character (có thể nó có tên khác) - nói chung một số công cụ chúng ta dùng có thể có chức năng bỏ qua các giá trị 0x00 này ko lưu vào buffer nhận.
- Ở VDK, khi ta lười ko nhận từng byte để xử lý mà dùng các hàm nhận cả chuỗi 1 lần rồi tách ra xử lý từng byte thì thường các hàm này trong các trình dịch cho VDK chỉ đọc đến kí tự null (0x00) là ngừng, kết thúc chuỗi đọc.
- Nên set parity cho rs232, để none lỡ có sai gì thì ... (mặc dù chả bao giờ mình thấy nó sai thì phải - chắc ăn cứ set)
- Nếu dùng pic, nên set luôn ERROR để khi có lỗi như tràn buffer khi nhận dc quá nhiều byte gửi đến thì nó tự reset lại, ko thì nó ngừng luôn, khỏi truyền nhận gì sất (mấy con khác mình ko biết :P ).
- Nếu muốn gửi nhận số thực (float, double) mà ko muốn phải gửi cả string 1 đống kí tự đi, có thể tham khảo cách lưu trữ số thực trên máy tính, gửi từng byte của nó đi, khi nhận về thì xử lý để nó lại trở thành số thực (tham khảo wikipedia - float number). Các tut và ex mình chưa thấy cái nào làm thế này, mà chỉ có chuyển số thực thành 1 chuỗi (123,456 => "123,456") rồi gửi cả chuỗi đi
svn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2008, 11:43 AM   #5
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi svn View Post
- Nếu muốn gửi nhận số thực (float, double) mà ko muốn phải gửi cả string 1 đống kí tự đi, có thể tham khảo cách lưu trữ số thực trên máy tính, gửi từng byte của nó đi, khi nhận về thì xử lý để nó lại trở thành số thực (tham khảo wikipedia - float number). Các tut và ex mình chưa thấy cái nào làm thế này, mà chỉ có chuyển số thực thành 1 chuỗi (123,456 => "123,456") rồi gửi cả chuỗi đi
F nhớ đã có bài viết về mantissa rồi mà? Hồi một bạn làm luận văn về điều khiển mờ, F đã có cho bạn đó viết về thuật toán này rồi, các bạn thử tìm lại đâu đó trong phần thuật toán xem.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2008, 06:30 PM   #6
littlephoc
Đệ 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.
littlephoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-04-2008, 11:22 AM   #7
89c2051
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 3
:
may sư huynh cho em hỏi tý nha ; em viết xong chương trình quang báo ròi ,nhưng phần load font em bó tay lun,em có chương trình LCD Font Maker 3.0 nhưng nó chỉ xuất ra bộ font dang C (0x0A,0x00,0xFF,...) hoăc ASM ( 0aH,00h,ffh,...) vậy làm sao load nó mà truyền ra cổng com bay giờ đây !
89c2051 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-04-2008, 12:47 AM   #8
vuhuuthang
Nhập môn đệ tử
 
Tham gia ngày: Nov 2005
Bài gửi: 1
:
Talking

Trích:
Nguyên văn bởi ngohaibac View Post
Chào các bạn tôi xin đưa cho các bạn chương trình mẫu để giao tiếp với RS232 trên PC. Chương trình này tôi viết bằng Visual C++ trong bộ Microsoft Studio 6.0 của Microsoft, các bạn dịch lại ra file .exe để chạy. Phần hướng dẫn chi tiêt tôi sẽ gửi sau khi được kiểm duyệt kĩ lưỡng. Chương trình này còn đơn giản. Sẽ có nhiều phiên bản sau ra đời.

Giao diện chương trình như sau:



Hình 1: Giao diện chương trình

Chương trình có chức năng sau:

- Nhập kí tự hoặc xâu kí tự vào EditBox Transfer, điều chỉnh tham số giao tiếp trên các ComboBox. Nhấn nút Send để gửi dữ liệu ra cổng COM.

- Đồng thời với nó nếu có dữ liệu truyền vê cổng Com thì dữ liệu sẽ được hiển thị lên EditBox Receive. Khi bạn nhấn vào Clear thì sẽ xoá dữ liệu hiển thị trên EditBox này

Chú ý:

Để có thể test luôn chương trình các bạn nối tắt chân 2 và chân 3 của RS232 lại với nhau chính là nối chân RxD và TxD để chúng ta truyền dữ liệu ra RS232 sau đó nhận dữ liệu luôn.



Hình 2: Sơ đồ đấu chân của RS232

Chúc các bạn thành công.
Chúc các bạn thành công
__________________
0988190889
www.bkpro.info
vuhuuthang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-04-2008, 09:32 AM   #9
ltpbkis
Đệ tử 1 túi
 
ltpbkis's Avatar
 
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: BKHN
Bài gửi: 14
:
Send a message via ICQ to ltpbkis
Anh Bắc

Anh Bắc ơi ,em đã làm theo các bước trên mà vẫn không chạy được.Anh gửi cho em code mà anh viết để thực hiện chương trình cho em được không.em không hiểu làm sai ở đâu nữa mà không chạy được.em đang cần lắm ah.Cảm ơn anh!
ltpbkis vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2008, 01:50 PM   #10
leejongfan
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 8
:
Dùng C#

Hôm trước vòng vòng trên net có thấy vài trang web cũng bàn về giao tiếp COM trên PC dùng C#, post lên mọi người xem chơi :

http://www.dreamincode.net/forums/showtopic35775.htm

http://www.codeproject.com/KB/cs/ser...unication.aspx

http://msmvps.com/blogs/coad/archive...300_-.NET.aspx
leejongfan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-09-2008, 10:39 AM   #11
tiendungkct
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 69
:
Trích:
Nguyên văn bởi ltpbkis View Post
Anh Bắc ơi ,em đã làm theo các bước trên mà vẫn không chạy được.Anh gửi cho em code mà anh viết để thực hiện chương trình cho em được không.em không hiểu làm sai ở đâu nữa mà không chạy được.em đang cần lắm ah.Cảm ơn anh!
mình cũng viết 1 ít về nó nhưng chắc chưa hay lắm bạn tham khao nha .có sai ji bạn góp ý nha
File Kèm Theo
File Type: rar THUC HANH.rar (8.9 KB, 298 lần tải)
tiendungkct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-04-2008, 04:33 PM   #12
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 anh em.

Đang tập trung làm đồ án nên hơi lơ là với anh em quá. Xin lỗi nhé. Mình sẽ chú ý chăm sóc các bạn hơn nữa.

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 28-06-2008, 01:57 PM   #13
ngqxuan
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 4
:
Tiện thể mình cũng nhờ các pác lỗi này là lỗi gì vậy ở VS C++,và cách khắc phục (mình ko phải dân IT nên các pác chỉ tường tận một chút,có hình ảnh càng tốt) Cảm ơn các pác nhiều


VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_ISampleGrabberCB
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _TIME_FORMAT_FRAME
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_IMediaSeeking
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_IMediaEvent
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_IMediaControl
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_IMediaFilter
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _CLSID_NullRenderer
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _MEDIASUBTYPE_RGB24
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _MEDIATYPE_Video
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _FORMAT_VideoInfo
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_ISampleGrabber
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _CLSID_SampleGrabber
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_IBaseFilter
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _CLSID_FilterGraph
VideoAnaDoc.obj : error LNK2001: unresolved external symbol _IID_IGraphBuilder
ngqxuan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-06-2008, 07:32 PM   #14
manh.1041399
Nhập môn đệ tử
 
Tham gia ngày: Jan 2008
Bài gửi: 1
:
Chào Ngohaibac!
Tôi là thành viên mới vào nghề nghe các thầy nói về điện tử thấy mê lấm, nhưng khổ nổi phần thực hành tôi còn yếu lắm. Bạn có thể giúp mình tiến bộ đuợc không. Tôi cũng liều thử làm đồ án xe lăng cho ngưòi già: là đề tài tự nghĩ thôi nhưng không biết bắt đầu từ đâu. Mình học cơ điện tử, nếu đuợc giúp đỡ mình xin chân thành cảm ơn cậu rất nhiều
manh.1041399 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-01-2009, 09:39 AM   #15
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
Trích:
Nguyên văn bởi manh.1041399 View Post
Chào Ngohaibac!
Tôi là thành viên mới vào nghề nghe các thầy nói về điện tử thấy mê lấm, nhưng khổ nổi phần thực hành tôi còn yếu lắm. Bạn có thể giúp mình tiến bộ đuợc không. Tôi cũng liều thử làm đồ án xe lăng cho ngưòi già: là đề tài tự nghĩ thôi nhưng không biết bắt đầu từ đâu. Mình học cơ điện tử, nếu đuợc giúp đỡ mình xin chân thành cảm ơn cậu rất nhiều
Chào bạn.

Diễn đàn là nơi trao đổi, có rất nhiều người rất giỏi, mỗi người biết chút, góp nhặt vào sẽ là kiến thức tốt cho mình. Bạn cứ mạnh dạn thảo luận đề tài của bạn trên diễn đàn nhé.

Chú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
Trả lời

Ðiều Chỉnh
Xếp Bà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à 03:24 PM.


Đượ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