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)
-   -   Cho hỏi về tham số của cổng COM (http://www.picvietnam.com/forum/showthread.php?t=4070)

cndragon 07-05-2009 12:02 AM

Cho hỏi về tham số của cổng COM
 
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.

namqn 07-05-2009 04:32 AM

Trích:

Nguyên văn bởi cndragon (Post 25539)
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.

- Tham số thứ hai là số bit dữ liệu của ký tự, có thể có các giá trị nguyên từ 5 đến 9
- 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,

cndragon 07-05-2009 05:19 PM

Mình chưa hiểu cái tham số cuối: stop bits có giá trị 1 nghĩa là sao?

TANDEM 16-05-2009 02:13 AM

Là khoảng dừng giữa các byte có giá trị là 1 hoặc 2 bit

thienkien 29-05-2009 07:49 PM

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)

minhtrung2002dn 20-06-2009 09:42 PM

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

minhtrung2002dn 22-06-2009 07:29 PM

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

ThaoBinh90 24-06-2009 11:03 AM

thienkien đang hỏi, minhtrung2002dn chen ngang vô duyên => topic này sẽ đi về đâu?


Múi giờ GMT. Hiện tại là 07:55 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