![]() |
|
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 |
![]() |
#91 | |
Nhập môn đệ tử
Tham gia ngày: Jan 2008
Bài gửi: 1
: |
Trích:
|
|
![]() |
![]() |
![]() |
#92 | |
Nhập môn đệ tử
Tham gia ngày: Jan 2008
Bài gửi: 1
: |
Trích:
ah đây là link http://www.picvietnam.com/forum/showthread.php?t=869 thay đổi nội dung bởi: thanhlam220582, 24-01-2008 lúc 03:51 PM. |
|
![]() |
![]() |
![]() |
#93 |
Đệ 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
![]() ![]() 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ì ... ![]() - 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 ![]() |
![]() |
![]() |
![]() |
#94 | |
PIC Bang chủ
|
Trích:
Chúc vui
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
![]() |
![]() |
![]() |
#95 |
Đệ 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. |
![]() |
![]() |
![]() |
#96 | |
Nhập môn đệ tử
Tham gia ngày: Feb 2008
Bài gửi: 1
: |
Giao tiep COM
Trích:
Mình đang làm luận văn nên rất cần nó lắm. Vả lại KIT nhiệt độ của mình vẫn chưa hoatddoognj được, xin bạn chỉ giáo |
|
![]() |
![]() |
![]() |
#97 |
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 !
|
![]() |
![]() |
![]() |
#98 | |
Nhập môn đệ tử
Tham gia ngày: Apr 2008
Bài gửi: 1
: |
![]() Trích:
Thank! Thank! Thank! |
|
![]() |
![]() |
![]() |
#99 | |
Nhập môn đệ tử
Tham gia ngày: Nov 2005
Bài gửi: 1
: |
![]() Trích:
|
|
![]() |
![]() |
![]() |
#100 |
Đệ tử 9 túi
|
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. |
![]() |
![]() |
![]() |
#101 |
Đệ tử 1 túi
|
![]() Anh Bắc ơi.em đang làm bài tập lớn về VXL.yêu cầu của bài là:
1. nhập nhiệt độ max va min để gửi xuống cho PIC .Nhiệt độ đó là khoảng để PIC ra báo động bằng loa nêu vượt ra khỏi khoảng [max ,min] 2.nhập xong gửi dữ liệu xuống 3.nhận nhiệt độ đo từ LM 335 đo được lên để hiển thị Tất cả nhập, nhận và truyền dữ liệu đều được viết bằng Visual Basic Anh cho em hỏi đoạn chương trình sau em viết để truyền nhiệt độ xuống đã đúng chưa mà sao vẫn không được. ' ham de gui du lieu xuong tu PC' '================================================= =======================' Private Sub Gui_Click() Dim Tmaxs As String 'kieu bien truyen la string' Tmaxs = Tmax 'Bien chua nhiet do max de truyen' Dim Tmins As String Tmins = Tmin 'Bien chua nhiet do min de truyen' If (RS232.PortOpen = True) And (RS232.CTSHolding = False) Then 'neu cong da mo va khong trong wa trinh truyen du lieu thi truyen' RS232.Output = Tmaxs 'truyen Tmax' RS232.Output = Tmaxs 'Truyen Tmin' Else RS232.PortOpen = True 'nguoc lai phai mo cong' RS232.Output = Tmaxs RS232.Output = Tmaxs End If 'ket thuc kiem tra dieu khien va truyen' End Sub và anh cho em cái thuật toán gửi và nhận dữ liệu đi.như để gửi và nhận cần làm cái gì từng bước một kiểm tra cái gì.Truyền và nhận chuỗi ký tự số thì làm như thế nào. |
![]() |
![]() |
![]() |
#102 |
Đệ tử 1 túi
|
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!
|
![]() |
![]() |
![]() |
#103 |
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 |
![]() |
![]() |
![]() |
#104 |
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 |
![]() |
![]() |
![]() |
#105 |
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 |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề 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 |