PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp cổng COM và LPT (http://www.picvietnam.com/forum/forumdisplay.php?f=44)
-   -   Giao tiếp RS232 trên PC (http://www.picvietnam.com/forum/showthread.php?t=274)

thuanpv 03-03-2006 10:12 AM

Mình có dùng chương trình của bạn ngohaibac de giao tiep cong COM. Khi noi hai chan 2 va 3 của cổng COM để chạy thì ok,, nhưng khi mình đưa một mạch cụ thể (một KIT khá xịn) vào thì việc truyền nhận không chính xác, ví dụ chỉ có thể truyền và nhận đúng với các số 1,3 và hỏng các số còn lại, mình đoán là do sự khác biệt giữa unicode và ASCII, nhưng mình vẫn chưa fix được, các bạn thử cùng mình xem.

hiephv 03-03-2006 11:47 AM

cac ban cho to hoi sao chi thay giao tiep qua cong com ma khong thay co giao tiep qua cong may in
to dang muon lam chuong trinh giao tiep qua cong may in ban nao co chuong trinh post len cho anh em tham khao nhe

rmitoday 03-03-2006 01:30 PM

Các bác có thể tham khảo MFC class cho serial tại http://www.codeproject.com/system/cserialport.asp (em dùng cái này cho nhiều project chạy rất OK) hoặc browse http://www.codeproject.com/system/ để xem các bài viết về lập trình cho serial

ngohaibac 03-03-2006 02:53 PM

Mình sẽ xem lại vấn đề lỗi này. Lỗi này có thể là do nguyên nhân tôi dùng mode truyền là kiểu text.

Thực tế, tôi cũng nghiên cứu chuyển sang mode truyền binary nhưng đang gặp một chút vướng mắc về chuyển đổi kiểu dữ liệu.

Để tôi nghiên cứu các lớp của bọn nước ngoài đó, rồi áp dụng vào cho mình chắc thành công hơn. Và có thể tìm ra đáp án ở các lớp này.

Chúc các bạn thành công.

mechatronic 04-03-2006 12:30 AM

Mình tìm được thư viện io.dll, lập trình trên các cổng cực dễ. Bởi vì mình ko thích dùng mscomm (nói chung là ko thích dùng sp của microsoft), nên dùng cái này, hơn nữa nó đơn giản và dễ hiểu hơn, tương thích winxp hoàn toàn (so với các thư viện khác chỉ có win98 là cùng).
Các bạn có thể vào đây để tham khảo:
http://www.geekhideout.com/iodll.shtml

ntc 05-03-2006 01:04 PM

Không biết mói người có bị giống mình không, nhưng khi test thì thấy như thế này:
Các kí tự khác thì truyền nhận bình thường, riêng kí tự "t" và "T" thì nó chỉ hiện dấu "?".
Các số khác cũng nhận được, nhưng hình như số "1" và số "4" thì cũng chuyển thành dấu "?".
:D :D

hanhluckyly 06-03-2006 05:12 PM

Can on Bac ngohaibac da cho xai thu chuong trinh cua Bac, toi co down ve va xai thu truyen nhan qua cong Com cua Bac cho con PIC6F877 va PIC 18F458 toi thay no co cac van de sau:
- chay xong bi loi o cong Com toi phai khoi dong lai may no moi chay dung lai duoc(toi thu no voi chuong trinh khac viet bang VB bao dam chuong trinh nay chay dung)
- co mot so string va so truyen ve khong dung neu cho PIC truyen ve 3 so (toi cho truyen ve la 111) thi no hien ra la ??1 (bao dam baud toi thiet lap la dung)

ngohaibac 06-03-2006 06:49 PM

hic hic. Lỗi thế này thì khéo phải làm lại cái khác thôi. Thằng MSCOMM không đáng tin gì cả.

Tôi sẽ nghĩ cách khác các bạn ạ. Đợt này đang bận. Các bạn cứ dùng tạm cái chương trình viết bằng VB bên dientuvietnam.net đã.

http://luckytoki.com/haibac/download...SerialPort.rar

Chương trình này bạn nhấn kí tự nào trên bàn phím thì nó sẽ truyền đi. Hơi đơn giản các bạn cải tiến thêm nha.

Chúc các bạn thành công.

hanhluckyly 10-03-2006 07:58 AM

khong co dau Bac cai thang MSCOMM du doi lam do! toi thay co nhieu chuong trinh viet bang ngon ngu khac su dung MSCOMM hieu qua lam that tiec la toi khong the upload len duoc cho Bac tham khao, toi co thu viet bang VC++ nhung no khong chay cung chang biet lam sao nua nay Bac lam duoc den day la tuyet voi lam roi, Bac hay co len rang tim cho sai di chang le VC++ khong the giao tiep bang cong COM duoc sao vo ly qua. Dang cho tin cua Bac:D

ngohaibac 11-03-2006 09:41 PM

Trích:

Nguyên văn bởi hanhluckyly
khong co dau Bac cai thang MSCOMM du doi lam do! toi thay co nhieu chuong trinh viet bang ngon ngu khac su dung MSCOMM hieu qua lam that tiec la toi khong the upload len duoc cho Bac tham khao, toi co thu viet bang VC++ nhung no khong chay cung chang biet lam sao nua nay Bac lam duoc den day la tuyet voi lam roi, Bac hay co len rang tim cho sai di chang le VC++ khong the giao tiep bang cong COM duoc sao vo ly qua. Dang cho tin cua Bac:D

Ngôn ngữ khác dùng MSCOM như VB thì mình viết rồi bạn ạ. Riêng với VC++ thì mình chỉ gặp lỗi đó thôi.

VC++ tất nhiên có thể giao tiếp cổng COM ngon lành mà. Bọn nước ngoài nó viết các lớp riêng để sử dụng. Để rảnh đã tôi sẽ nghiên cứu lại các lớp của bọn nó xem bọn chúng dùng chuyển đổi kiểu dữ liệu thế nào.

Chúc các bạn thành công.

ngohaibac 09-04-2006 05:36 PM

File mẫu của bọn nước ngoài
 
Xin đưa cho các bạn một chương trình của bọn nước ngoài viết cực hay luôn:

Đây là giao diện:
http://i36.photobucket.com/albums/e4.../PVN_00033.gif

File chương trình:
http://luckytoki.com/haibac/download...C/Terminal.zip

Chương trình rất dễ dàng sử dụng. Có cực nhiều chức năng là mục đích mà mình đang muốn viết như vậy.

Các bạn cứ tạm dùng cái này. Chương trình rất là hay.

Chúc các bạn thành công.

mechatronic 21-04-2006 01:44 AM

Thanks. Chương trình terminal rất hay.
Mình đang viết chương trình giao tiếp để điều khiển servo qua COM, chỉ dùng api có sẵn (mở cổng COM như 1 file và giao tiếp như qua 1 file). Khi nào nộp bài xong và bổ sung thêm cho đầy đủ (bởi vì mình rút gọn lại chỉ dùng để điều khiển theo yêu cầu của thầy), mình hy vọnng có thể đưa lên đây cho mọi người góp ý.
Chúc vui. :)

mechatronic 24-04-2006 01:53 AM

To NgoHaiBac: khi mình test chương trình của mình viết bằng api, mình thử nối tắt 2 và 3 lại nhưng nó ko nhận được gì cả. Mình dùng chương trình terminal bạn đưa, nó cũng ko nhận, mình có viết một chương trình khác bằng delphi, dùng TComPort class, nó cũng ko receive được. Cuối cùng, mình gắn 1 cái modem vào, thì nhận tuốt. Thế là thế nào nhỉ.:confused:
Đây là project đầu tiên dính đến giao tiếp qua máy tính của mình, nên có 1 số cái ko hiểu, nhờ anh em chỉ hộ.:D

fight 19-05-2006 01:32 AM

tại sao tôi dùng chương trinh của bác NgoHaiBac thì bị lỗi(thông báo lỗi trên khung cửa sổ windown) hoặc không truyền được nhỉ.Ai biết trả lời giúp

ngohaibac 19-05-2006 11:01 AM

Trích:

Nguyên văn bởi fight
tại sao tôi dùng chương trinh của bác NgoHaiBac thì bị lỗi(thông báo lỗi trên khung cửa sổ windown) hoặc không truyền được nhỉ.Ai biết trả lời giúp

Xin bạn cho biết lỗi cụ thể của chương trình mà mình đã up lên.

Bạn đã kiểm tra các chương trình khác xem có sử dụng cổng COM chưa. Bạn phải set đúng cổng mà bạn dùng bằng cách sử dụng Hardware manage để xem trong PC của mình có những cổng COM nào và bạn dùng giao tiếp với cổng nào.

Bạn chú ý, nếu một chương trình khác đang mở cổng COM để giao tiếp thì bạn không thể dùng chương trình khác với lệnh mở cổng lần nữa. Ví dụ bạn đang mở cổng COM1 để giao tiếp USART thì bạn không thể nạp Bootloader bằng cổng này mà bạn phải đóng cổng này lại bằng cách ấn vào nút Disconnect

Đầu tiên khi muốn giao tiếp USART, bạn chọn cổng, chọn tần số Baud, các bit chắn, lẻ, ... rồi ấn nút Connect để giao tiếp.

Chương trình Terminal bọn nước ngoài viết chạy hơi bị đỉnh. Mình đã sử dụng cái này và thấy k có lỗi gì cả.

chúc bạn thành công.


Múi giờ GMT. Hiện tại là 07:06 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam