Sorry, đánh máy nhầm cái R và S: nó đây này
Private Sub Setup_Com()
On Error Resume Next
MSComm1.CommPort = COMPORT
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
MSComm1.RThreshold = MAX_LEN
MSComm1.PortOpen = True
End Sub
Bác cứ xoáy sâu vào cái đó của em.. hehe..
Vấn đề trễ 1ms trong WIN ko như bạn nói đâu, với VDK thì đơn giản, chứ với VB trên PC thì cực khó. Ko tin bạn thử xem. Windows chứ ko phải MCU. Ý em muốn nói là ko phải là tốc độ của bus hay bộ đệm mà là tốc độ xử lý thời gian thực của PC.
Ko phải em ko đọc bài của bác, mà cái về giao tiếp qua cổng COM này em làm từ năm thứ 3 nên thấy bài hướng dẫn của bác rất có ích với mọi.
Việc đặt:
MSComm1.RThreshold = 1
Nếu truyền tốc độ cao thì PC liên tục nhảy vào hàm phục vụ ngắt, và thậm chí nếu đọc theo ngắt thì có khi ko chỉ một byte mà là >1 byte. Bạn nào thử đọc tốc độ >=115.200 kbps thì biết ngay. Vì khi báo ngắt thì rất có thể trong bộ đệm đã >1 byte rồi:
tmp=MScomm1.input thi nó đọc sạch sành sanh trong bộ đệm nhận chứ ko phải đọc chỉ 1 byte.
Byte start và stop là mình trích nguyên văn của VTCBKa, ý nói là các byte nhận dạng ở đầu và cuối mỗi khung truyền. Bit start và stop thì ai cũng biết, nói làm gì.
Private Sub Setup_Com()
On Error Resume Next
MSComm1.CommPort = COMPORT
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
MSComm1.RThreshold = MAX_LEN
MSComm1.PortOpen = True
End Sub
Bác cứ xoáy sâu vào cái đó của em.. hehe..
Vấn đề trễ 1ms trong WIN ko như bạn nói đâu, với VDK thì đơn giản, chứ với VB trên PC thì cực khó. Ko tin bạn thử xem. Windows chứ ko phải MCU. Ý em muốn nói là ko phải là tốc độ của bus hay bộ đệm mà là tốc độ xử lý thời gian thực của PC.
Ko phải em ko đọc bài của bác, mà cái về giao tiếp qua cổng COM này em làm từ năm thứ 3 nên thấy bài hướng dẫn của bác rất có ích với mọi.
Việc đặt:
MSComm1.RThreshold = 1
Nếu truyền tốc độ cao thì PC liên tục nhảy vào hàm phục vụ ngắt, và thậm chí nếu đọc theo ngắt thì có khi ko chỉ một byte mà là >1 byte. Bạn nào thử đọc tốc độ >=115.200 kbps thì biết ngay. Vì khi báo ngắt thì rất có thể trong bộ đệm đã >1 byte rồi:
tmp=MScomm1.input thi nó đọc sạch sành sanh trong bộ đệm nhận chứ ko phải đọc chỉ 1 byte.
Byte start và stop là mình trích nguyên văn của VTCBKa, ý nói là các byte nhận dạng ở đầu và cuối mỗi khung truyền. Bit start và stop thì ai cũng biết, nói làm gì.
Comment