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
- Cách 2: để bộ đệm 1 byte bình thường, khi ngắt oncomm nếu đó là byte báo hiệu thì đặt giá trị cho một biến toàn cục nào đó, lần ngắt oncomm sau kiểm tra biến này rồi xử lý, cách này khá dở

, 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.