![]() |
|
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 |
Đệ tử 9 túi
|
Giao tiếp RS232 trên PC qua Matlab
Mình đã viết bài này tại địa chỉ:
http://dientuvietnam.net/forums/show...?t=3312&page=2 Để biết thêm chi tiết về giao tiếp với PC qua cổng RS232 qua Matlab các bạn dùng Help của Matlab và search với từ khóa: serial. Việc giao tiếp này cũng rất dễ dàng thực hiện, không có gì là quá cao siêu cả. Mình đã giao tiếp thành công rùi. Để test nó các bạn hãy đấu tắt 2 chân 2 và 3 (TX và RX) của cổng COM lại. Đầu tiên mình sẽ đưa ra môt chương trình thật là đơn gian, thiết lập ít tham số, còn chi tiết về thiết lập tham số nó thế nào? ý nghĩa ra sao? thì sẽ nói sau, mình cứ làm đơn giản trước rùi phức tạp -> hiểu hết về thiết lập này sau. Bài này mình giới thiệu cách tạo đối tượng, kết nối, viêt hàm callback. Tạo đối tượng: Chúng ta gõ lệnh và kết quả hiện luôn (nhớ là k có dấu ; ở cuối lệnh Code:
>> s = serial('COM1') Serial Port Object : Serial-COM1 Communication Settings Port: COM1 BaudRate: 9600 Terminator: 'LF' Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 Tiếp theo, chúng ta xem các tham số của đối tượng như thế nào bằng lệnh get(s): Code:
>> get(s) ByteOrder = littleEndian BytesAvailable = 0 BytesAvailableFcn = BytesAvailableFcnCount = 48 BytesAvailableFcnMode = terminator BytesToOutput = 0 ErrorFcn = InputBufferSize = 512 Name = Serial-COM1 ObjectVisibility = on OutputBufferSize = 512 OutputEmptyFcn = RecordDetail = compact RecordMode = overwrite RecordName = record.txt RecordStatus = off Status = closed Tag = Timeout = 10 TimerFcn = TimerPeriod = 1 TransferStatus = idle Type = serial UserData = [] ValuesReceived = 0 ValuesSent = 0 SERIAL specific properties: BaudRate = 9600 BreakInterruptFcn = DataBits = 8 DataTerminalReady = on FlowControl = none Parity = none PinStatus = [1x1 struct] PinStatusFcn = Port = COM1 ReadAsyncMode = continuous RequestToSend = on StopBits = 1 Terminator = LF Thiết lập này phải thực hiện trước khi mở cổng để giao tiếp, nên chúng ta sẽ viết hàm callback trước. Bạn viết 1 m-file với tên Serial_Callback.m như sau: Code:
function Serial_Callback(obj,event) ind = fscanf(obj) Chúng ta đưa tham số tên hàm vào cho đối tượng s của ta: Code:
>> s.BytesAvailableFcn = @Serial_Callback; Code:
>>fopen(s); >>fprintf(s,"chao cac ban"); Bạn không giao tiếp nữa thì đóng cổng lại: Code:
>>fclose(s); Chúc các bạn thành công. thay đổi nội dung bởi: ngohaibac, 17-03-2007 lúc 10:37 PM. |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Giao tiếp RS232 trên PC | ngohaibac | Giao tiếp cổng COM và LPT | 188 | 23-01-2023 02:18 AM |
giao tiep qua PCI de doc AD bằng Matlab | hanhluckyly | Matlab-Simulink & Labview & 20-Sim | 22 | 06-06-2011 09:55 PM |
Communicate between PC and PIC via RS232 standard using Matlab (GUI, IO). | ngohaibac | English forum on PICs | 3 | 02-06-2011 06:46 PM |
cần mua bộ thu GPS có giao tiếp RS232 | kienvq | Tìm mua sản phẩm | 15 | 17-03-2011 11:25 PM |
Help! Dùng C để giao tiếp RS232 | dandiennang | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 6 | 15-03-2009 06:41 PM |