【matlab发送十六进制串口数组】

%% --------------------------------
%% 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里面的元素完全一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值