![]() |
|
|
|
|
#1 | |
|
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 7
: |
Trích:
" Private Sub MSComm1_OnComm() Dim a As Variant If MSComm1.InBufferCount Then a = MSComm1.Input End If Text2.Text = a End Sub " Nhưng bây giờ bên VDK truyền byte bao hieu + byte gia tri thi ben VB em tách làm sao được chỉ lấy được byte gia tri thôi? |
|
|
|
|
|
|
#2 |
|
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Theo mình có 2 cách:
- Cách 1: Đặt bộ đệm Mscomm1.RThreshold = 2, có nghĩa là sau khi nhận được 2byte mới xảy ra ngắt oncomm, khi đó ta đọc 2 byte này, kiểm tra byte đầu, và giá trị là byte sau. Có thể đọc 2 byte bằng cách sau: Code:
Privat Sub MSComm1_onComm()
Dim buffer 'kiểu varriant
Dim Arr() as byte ' mảng động
If MSComm1.CommEvent = comEvReiceive then
buffer=MSComm1.Input
Arr = buffer
If (Arr(0)="@")then
....................
End Sub
, nhưng trong tình huống nào đó mà cách 1 ko thể sử dụng (ví dụ như vi xử lý truyền lên nhiều thứ chứ ko phải chỉ 2byte) thì sẽ rất hữu ích.thay đổi nội dung bởi: npbaoduy, 18-12-2009 lúc 01:52 PM. |
|
|
|
![]() |
|
|