![]() |
|
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: Apr 2009
Bài gửi: 3
: |
![]() Mình thấy tham số của cổng COM là: 9600,8,N,1;
mình chỉ biết 9600 là tốc độ truyền của cổng COM, vậy 3 tham số còn lại có ý nghĩa gì mong các bạn chỉ dùm. |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
- Tham số thứ ba là kiểu chẵn lẻ (parity), N có nghĩa là không dùng parity (còn có các giá trị khác là Odd, Even, Mark, và Space) - Tham số cuối cùng là số stop bits, có thể có các giá trị 1, 1.5, và 2 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 |
|
![]() |
![]() |
![]() |
#3 |
Nhập môn đệ tử
Tham gia ngày: Apr 2009
Bài gửi: 3
: |
Mình chưa hiểu cái tham số cuối: stop bits có giá trị 1 nghĩa là sao?
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Bài gửi: 40
: |
Là khoảng dừng giữa các byte có giá trị là 1 hoặc 2 bit
|
![]() |
![]() |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 7
: |
mình có câu hỏi mong anh Nam và các bạn giúp đỡ: truyền và nhận qua rs232 , pic 18f4550 , nếu mình khai báo xung clock=10M( bằng thạch anh thực) thì chính xác!
nhưng khi khai ép xung thạch anh lên 40M (hspll,pll4) thì nhận không chính xác( co lẽ là sai baurate) .Mình muốn hỏi là có cần tính lại baurate không?( viduj 9600*4 hay 9600/4 chẳng hạn!!!!???) các bạn giúp mình gấp gấp nhé!!!cảm ơn. â( chương trình gửi có thiết lập cổng Com: baurate=9600) |
![]() |
![]() |
![]() |
#6 |
Nhập môn đệ tử
Tham gia ngày: May 2009
Bài gửi: 5
: |
kính gửi anh ngohaibac
em đang viết chương trình giao tiếp cổng com giửa máy tính và đầu cân DIOMAT S bằng vb. nhưng do ko biết khung truyền như thế nào. Có 1 phần mềm củ của nhà cung cấp nhưng do ko thích nghi với thời điểm hiện tại, phần mềm này chủ yếu nhận dử liệu cân về máy tính. Em đã dùng phương pháp nối hai máy tính với nhau qua cổng com rs232 và dùng phần mềm terminal để text xem phầm mềm củ của nhà cung cấp gửi dử liệu xuống đầu cân như thế nào lúc này em nhận được dử liệu HEX trên terminal như thế này:02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 và vòng lặp cứ tiếp tục như vậy.Em ko hiểu họ dùng ký tự nào để gửi qua đầu cân . Mong anh giúp em cảm ơn |
![]() |
![]() |
![]() |
#7 |
Nhập môn đệ tử
Tham gia ngày: May 2009
Bài gửi: 5
: |
Để truyền dử liệu qua đầu cân DISOMAT S em đã viết code như sau:
Private Sub Form_Load() MSComm1.CommPort = 3 MSComm1.Settings = "9600,n,8,1" MSComm1.RThreshold = 1 MSComm1.InputLen = 500 'MSComm1.Handshaking = False MSComm1.InputMode = comInputModeText MSComm1.RTSEnable = True MSComm1.DTREnable = True MSComm1.PortOpen = True MSComm1.ParityReplace = "" MSComm1.NullDiscard = True End Sub Sub delay(ByVal giay As Double) Dim star As Double star = Timer While (Timer < star + giay / 1000) DoEvents Wend End Sub Private Sub Timer3_Timer() Dim BytesToSend(0 To 17) As Byte ' khai báo m?t m?ng 2 ph?n t? Dim Buffer As Variant ' l?u tr? d? li?u vào m?ng ki?u byte ? trên BytesToSend(0) = &H2 BytesToSend(1) = &H30 BytesToSend(2) = &H31 BytesToSend(3) = &H23 BytesToSend(4) = &H54 BytesToSend(5) = &H47 BytesToSend(6) = &H23 BytesToSend(7) = &H3 BytesToSend(8) = &H11 BytesToSend(9) = &H2 BytesToSend(10) = &H30 BytesToSend(11) = &H31 BytesToSend(12) = &H23 BytesToSend(13) = &H54 BytesToSend(14) = &H47 BytesToSend(15) = &H23 BytesToSend(16) = &H3 BytesToSend(17) = &H11 ' cho vào m?t bi?n Variant Buffer = BytesToSend() 'ghi vào c?ng n?i ti?p MSComm1.Output = Buffer delay 600 End Sub em đã truyền được rồi và dử liệu đầu từ đầu cân cũng đã gửi lại máy tính. nhưng em thấy cách viết code như trên của em chưa tốt lắm mong anh nào có cách hay hơn chỉ giúp. |
![]() |
![]() |
![]() |
#8 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 19
: |
thienkien đang hỏi, minhtrung2002dn chen ngang vô duyên => topic này sẽ đi về đâu?
|
![]() |
![]() |
![]() |
|
|