PHẦN I: CƠ SỞ LÝ THUYẾT
Chương 4: Ngôn ngữ xây dựng chương trình
II. Các hàm giao tiếp nối tiếp
3. Các hàm kết nối
Kết nối đối tượng port với thiết bị.
Cú pháp fopen(obj) Đối số
obj: A serial port object or an array of serial port objects.
Mô tả
fopen(obj): kết nối obj với thiết bị.
fclose (serial)
Ngưng kết nối đối tượng port với thiết bị.
Cú pháp:
fclose(obj) Đối số:
obj :Một đối tượng hay mảng đối tượng port nối tiếp.
Mô tả
fclose(obj): ngưng kết nối obj với thiết bị.
K IL O B O O K S .C O M
4. Các hàm đọc và ghi dữ liệu fprintf (serial)
Ghi dữ liệu dạng text lên thiết bị.
Cú pháp:
fprintf(obj,'cmd')
fprintf(obj,'format','cmd') fprintf(obj,'cmd','mode')
fprintf(obj,'format','cmd','mode') Đối số:
obj : một đối tượng port nối tiếp.
'cmd' : chuỗi kí tự được ghi lên thiết bị.
'format' : đặc tả chuyển đổi ngôn ngữ C.
'mode' : chỉ định dữ liệu được ghi là đồng bộ hoặc không.
Mô tả
fprintf(obj,'cmd'): ghi chuỗi kí tự cmd lên thiết bị được kết nối với đối tượng obj. Kiểu mặc định là %s\n. Thao tác ghi là đồng bộ và ngăn chặn dòng lệnh cho đến khi việc thực thi được hoàn thành.
fprintf(obj,'format','cmd'): ghi một chuỗi với định dạng được cho bởi format. format là một đặc tả chuyển đổi của ngôn ngữ C. Đặc tả này bao gồm một kí tự % và các kí tự chuyển đổi như d, i, o, u, x, X, f, e, E, g, G, c, and s. fprintf(obj,'cmd','mode'): ghi chuỗi kí tự với việc truy xuất dòng lệnh được chỉ định bởi mode. Nếu mode là sync, cmd được ghi đồng bộ và dòng lệnh được trì hoãn. Nếu mod là async, cmd được ghi không đồng bộ, cmd không bị trì hoãn. Nếu mode không được chỉ định , thao tác ghi được mặc định là đồng bộ.
K IL O B O O K S .C O M
fprintf(obj,'format','cmd','mode'): ghi chuỗi kí tự với định dạng format. Nếu mode là sync, cmd được viết đồng bộ. Nếu mode là async, cmd được viết không đồng bộ.
fwrite (serial)
Ghi dữ liệu dạng nhị phân lên thiết bị.
Cú pháp fwrite(obj,A)
fwrite(obj,A,'precision') fwrite(obj,A,'mode')
fwrite(obj,A,'precision','mode') Đối số
obj : một đối tượng port nối tiếp
A : dữ liệu được ghi lên thiết bị.
'precision' : số bit được viết cho mỗi giá trị, và cách thể hiện của các bit như là các giá trị kiểu kí tự, kiểu nguyên hay kiểu chấm động.
‘mode' : chỉ định dữ liệu được ghi đồng bộ hay không.
Mô tả
fwrite(obj,A): ghi dữ liệu dạng nhị phân A lên thiết bị được kết nối với đối tượng obj.
fwrite(obj,A,'precision'): ghi dữ liệu dạng nhị phân với đơn vị được chỉ định bởi precision. Nếu precision không được chỉ định, thì kiểu uchar (kiểu kí tự 8bit không dấu) được mặc định.
fwrite(obj,A,'mode'): ghi dữ liệu nhị phân với việc truy xuất dòng lệnh được chỉ định bởi mode. Nếu mode là sync, A được ghi đồng bộ và dòng lệnh bị trì hoãn. Nếu mode là async, A được ghi không đồng
K IL O B O O K S .C O M
bộ và dòng lệnh không bị trì hoãn. Nếu mode không được chỉ định, thao tác ghi là đồng bộ.
fwrite(obj,A,'precision','mode'): ghi dữ liệu nhị phân với đơn vị được chỉ định bởi precision và việc truy xuất dòng lệnh được chỉ định bởi mode.
fgetl (serial)
Đọc một dòng của văn bản từ thiết bị và loại bỏ các kí tự xuống dòng Cú pháp
tline = fgetl(obj)
[tline,count] = fgetl(obj) [tline,count,msg] = fgetl(obj) Đối số
obj : đối tượng port nối tiếp.
tline : văn bản được đọc từ thiết bị, loại trừ các kí tự xuống dòng
count : số giá trị được đọc, kể cả các kí tự xuống dòng.
msg : một thông báo cho biết thao tác đọc không thành công.
Mô tả
tline = fgetl(obj): đọc một dòng của văn bản từ thiết bị được kết nối với obj, và trả về dữ liệu cho tline. Dữ liệu được trả về không bao gồm các kí tự xuống dòng. [tline,count] = fgetl(obj): trả về số giá trị được đọc vào biến count.
[tline,count,msg] = fgetl(obj): trả về một cảnh báo cho biến msg nếu thao tác đọc không thành công.
K IL O B O O K S .C O M
fgets (serial)
Đọc một dòng của văn bản từ thiết bị kể cả các kí tự xuống dòng.
Cú pháp
tline = fgets(obj)
[tline,count] = fgets(obj) [tline,count,msg] = fgets(obj) Đối số:
obj : đối tượng port nối tiếp.
tline : văn bản đọc từ thiết bị, bao gồm cả các kí tự xuống dòng.
count : số các byte được đọc, bao gồm cả các kí tự xuống dòng.
msg : thông báo thao tác đọc không thành công.
Mô tả:
tline = fgets(obj): đọc một dòng của văn bản từ thiết bị được kết nối với obj, và trả về dữ liệu vào biến tline. Giá trị trả về bao gồm cả kí tự chuyển dòng.
[tline,count] =fgets(obj): trả lại số byte được đọc vào biến count [tline,count,msg] = fgets(obj): trả về một cảnh báo cho biến msg nếu thao tác đọc không thành công.
fread (serial)
Đọc dữ liệu nhị phân từ thiết bị.
Cú pháp
A = fread(obj, size)
A = fread(obj, size, 'precision')
K IL O B O O K S .C O M
[A,count] = fread(...) [A,count,msg] = fread(...) Đối số:
obj : một đối tượng cồng nối tiếp.
size : số byte để đọc.
'precision' : số bit đọc cho mỗi giá trị, và thể hiện của các bit như giá trị kiểu kí tự, kiểu nguyên, và kiểu chấm động.
A : dữ liệu nhị phân trả về từ thiết bị count : số giá trị được đọc.
msg : thông báo khi thao tác đọc không thành công.
Mô tả
A = fread(obj,size) : đọc dữ liệu nhị phân từ thiết bị được kết nối với obj, và trả về dữ liệu vào biến A. Số giá trị cực đại để đọc được chỉ định bởi đối số size. Các lựa chọn hợp lệ cho size là:
n : đọc tối đa n giá trị vào một vector cột.
[m,n] : đọc tối đa m x n giá trị vào ma trận m x n theo thứ tự cột.
size không thể là inf, do đó sẽ trả về một lỗi nếu số chỉ định của các giá trị không thể chứa trong bộ đệm đọc. Có thể qui ước size, theo byte, của bộ đệm đọc với thuộc tính InputBufferSize. Một giá trị được xác định như là một byte được nhân với đối số precision.
A = fread(obj,size,'precision'): đọc dữ liệu nhị phân với đơn vị được chỉ định bởi precision. Theo mặc định, giá trị số được trả về trong các mảng đơn vị double.
[A,count] = fread(...): trả về số giá trị vào biến count.
[A,count,msg] = fread(...): trả về cảnh báo vào biến msg nếu thao tác đọc không thành công.
K IL O B O O K S .C O M
fscanf (serial)
Đọc dữ liệu từ thiết bị, và định dạng kiểu text.
Cú pháp
A = fscanf(obj)
A = fscanf(obj,'format') A = fscanf(obj,'format',size) [A,count] = fscanf(...)
[A,count,msg] = fscanf(...) Đối số
obj : một đối tượng port nối tiếp.
'format' : đặc tả chuyển đổi của ngôn ngữ size : số giá trị để đọc.
A : dữ liệu được đọc từ thiết bị và được định dạng theo kiểu văn bản.
count : số giá trị đọc.
msg : thông báo nếu thao tác đọc không thành công.
Mô tả
A = fscanf(obj): đọc dữ liệu từ thiết bị được kết nối với obj, và trả về dữ liệu cho A. Dữ liệu được đổi thành dạng văn bản theo kiểu %c.
A = fscanf(obj,'format'): đọc dữ liệu và chuyển đổi theo kiểu format.
A = fscanf(obj,'format',size): đọc số giá trị được chỉ định bởi size.
[A,count] = fscanf(...): trả về số giá trị đọc cho biến count.
[A,count,msg] = fscanf(...): trả về một cảnh báo cho biến msg nếu thao tác đọc không được hoàn thành.
readasync
K IL O B O O K S .C O M
Đọc dữ liệu không đồng bộ từ thiết bị.
Cú pháp readasync(obj) readasync(obj,size) Đối số
obj : Đối tượng port nối tiếp.
size : số byte để đọc từ thiết bị.
Mô tả
readasync(obj): khởi tạo một thao tác đọc không đồng bộ.
readasync(obj,size): đọc không đồng bộ, với số byte tối đa được cho bởi size. Nếu size lớn hơn sự sai khác giữa giá trị của thuộc tính InputBufferSize và giá trị của thuộc tính BytesAvailable, sẽ trả về một lỗi.
stopasync
Ngưng các thao tác đọc và viết không đồng bộ.
Cú pháp stopasync(obj) Đối số
obj : một đối tượng hay một mản các đối tượng cổng nối tiếp.
Mô tả
stopasync(obj): ngưng mọi thao tác đọc và viết đang thụ hiện trên obj.