|
Tài trợ cho PIC Vietnam |
Matlab-Simulink & Labview & 20-Sim Các công cụ mô phỏng đa ngành... |
|
Ðiều Chỉnh | Xếp Bài |
19-06-2011, 09:59 AM | #8 | |
Đệ tử 1 túi
Tham gia ngày: Jun 2011
Bài gửi: 22
: |
Trích:
nếu bạn không lập trình trong GUI,bạn có thể làm được việc này ,vì hiện tại mình chưa làm được với GUI. bạn định dạng cổng COM như sau: s=serial('COM1');%lựa chọn cổng com tùy vào phần cứng của bạn get(s);%lấy các thông tin về cổng hàm trên sẽ trả về các thuộc tính của đối tượng s,giống như lập trình hướng đối tượng bạn có thể thay đổi thông số sau khi khởi tạo (với các thông số mặc định) s.BaudRate=9600;hoặc set(s,'BaudRate',9600); s.InputBufferSize=1024;%tùy chọn,có thể bỏ qua các bước này s.TimeOut=2;%thời gian phát sinh lỗi nếu quá trình đọc dữ liệu vượt quá thời gian này s.BytesAvailableFcnMode='byte';%chế độ gọi hàm ngắt sẽ là đếm số byte nhận được,mặc định là terminal:gọi hàm ngăt khi gặp ký tự kết thúc s.BytesAvailableFcnCount=10;%định nghĩa số byte nhận được trong bộ đệm thu 10 byte thì gọi chương trình ngắt s.BytesAvailableFcn=@vedothi;%khai bao hàm call back vedothi là một hàm ngắt mà ta sẽ định nghĩa và lưu trong thư mục đang làm việc của matlab,cách định nghĩa hàm này có đôi chút khác biệt cấu trúc hàm này như sau: kích phải trong thư mục đang làm việc và chọn new>function ta sẽ chỉnh sữa lại như sau: Function y = vedothi(obj,event) % có trả về kiểu dữ liệu obj:là đối tượng serial ví dụ một hàm mầu như sau function th( obj,event ) %TH Summary of this function goes here % Detailed explanation goes here figure end cái hàm trên có tên là th và thực hiện một công việc vô cùng đơn giản là tạo một cái cửa sổ figure.và không trả về kiểu dữ liệu gì hết,hehe lưu ý là cái hàm này phải tạo trước khi khai báo hàm callback trong matlab nhé công việc còn lại là fopen(s); một số bạn thắc mắc là việc gửi dữ liệu thì rất nhanh,còn đọc thì chậm,tất nhiên rồi khi bạn khởi tạo cổng com,matlab mặc định thời gian đọc dữ liệu tối đa là 10s,khi bạn gửi dữ liệu xuống cổng,thì cái cổng trong máy tính bạn nó gủi dữ liệu đi cho thiết bị đầu cuối đọc,chứ nó đâu có gửi cho nó đọc đâu,vì vậy đâu có gì trong bộ đệm nhận đâu mà đọc,bạn muốn gửi,rồi nhận lại cái mình đã gửi thì phải nối dây số 2 và dây 3 của cổng com lại thì sẽ làm được việc này,còn nếu bạn đang dùng laptop,thì dùng phần mềm giả lập cổng com để thử nghiêm!! chúc bạn thành công!!! |
|
|
|