%% --------------------------------
%% author:cuiwenqi
%% date: 20231225
%% fuction: transmit serial data in hex radix
%% note:
%% --------------------------------
% s = serial('COM2'); % 创建串口对象
% set(s, 'BaudRate', 9600); % 设置波特率
% fopen(s); % 打开串口
% fwrite(s, 'Hello'); % 向串口发送数据
% data = fread(s); % 从串口读取数据
% fclose(s); % 关闭串口
clear all
close all
clc
% % 查找串口对象
scoms = instrfind;
% % 尝试停止、关闭删除串口对象
stopasync(scoms);
fclose(scoms);
delete(scoms);
s = serial('COM2'); % 创建串口对象
set(s, 'BaudRate', 115200); % 设置波特率
try
fopen(s);
catch
'串口打开失败';
end
a = [07 06 79 02 04 01 00 00 00];
b= bin2hex(a,s);
function hex_matrix = bin2hex(bin_matrix,s)
L = length(bin_matrix); % 二进制数组长度
str_matrix = {}; %空元组
dec_matrix = []; %空数组
for i = 1:L
str_matrix{i} = num2str(bin_matrix(i)); % 十进制转字符串
% dec_matrix(i) = bin2dec(str_matrix{i}); % 二进制转十进制
hex_matrix{i} = hex2dec(str_matrix{i}); % 十进制转十六进制
fwrite(s,hex_matrix{i});
end
end
可以看到接收的16进制数据和数组a里面的元素完全一致