MATLAB输出串口发送所需十六进制数据

MATLAB输出串口发送所需十六进制数据


  在FPGA设计过程中,有时需要与MATLAB进行联合调试,需要从MATLAB导出数据,再从PC端通过串口发送给FPGA,对数据进行处理后再返回PC端。串口的收发一般是以十六进制进行收发的,在MATLAB中没有直接从二进制数据转十六进制的函数,所以需要自行编写相关函数用于二进制转十六进制。如下:

function hex_matrix = bin2hex(bin_matrix)
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} = dec2hex(dec_matrix(i)); % 十进制转十六进制
end
end

  可以用一个文件来测试其是否符合我们的要求,将一个二进制向量转化为十六进制向量,每个十六进制数表示1byte(不足1byte前面补0),并且写入txt文件中,每byte之间用空格隔开。

clc;clear;
fid=fopen('F:\Matlab_Function\hex.txt','w'); % txt文件存储路径
bin_matrix = [10110 11101001 00001101 00001111]; % 二进制数组
hex_matrix = bin2hex(bin_matrix); % 十六进制数组
L = length(hex_matrix); % 数组中数据个数
for i = 1:L
    fprintf(fid,'%02s ',hex_matrix{i}); % 逐个输出到txt文件
end

  打开存储路径下的txt文件,可见符合预期需求。
在这里插入图片描述
  使用串口助手载入txt文件,可见按照txt文件中的数据读入到串口助手的发送端口。
在这里插入图片描述
《源码》
以上仅为个人学习笔记,欢迎评论区探讨交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值